Откройте приложение в полноэкранном режиме через терминал


13

Интересно, возможно ли открыть программу в полноэкранном режиме Lion через Терминал? Я хочу написать короткий скрипт, который запускает несколько программ в полноэкранном режиме, так что мне нужно всего лишь щелкнуть один раз, чтобы запустить свою рабочую среду.


Это полноэкранный режим Lion / MTN Lion или окно "увеличено"?
MrDaniel

Лев в полноэкранном режиме
ABLX

Ответы:


12

Вот:

/ usr / bin / osascript -e 'сказать приложению "Safari"' -e "активировать" -e "сообщить приложению" Системные события "'-e' нажатие клавиши" f "с помощью {control down, command down} '-e" end сказать "-е" конец сказать "

Вот это в более ясной форме (но вы не можете запустить это таким образом):

/usr/bin/osascript -e "tell application \"Safari\"" 
-e "activate"
-e "tell application \"System Events\""
-e "keystroke \"f\" using {control down, command down}"
-e "end tell"
-e "end tell"

И это как отформатированный AppleScript:

tell application "Safari"
    activate
    tell application "System Events"
        keystroke "f" using {control down, command down}
    end tell
end tell

Он работает, сначала открыв окно Safari, если оно в данный момент не открыто. Затем он имитирует нажатие клавиши Control ⌃- Command ⌘-, Fкоторое заставляет окно Safari стать полноэкранным.

Если вы хотите, чтобы окно имело максимальный размер, оно не должно быть полноэкранным (т.е. занимать все пространство под строкой меню вверху):

tell application "Finder"
    set desktopSize to bounds of window of desktop
end tell

tell application "Safari"
    activate
    set bounds of window 1 to desktopSize
end tell

Который станет этим в Терминале:

/ usr / bin / osascript -e "указать приложение \" Finder \ "" -e "установить desktopSize в границы окна рабочего стола" -e "и конец сказать" -e "сообщить приложению \" Safari \ "" -e "активировать "-e" установить границы окна 1 для desktopSize.

Для Chrome сделайте это:

tell application "Google Chrome"
    activate
    make new window
    tell application "System Events"
        keystroke "f" using {control down, command down}
    end tell
end tell

Так будет в терминале:

/ usr / bin / osascript -e "сообщить приложению \" Google Chrome \ "" -e "активировать" -e "создать новое окно" -e "сообщить приложению \" Системные события \ "" -e "нажатие клавиши \" f \ "используя {контроль вниз, команда вниз}" -e "конец сказать" -e "конец рассказать"

Надеюсь это поможет!


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

@ABLX Вам нужно изменить нажатие клавиши для любого приложения, которое вы хотите полноэкранный - с какими приложениями вы работаете?
Cajunluke

@qegal Я считаю, что весь экран - он упомянул Lion полноэкранный в комментариях к вопросу.
Cajunluke

evernote и хром. это должен быть лев в полноэкранном режиме
ABLX

Ой, моя вина. Evernotes хотят ^ + команда + F.
ABLX

2

Это не будет работать с приложениями, которые не используют собственные полноэкранные окна, но должно работать с некоторыми, которые не используют стандартные ярлыки для входа в полноэкранный режим. Несколько приложений имеют разные имена процессов и имена приложений.

set a to "Notes"
set bid to id of application a
tell application a
    reopen -- open a new default window if there are no windows
    activate -- make frontmost
end tell
tell application "System Events" to tell (process 1 where bundle identifier is bid)
    click (button 1 of window 1 where subrole is "AXFullScreenButton")
end tell

Это решение было эффективным, чтобы заставить Polycom RealPresence Desktop на весь экран при входе в систему OS X 10.10.5, спасибо!
PEM8000

1

Вот инструкция для Google Chrome. (Это откроет окно инкогнито на весь экран.)

Перейти к /Applications/Google Chrome.app/Content/MacOS/. Переименуйте бинарный файл Google Chrome во что-то другое (например, chrome-bin) и создайте на его месте исполняемый скрипт bash (назовите скрипт так Google Chromeже, как исходный исполняемый файл).

#!/bin/bash
open chrome-bin --new --args -incognito

osascript -e "tell application \"Google Chrome\"" -e "tell application \"System Events\"" -e "keystroke \"f\" using {control down, command down}" -e "end tell" -e "end tell"

Теперь каждый раз, когда вы запускаете Google Chrome, он запускает полный экран в режиме инкогнито. Я использую режим инкогнито, но если вы этого не хотите, просто удалите -incognitoфлаг.


1
ОП ничего не говорит о Google Chrome.
Cajunluke

1
Кроме того, режим инкогнито не поможет никому, когда речь заходит о вредоносном коде - он просто не хранит и не разрешает доступ к файлам cookie и другим локальным (контролируемым браузером) схемам персистентности. На самом деле, плагины (например, Flash) могут хранить свои собственные куки-файлы и получать к ним доступ даже в режиме инкогнито.
Cajunluke

+1 за хороший взлом, даже если Chrome не был задан в вопросе
myhd

1

Вы можете использовать браузер для открытия произвольных приложений в полноэкранном режиме. Он устанавливает шесть удобных команд, четыре из которых открывают наиболее распространенные браузеры в полноэкранном режиме :

Запустите Chrome Canary в режиме презентации:

$ ca

Запустите Chrome в режиме презентации:

$ ch

Запустите Firefox в полноэкранном режиме:

$ ff

Запустите Safari в полноэкранном режиме:

$ sf

Чтобы запустить что-либо в полноэкранном режиме , ccfпосле обычного запуска команды (appleScript, посылающий нажатие клавиш CMD + CTRL + f), openчтобы переключить его в полноэкранный режим:

$ open -a Calendar; ccf

Если приложение имеет дополнительный полноэкранный режим, который сочетается с CMD + Shift + f (как в Chrome), используйте:

$ open -a "Google Chrome"; csf

Совет . Если приложение загружается медленно, дайте ему возможность полностью загрузиться, вставив паузу до запуска сочетания клавиш:

$ open -a "Google Chrome"; sleep 3; csf

1

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

osascript -e 'multi-line-applescript here'будет работать также. Пример:

osascript -e 'tell application "Safari"
activate
  tell application "System Events"
    keystroke "f" using {control down, command down}
  end tell
end tell'
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.