Как я могу активировать приложение в AppleScript без переключения рабочих столов?

Я пытаюсь написать AppleScript, который откроет новое окно Safari на моем текущем рабочем столе. Это достаточно легко. Загвоздка в том, что у меня уже есть окно Safari, работающее в другом пространстве, и я не хочу переключаться на это пространство или показывать новое окно в этом пространстве.

Есть ли способ указать AppleScript открывать новое окно в текущем пространстве независимо от того, в каких пространствах может быть активен Safari?

У меня есть два варианта базового AppleScript. Первый переключается на пространство, в котором активен Safari, а затем открывает новое окно;

tell application "Safari" to activate
tell application "System Events"
    tell process "Safari"
        click menu item "New Window" of menu "File" of menu bar 1
    end tell
end tell

Второй просто открывает новое окно в текущем пространстве Safari, не переключая рабочие столы.

tell application "Safari"
    make new document 
end tell

person Jo Sprague    schedule 05.03.2014    source источник


Ответы (1)


Разве вы не можете просто поставить команду активации после команды открытия нового окна?

tell application "Safari"
    make new document
    activate
end tell
person Lri    schedule 07.03.2014
comment
Я попробовал это, и иногда это работает, но в других случаях (в большинстве случаев) создаются два новых окна Safari. Один на текущем рабочем столе, а другой на другом рабочем столе, на который он переключается. Я не могу понять, почему этот скрипт создает два новых документа. (Я активирую сценарий с помощью Альфреда, что может быть связано с этим.) - person Jo Sprague; 07.03.2014