Quero que a janela do Firefox seja aberta em um tamanho específico e localização na tela usando um comando shell, por exemplo:
firefox myfile.html size 800x600 location bottom-left
Existe tal comando?
Responder1
Aqui está uma versão comunitária da resposta deYokaique incorpora exemplos oferecidos porRudolf Olah.
Você pode usar a ferramenta chamada xdotool
para controlar o tamanho e a localização da janela. Além disso, qualquer script que você escrever bash
, usando xdotool
, pode ser configurado para funcionar com uma janela totalmente maximizada e pode ser programado para definir o tamanho da janela e as coordenadas x:y manipulando os comandos mousemove
e .click
Encontre o ID da janela:
xdotool search --onlyvisible --name firefox
Defina o tamanho da janela
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Mova a janela
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Por exemplo, se o ID da janela do Firefox for 123, você faria o seguinte:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
O posicionamento inferior esquerdo terá que ser determinado com base na resolução da tela.
Responder2
Pelo que eu sei, isso não é possível porque o Firefox não aceita comandos para controlar a janela. Essa também é (principalmente) responsabilidade do gerenciador de janelas, então duvido que algum dia existam parâmetros para fazer isso. No entanto, você pode controlar a janela comwmctrl, mas isso vai ser um pouco difícil:
#!/usr/bin/env bash
firefox -new-instance -new-window "http://www.reddit.org" &
# Process ID of the process we just launched
PID=$!
# Window ID of the process...pray that there's
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250
Pode haver maneiras mais inteligentes de fazer isso e há alguns problemas de interoperabilidade com o Firefox (por exemplo, nenhuma outra instância está em execução), mas isso deve ajudar você.
Responder3
Isso não resolve o problema da posição, mas pelo menos você pode definir dimensões:
firefox -width 200 -height 500
Responder4
Eu faço isso toda hora. Eu uso DevilsPie2, entretanto, porque é mais robusto. Ele usa a linguagem de script LUA, o que não é muito difícil.
Aqui está meu script lua para Thunderbird, que desejo abrir no monitor mais à esquerda (tela do laptop) quando ele abrir:
if (get_window_name()=="Mozilla Thunderbird") then
pin_window()
set_window_geometry( 50, 10, 1220, 780 )
end
where 50 = X coordinate (for upper-left corner of the window)
10 = Y coordinate ( " " )
1220 = window width
780 = window height
Para configurar isso, você cria um diretório em sua configuração inicial (em distribuições do tipo Ubuntu) chamado devilspie2, por exemplo, /home/$USERNAME/.config/devilspie2
Para o Thunderbird, criei Thunderbird.lua, embora o nome do arquivo não importe. Eu tenho um nome de arquivo diferente para cada aplicativo, mas você pode colocar tudo em um arquivo de script, se desejar. Configure o devilspie2 para iniciar automaticamente quando você fizer login, por exemplo, /home/$USERNAME/.config/autostart/devilspie2.desktop
Aqui está um link para uma boa página sobre várias opções disponíveis para o seu script lua:https://github.com/gusnan/devilspie2/blob/master/README
Uma observação: os scripts não precisam ser executáveis. Os meus são 664 e funcionam bem. Alguns dos outros programas que controlo são openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload e yad. Eu uso pin_window neles para que apareçam em todos os desktops, além de outros comandos dependendo do aplicativo.