Como abrir uma nova janela do Firefox com o Terminal

2

Estou executando o Firefox v10.0.1 com o OS X Lion v10.7.3

No Apple Dock, você pode clicar com o botão direito do mouse no ícone do Firefox e escolher NOVO, e uma nova janela do Firefox será aberta.

Do terminal, tentei

    open -n /Applications/Firefox.app

mas diz (supondo que o Firefox já esteja aberto)

A copy of Firefox is already open. Only one copy of Firefox can be open at a time.

Como você pode abrir uma Nova Janela no Firefox a partir da linha de comando do Terminal?

    
por jsherk 03.03.2012 / 05:39

1 resposta

4

Você precisa usar o AppleScript para isso. A solução ideal seria usar uma função interna do Firefox, mas ela não oferece uma - o dicionário AppleScript é muito limitado. Então temos que emular atalhos de teclado.

Abra o ~/.bash_profile e adicione a seguinte função de shell:

function firefox-window() {
/usr/bin/env osascript <<-EOF
tell application "System Events"
    if (name of processes) contains "Firefox" then
        tell application "Firefox" to activate
        keystroke "n" using command down
    else
        tell application "Firefox" to activate
    end if
end tell
EOF
}

Isso chamará osascript , que executa comandos do AppleScript, ativará o Firefox e emulará um pressionamento de teclas ⌘N - mas somente se já estiver em execução. Se não, o Firefox só será aberto, então você não terá duas novas janelas. Além disso, você pode trocar "n" para "t" para obter novas abas, obviamente.

Salve o arquivo ~/.bash_profile e digite source ~/.bash_profile para recarregá-lo. Então, basta chamar a seguinte função sempre que precisar de uma nova janela do Firefox:

firefox-window

Claro, sinta-se à vontade para alterar o nome da função.

Se você quiser passar um argumento de URL a partir da linha de comando, veja esta resposta: Como abrir uma nova janela do Firefox com argumento de URL .

~/.bash_profile é onde todas as suas funções personalizadas devem residir. Se o arquivo não existir, você pode criá-lo.

Shell funções são mais poderosas que aliases, como por exemplo permitem que você use argumentos também. Você poderia, teoricamente, passar o URL da nova janela também e, em seguida, dizer ao Firefox para abri-lo com o OpenURL ou Get URL command - mas eu não tentei.

Com relação à sintaxe usada: O <<-EOF é um documento aqui , facilitando a transmissão de entrada de várias linhas para osascript . A entrada será analisada até que o marcador EOF apareça novamente.

    
por 03.03.2012 / 11:25