Abra um aplicativo em tela cheia via Terminal

13

Gostaria de saber se é possível abrir um programa no modo de tela cheia do Lion através do Terminal. Quero escrever um script curto que inicie vários programas no modo de tela cheia, para que eu precise clicar apenas uma vez para iniciar meu ambiente de trabalho.

ABLX
fonte
Este é o modo de tela cheia Lion / MTN Lion ou uma janela "ampliada"?
MrDaniel
o leão em tela cheia
ABLX 1/12/12

Respostas:

12

Aqui está:

/ usr / bin / osascript -e 'tell application "Safari"' -e "active" -e 'tell application "System Events"' -e 'pressionamento de tecla "f" usando {control down, command down}' -e "end diga "-e" final diga "

Aqui está de uma forma mais clara (mas você não pode executá-lo desta maneira):

/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"

E é isso como AppleScript formatado:

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

Ele funciona primeiro abrindo uma janela do Safari se uma não estiver aberta no momento. Em seguida, simula o pressionamento de tecla Control ⌃- Command ⌘- Fque informa à janela do Safari para ficar em tela cheia.

Se você deseja tornar a janela no tamanho máximo que ela pode ser sem ficar em tela cheia (ou seja, ocupando todo o espaço abaixo da barra de menus na parte superior):

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

O que se tornaria isso no Terminal:

/ usr / bin / osascript -e "informe o aplicativo \" Finder \ "" -e "defina o desktopSize para os limites da janela da área de trabalho" -e "end diga" -e "informe o aplicativo \" Safari \ "" -e "ative "-e" define os limites da janela 1 como desktopSize "-e" end tell "

Para o Chrome, faça o seguinte:

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

Então seria isso no Terminal:

/ usr / bin / osascript -e "informe o aplicativo \" Google Chrome \ "" -e "ative" -e "crie uma nova janela" -e "informe o aplicativo \" Eventos do Sistema \ "" -e "pressionamento de tecla \" f \ "usando {controle para baixo, comando para baixo}" -e "end tell" -e "end tell"

Espero que isto ajude!

pasawaya
fonte
tentei isso, e ajudou um pouco. abre o aplicativo, mas a tela cheia não funciona - o jsut me dá um som de erro. tem que executar o script duas vezes para ir para a tela cheia
ABLX
@ABLX Você precisa alterar o pressionamento de tecla do aplicativo que deseja exibir em tela cheia - com quais aplicativos você está trabalhando?
Cajunluke
@ qegal Eu acredito em tela inteira - ele mencionou Lion em tela cheia nos comentários da pergunta.
Cajunluke
evernote e chrome. deveria ser leão em tela cheia
ABLX 01/08/2012
aww minha culpa. o evernotes deseja ^ + command + f.
ABLX 01/08/19
2

Isso não funciona com aplicativos que não usam janelas nativas de tela cheia, mas deve funcionar com alguns que não usam o atalho padrão para entrar em tela cheia. Alguns aplicativos têm nomes de processos e nomes de aplicativos diferentes.

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
Lri
fonte
Esta solução foi eficaz para forçar o Polycom RealPresence Desktop em tela cheia no login em um sistema OS X 10.10.5, obrigado!
PEM8000
1

Aqui estão as instruções para o Google Chrome. (Isso abrirá uma janela de navegação anônima em tela cheia.)

Vá para /Applications/Google Chrome.app/Content/MacOS/. Renomeie o binário do Google Chrome para outra coisa (como chrome-bin) e crie um script bash executável em seu lugar (nomeie o script Google Chromeexatamente como o arquivo executável original).

#!/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"

Agora, sempre que você iniciar o Google Chrome, ele será exibido em tela cheia no modo de navegação anônima. Eu uso o modo de navegação anônima, mas se você não quiser, basta excluir o -incognitosinalizador.

Tom Jacob
fonte
1
O OP não menciona nada sobre o Google Chrome.
Cajunluke 17/09/12
1
Além disso, o modo de navegação anônima não ajuda em nada quando se trata de código malicioso - simplesmente não armazena nem permite o acesso a cookies e outros esquemas de persistência locais (controlados pelo navegador). De fato, plug-ins (como o Flash) podem armazenar e acessar seus próprios cookies, mesmo no modo de navegação anônima.
Cajunluke 17/09/12
+1 para o bom hack, mesmo que o Chrome não tenha sido solicitado na pergunta
myhd 26/09/12
1

você pode usar o Browse para abrir aplicativos arbitrários no modo de tela cheia. Ele instala seis comandos de conveniência, quatro dos quais abrem os navegadores mais comuns em tela cheia :

Inicie o Chrome Canary no modo de apresentação:

$ ca

Inicie o Chrome no modo de apresentação:

$ ch

Inicie o Firefox no modo de tela cheia:

$ ff

Inicie o Safari no modo de tela cheia:

$ sf

Para iniciar qualquer coisa em tela cheia , execute o comando ccf(um AppleScript enviando o pressionamento de tecla CMD + CTRL + f) após um horário regular openpara alterná-lo para o modo de tela cheia:

$ open -a Calendar; ccf

Se um aplicativo tiver um modo de tela inteira adicional, atalho por CMD + Shift + f (como o Chrome), use:

$ open -a "Google Chrome"; csf

Dica . Se um aplicativo for lento para carregar, dê a chance de carregar totalmente inserindo uma pausa antes de executar o atalho do teclado:

$ open -a "Google Chrome"; sleep 3; csf
Lloyd
fonte
1

Aqui está uma adição à excelente resposta de @ pasawaya. Se você deseja executar seu AppleScript a partir da linha de comando, não é necessário inserir todas as linhas separadamente com a -eopção

osascript -e 'multi-line-applescript here'vai funcionar também. Exemplo:

osascript -e 'tell application "Safari"
activate
  tell application "System Events"
    keystroke "f" using {control down, command down}
  end tell
end tell'
joni
fonte