Створіть команду для фокусування конкретного вікна з будь-якої точки ОС


10

Під час розробки для Інтернету я схильний дуже багато стрибати між текстовим редактором та браузером. Я хотів би встановити комбінацію клавіш на рівні ОС, яка дозволяє мені щоразу переходити до конкретного визначеного вікна. Ще краще було б можливість видати розповісти, що програма виконує щось, але я збережу це на потім.

Чи є технології, які дозволять мені це робити? Між C та AppleScript повинно бути щось, що дозволить мені створити такий тип взаємодії. Хтось знає, з чого почати?

Дякую.

Відповіді:


2

Спробуйте спробувати Automator. Ви можете "Записати" нову послугу (яку згодом ви можете опублікувати для всіх додатків та призначити ярлик клавіатури), який натискає додаток із Доку. Насправді, ви можете додати більше дій та виконати "скажіть, що програма щось виконує".

Я спробував створити такий (який є відносно марним, але працює), який клацає поштою в моєму доку, а потім натискає значок отримання нової пошти на панелі інструментів. Весело;)

Додано знімок результату Автоматизатора:

Автоматизатор

Я натискав кнопку Запис у верхньому правому куті, а потім робив дії сам (натискав на піктограму док-станції пошти, потім натискав на піктограму Get New Mail на панелі інструментів, а потім натискав "Зупинити запис"). Будь ласка, зауважте, що я вибрав "Сервіс отримує [немає вводу]" у першому комбінованому полі, оскільки мене не цікавило жодне введення.

Це дає вам декілька можливостей мати пару служб, які переходять уперед та назад за допомогою TextEditor та вашого браузера.

Автоматизатор розміщений за допомогою прожектора та введення Автоматизатора (також розташований у /Applications/Automator.app)

У цьому випадку я створив нову "Службу", але ви, ймовірно, могли піти, створивши "сценарії". Не впевнений, хто з них був би швидшим. Експеримент. Автоматизатор - твій друг.


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. Однією з дій, які він може запустити, є Execute Terminal Command

Отже, в налаштуваннях команди я надаю наступне:

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.