Глобальная горячая клавиша, чтобы показать / скрыть определенное приложение в OS X? [Дубликат]

10

Возможное дублирование:
Запустите приложение OS X с помощью сочетания клавиш

Можно ли определить глобальную горячую клавишу, чтобы показать / скрыть определенное приложение в OS X?

Например, я хочу иметь возможность показать / скрыть Safari с помощью Cmd+ Space.

Роман Долгий
источник
Связано с Запуском приложения OS X с помощью сочетания клавиш - Super User . Я отредактировал свой ответ на этот вопрос, добавив в него сторонние приложения, поддерживающие триггеры в стиле «показывать или скрывать». Я также добавил AppleScript для отображения или скрытия приложения.
Lri

Ответы:

7

Откройте Automator , выберите для создания службы , настройте, чтобы она не получала входных данных ни в одном приложении .

В библиотеке дважды щелкните Утилиты »Запустите AppleScript и введите следующее в большую текстовую область:

on run {input, parameters}

    tell application "System Events"
        set names to name of application processes
        if names contains "Safari" then
            tell application process "Safari"
                if visible then
                    set visible to false
                else
                    # use the following to simply have it reappear:
                    set visible to true
                    # use the following to focus Safari:
                    tell application "Safari" to activate
                end if
            end tell
        else
            display dialog "Safari is not running"
        end if
    end tell

    return input
end run

Сохранить под любым именем. Назначьте сочетание клавиш в Системные настройки »Клавиатура» Сочетания клавиш »Службы . Не забудьте отключить ярлык Spotlight Cmd-Space.

Даниэль Бек
источник
2
Вместо этого display dialogвы можете tell application "Safari" to activateзапустить его, если он не запущен.
Даниэль Бек
3

Сохраните в AppleScript Editor и назначьте ярлык для запуска скрипта в OS X

tell application (path to frontmost application as text)
    if name is "TextEdit" then
        set bid to id
        tell application "System Events" to tell (process 1 where bundle identifier is bid)
            set visible to false
        end tell
    else
        tell application "TextEdit"
            reopen
            activate
        end tell
    end if
end tell
  • Если целевое приложение в данный момент находится на первом месте, скрыть его
  • В противном случае активируйте его
LRI
источник
Поведение этого сценария выглядит следующим образом: если TextEdit - самое переднее приложение, оно будет скрыто, в противном случае оно будет перенесено на передний план. Таким образом, этот скрипт не будет скрывать приложение, если оно будет видимым, но не передним, а выведет его на передний план.
Даниэль Бек
Умное поведение. Мне просто не хватало объяснения, как ярлык ведет себя в вашем посте - думаю, это было бы полезно.
Даниэль Бек
Спасибо! Я отметил ответ Даниэля, так как он был первым.
Роман Долгий
-3

CMD + W скроет окна. Это работает во всем мире. Однако, чтобы вернуться к ним, вам нужно нажать на значки док-станции. Однако в браузере он закроет вкладку.

Александр Высоцкий
источник
Нет. Cmd + W закрывает окна.
Дэвисгик
Кроме того, пользователь спрашивает о приложениях , а не о Windows . На OS X есть большая разница.
Даниэль Бек