Доступ к значке дока правой кнопкой мыши элементы меню с Applescript

StackOverflow https://stackoverflow.com/questions/2819807

Вопрос

Есть ли способ получить 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 и т. Д. Вы должны сделать пробелы до того, как сочетания клавиш можно установить в клавиатуре -> настройки ярлыков Отказ

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top