Доступ к значке дока правой кнопкой мыши элементы меню с Applescript
-
26-09-2019 - |
Вопрос
Есть ли способ получить AppleScript для доступа к пунктам меню, которые подходят, когда вы щелкнуте правой кнопкой мыши на значок дока?
В частности, вот что я хочу сделать:
Я использую Google Chrome в качестве моего веб-браузера на Macos X Snow Leopard. Я клавиатую ярлык наркомана, и я использую Quicksilver, чтобы создать ярлыки клавиатуры для всего, что я могу. Одна из самых распространенных вещей, которые я делаю, это открыть новое окно веб-браузера. Но я часто использую пробелы, чтобы разделить мои задачи, над которыми я работаю, и когда я открываю веб-браузер или веб-страницу с триггером Quicksilver, пробелы переключаются в последнее пространство, которое я использовал Chrome включен и открывает новую вкладку, которая часто отвлекает меня в течение нескольких часов, потому что это приводит меня к другому пространству и, таким образом, другая задача. Я могу исправить это, щелкнув правой кнопкой мыши на значок Google Chrome и нажав на опцию «New Window», которая открывает новое окно на текущем пространстве. Но в AppleScript, чтобы сделать что-нибудь с Google Chrome, первым, что я должен сделать, это активировать его, что возвращает меня к оригинальной проблеме! Может ли кто-нибудь думать о решении этой проблемы, Applescript или иным образом? Это стало серьезной проблемой. Назад Когда я использовал Firefox, я решил проблему, изменив элемент предпочтения, который говорит, что «Всегда открывайте всплывающие ссылки в новом окне» или что-то вроде этого, который был в своем роде подходом кулинарного молотка, но он сработал. Я всегда могу вернуться к Firefox, но я думал, что сначала спросил мой вопрос. Кто-нибудь с любыми идеями?
Решение 2
Для тех, кто заинтересован, я думаю, что у меня есть разумное рабочее решение для этой проблемы, но это не связано с правой кнопкой мышью на иконки док.
Во-первых, вы должны снять флажок «При переключении на приложение, переключитесь в пространство с открытыми Windows для приложения» в панели предпочтений пространств системных предпочтений. Тогда я написал следующий AppleScript:
tell application "Google Chrome" to activate
tell application "System Events"
tell process "Google Chrome"
try
set var to get name of window 1
on error
set var to "no window exists!!!"
end try
end tell
end tell
if var is "no window exists!!!" then
tell application "System Events"
tell process "Google Chrome"
click menu item "New Window" of menu "File" of menu bar 1
end tell
end tell
else
tell application "System Events"
tell process "Google Chrome"
click menu item "New Tab" of menu "File" of menu bar 1
end tell
end tell
end if
Я запускаю этот AppleScript, используя Искра, что позволяет мне назначить ярлык ключ к нему.
Это немного медленно, особенно когда система находится под нагрузкой, но обычно не требуется дольше секунды или так, чтобы запустить. Это также позволяет избежать проблемы, которую я имел с Firefox, где я бы в конечном итоге с десятками окон открытой в конце дня.
Другие советы
Не уверен, если вы все еще интересуетесь, но ...
tell application "Dock"
activate
end tell
tell application "System Events"
tell process "Dock"
set frontmost to true
activate
tell list 1
perform action "AXShowMenu" of UI element "Google Chrome"
delay 1
repeat 4 times -- count number of items to the one you want
key code 126 -- up arrow
-- key code 125 -- down arrow
end repeat
delay 1
repeat 2 times
key code 36 -- return key
end repeat
end tell
end tell
end tell
Nightly Builds Chromium теперь содержит поддержку AppleScript, и это должно сделать его в Chrome до длительного времени. Это означает, что теперь вы можете сделать:
tell application "Chromium"
make new window
activate
end tell
В качестве альтернативы вы также можете вызвать этот скрытый вариант:
defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock
Это также имеет, для меня, положительный эффект, который вы больше не брошены на настольных компьютерах при коммутации приложений. Просто сделайте CMD + N с Chrome в качестве активного приложения.
Кстати, вы можете перейти к пробелам напрямую с Fn + 1, Fn + 2 и т. Д. Если вы устанавливаете его вместо ^1, ^2 и т. Д. Вы должны сделать пробелы до того, как сочетания клавиш можно установить в клавиатуре -> настройки ярлыков Отказ