Док OS X, переключаться между открытыми окнами приложения, нажав на значок док-станции?

Допустим, у меня активен Safari, и я хочу переключаться между его открытыми окнами, нажимая значок закрепления Safari (вместо нажатия cmd+>).

Можно ли как-то это сделать?

4 ответа

В Dock.app нет кода для этого. Команда+` - это обычный способ циклически проходить через открытые окна приложения. Если вы хотите выполнить цикл, щелкнув значок док-станции, вы можете написать AppleScript, чтобы нажать эту клавишу, и поместить его в док-станцию ​​рядом с Safari.

tell application "System Events"
    keystroke "`" using {command down}
end tell

Поместите вышеперечисленное в редактор AppleScript и сохраните его как приложение. Он не будет работать, если мы не предотвратим его кражу фокуса, что можно сделать, щелкнув правой кнопкой мыши по пакету приложения и отобразив содержимое пакета, откройте Contents/Info.plist, а затем добавьте ключ LSBackgroundOnly (приложение является только фоновым) с логическое значение 1. Добавьте его в док и щелкните по нему, чтобы выполнить это нажатие клавиши. Это будет работать для любого приложения.

Мне немного странно, что вы думаете, что это необходимо или возможно совершенно неожиданно. Есть ли что-то большее, что вы пытаетесь сделать с этим?

Требуемое поведение может быть достигнуто путем замены значка Safari на док-станции следующим AppleScript (по примеру NReilingh), сохраненным как приложение:

tell application "Safari"
    activate
end tell

tell application "System Events"
    keystroke "`" using {command down}
end tell

Это сфокусирует Safari и переключит его активные окна. Если Safari не открыт, он будет открыт в первый раз, поэтому он работает так же, как и обычный значок Safari.

Чтобы завершить работу, вам нужно отредактировать свойства скрипта - щелкните правой кнопкой мыши приложение скрипта в Finder и выберите "Показать содержимое пакета", затем откройте Info.plist в разделе "Содержание".

  • Вам необходимо добавить ключ LSBackgroundOnly ("Приложение только для фона") со значением "Проверено" (поскольку без этого ключа циклический цикл не работает должным образом, а значок просто переключает два последних окна).
  • Чтобы получить подлинный значок Safari, вы можете скопировать / вставить файл compass.icns из Safari.app's Contents | Ресурсы для соответствующего места нового скрипта. После этого измените свойство файла Icon, чтобы оно указывало на новый значок.
  • После изменений сохраните файл списка свойств.
  • Также может потребоваться перезапустить сценарий.

Теперь у вас должна быть иконка в доке, похожая на Safari, но с добавленным циклическим переключением окна с последующими щелчками - если вы назвали скрипт Safari, никто не должен заметить никакой разницы с оригиналом.

Вы можете щелкнуть правой кнопкой мыши по значку док-станции, и в меню будут перечислены все открытые окна приложений.

"Cmd >"?

Почему бы не использовать "Cmd `" (обратная клавиша, клавиша над вкладкой), которая является стандартной для циклического переключения между окнами для любого приложения? Если нет, то вы хотите "привязать" к чему-то, что вы можете одним щелчком мыши?

Редактировать: простой встроенный подход, состоящий только из мыши, состоит в том, чтобы установить "Горячий угол" в Системных настройках, чтобы показать все окна приложений, затем вы можете нажать на тот, который вам нужен. Но это не "цикл".

Другие вопросы по тегам