通过终端全屏打开应用


13

我想知道是否可以通过终端以Lion全屏模式打开程序。我想编写一个简短的脚本,以全屏​​模式启动一堆程序,因此我只需单击一次即可启动我的工作环境。


这是Lion / MTN Lion全屏模式,还是窗口“缩放”?
MrDaniel

全屏狮子
ABLX 2012年

Answers:


12

这里是:

/ usr / bin / osascript -e'告诉应用程序“ Safari”'-e“激活” -e'告诉应用程序“系统事件”'-e'按键“ f”,使用{control down,command down}'-e“ end告诉“ -e”结束告诉

这是一种更清晰的形式(但是您不能以这种方式运行它):

/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窗口,则可以先打开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“ -e” end tell“

对于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 \ “使用{control down,command down}” -e“结束告诉” -e“结束告诉”

希望这可以帮助!


尝试了一下,它有所帮助。它会打开应用程序,但全屏无法正常工作-jsut给我一个错误的声音。要运行该脚本两次去全屏
ABLX

@ABLX您需要更改要全屏显示的任何应用程序的按键-您正在使用哪些应用程序?
Cajunluke

@qegal我相信整个屏幕-他在问题评论中提到了Lion全屏显示。
Cajunluke

Evernote和Chrome。它应该是全屏狮子
ABLX 2012年

我的错。Evernotes想要^ + Command + 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

在OS X 10.10.5系统上登录时,此解决方案有效地将Polycom RealPresence Desktop强制全屏显示,谢谢!
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
OP并未提及Google Chrome。
Cajunluke 2012年

1
另外,隐身模式在涉及恶意代码时也无济于事-它只是不存储或不允许访问Cookie和其他本地(浏览器控制的)持久性方案。实际上,即使在隐身模式下,插件(如Flash)也可以存储和访问自己的Cookie。
Cajunluke 2012年

+1为漂亮的劈:即使Chrome是不是在这个问题问
myhd

1

您可以使用浏览器以全屏模式打开任意应用程序。它将安装六个便捷命令,其中四个以全屏模式打开最常见的浏览器

在演示模式下启动Chrome Canary:

$ ca

在演示模式下启动Chrome:

$ ch

以全屏模式启动Firefox:

$ ff

以全屏模式启动Safari:

$ sf

以全屏模式启动任何内容,请在ccf常规后运行命令(发送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出色答案的补充。如果要从命令行执行applescript,则无需使用-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'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.