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.