Quiero que la ventana de Firefox se abra en un tamaño específico y la ubicación en pantalla usando un comando de shell, por ejemplo:
firefox myfile.html size 800x600 location bottom-left
¿Hay tal comando?
Quiero que la ventana de Firefox se abra en un tamaño específico y la ubicación en pantalla usando un comando de shell, por ejemplo:
firefox myfile.html size 800x600 location bottom-left
¿Hay tal comando?
Respuestas:
Aquí hay una versión comunitaria de la respuesta de Yokai que incorpora ejemplos ofrecidos por Rudolf Olah .
Puede usar la herramienta llamada xdotool
para controlar el tamaño y la ubicación de la ventana. No solo eso, cualquier script que escriba bash
, que se use xdotool
, se puede configurar para que funcione con una ventana totalmente maximizada y se puede programar para establecer el tamaño de la ventana y las coordenadas x: y manipulando los comandos mousemove
y click
.
Encuentra la ID de la ventana:
xdotool search --onlyvisible --name firefox
Establecer el tamaño de la ventana
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Mover la ventana
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Por ejemplo, si la identificación de la ventana para Firefox es 123, haría esto:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
El posicionamiento de la parte inferior izquierda deberá calcularse según la resolución de su pantalla.
xdotool
, wmctrl
etc. y Ubuntu, XFCE (que tengo): si la ventana ya se ha lanzado en modo de pantalla completa, ya no puede moverla: bugs.launchpad.net/ubuntu/+source/unity/ + error / 971147
Hasta donde sé, esto no es posible ya que Firefox no acepta comandos para controlar la ventana. Esa es también (principalmente) la responsabilidad del administrador de ventanas, por lo que dudo que alguna vez haya parámetros para hacerlo. Sin embargo, puede controlar la ventana con wmctrl , pero eso será un poco difícil:
#!/bin/sh
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
Puede haber formas más inteligentes de hacerlo, y hay algunos problemas de interoperabilidad con Firefox (por ejemplo, que no se está ejecutando ninguna otra instancia), pero debería ayudarlo a continuar.
En el pasado, creé un documento HTML que establecería el tamaño de la ventana con Javascript y luego redirigiría a la página que quería. Es un truco estúpido pero, bueno, funciona.
Hago esto todo el tiempo. Sin embargo, uso DevilsPie2 porque es más robusto. Utiliza el lenguaje de script LUA, que no es muy difícil.
Aquí está mi script lua para Thunderbird, que quiero abrir en el monitor izquierdo (pantalla de la computadora portátil) cuando se abre:
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 esto, crea un directorio en su configuración de inicio (en distribuciones similares a Ubuntu) llamado devilspie2, por ejemplo /home/$USERNAME/.config/devilspie2
Para Thunderbird, creé thunderbird.lua, aunque el nombre de archivo no importa. Tengo un nombre de archivo diferente para cada aplicación, aunque puede poner todo en un archivo de script si lo desea. Configure devilspie2 para que se inicie automáticamente cuando inicie sesión, por ejemplo /home/$USERNAME/.config/autostart/devilspie2.desktop
Aquí hay un enlace a una buena página sobre varias opciones disponibles para su script lua: https://github.com/gusnan/devilspie2/blob/master/README
Una nota: los scripts no tienen que ser ejecutables. Los míos son 664 y funcionan bien. Algunos de los otros programas que controlo son openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload, y yad. Utilizo pin_window en ellos para que aparezcan en todos los escritorios, además de otros comandos dependiendo de la aplicación.
devilspie2 --debug
)