Создайте команду, чтобы сфокусировать определенное окно из любой точки ОС


10

Разрабатывая для Интернета, я часто прыгаю вперед и назад между моим текстовым редактором и браузером. Я бы хотел установить сочетание клавиш на уровне операционной системы, чтобы каждый раз переходить к определенному определенному окну. Еще лучше было бы выдать команду «Сказать, что приложение выполняет что-то», но я оставлю это на потом.

Существуют ли технологии, которые позволят мне сделать это? Между C и AppleScript должно быть что-то, что позволило мне создать такой вид взаимодействия. Кто-нибудь знает, с чего начать?

Спасибо.

Ответы:


2

Вы должны попробовать Automator. Вы можете «Записать» новый сервис (который вы можете позже опубликовать для всех приложений и назначить сочетание клавиш), который щелкает приложение из Dock. На самом деле, вы можете добавить больше действий и выполнить «сказать, что приложение выполняет что-то».

Я попытался создать один (который является относительно бесполезным, но работает), который нажимает на Mail в моем Dock, а затем нажимает значок получить новую почту на панели инструментов. Веселье ;)

Прикрепленный снимок результата Automator:

Automator

Я использовал кнопку « Запись» в верхнем правом углу, а затем сам выполнил действия (щелкнул значок док-станции Почты, затем щелкнул значок «Получить новую почту» на панели инструментов, затем нажал «Остановить запись»). Обратите внимание, что я выбрал «Служба получает [нет ввода]» в первом поле со списком, так как меня не интересовали какие-либо входные данные.

Это дает вам несколько возможностей иметь несколько сервисов, которые идут назад и вперед вашего TextEditor и вашего браузера.

Automator находится с помощью Spotlight и ввода Automator (также находится в /Applications/Automator.app).

В этом случае я создал новую «Службу», но вы, вероятно, могли бы уйти, создав «сценарии». Не уверен, какой из них будет быстрее, чем. Эксперимент. Automator твой друг.


5

Вы можете сделать что-то подобное с AppleScript:

tell application "Terminal"
    activate
    windows where name contains "bash"
    if result is not {} then set index of item 1 of result to 1
end tell

Или используя системные события:

tell application "System Events" to tell process "Terminal"
    set frontmost to true
    windows where title contains "bash"
    if result is not {} then perform action "AXRaise" of item 1 of result
end tell

1

Я использую BetterTouchTool для установки различных сочетаний клавиш или жестов трекпада в Mac OS X. Одним из действий, которые он может запустить, является выполнение команды терминала

Итак, в настройках команды я предоставляю следующее:

osascript -e 'tell application "NameOfTheApplicationHere" to activate'

Вот пример из настроек BetterTouchTool:

введите описание изображения здесь


1

У меня было много проблем, чтобы заставить это работать с iTerm2. Вот решение для одной команды:

  osascript -e 'tell application "System Events" to tell process "iTerm2"' \
            -e 'set frontmost to true' \
            -e 'if windows is not {} then perform action "AXRaise" of item 1 of windows' \
            -e 'end tell'
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.