Quiero que la ventana de Firefox se abra en un tamaño y ubicación específicos en la pantalla usando un comando de shell, por ejemplo:
firefox myfile.html size 800x600 location bottom-left
¿Existe tal comando?
Respuesta1
Aquí hay una versión comunitaria de la respuesta deYokaique incorpora ejemplos ofrecidos porRudolf Olah.
Puede utilizar la herramienta llamada xdotool
para controlar el tamaño y la ubicación de la ventana. No solo eso, cualquier secuencia de comandos que escriba bash
, usando xdotool
, se puede configurar para que funcione con una ventana completamente maximizada y se puede programar para establecer el tamaño de la ventana y las coordenadas x:y manipulando los comandos mousemove
y click
.
Busque 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 de Firefox es 123, harías esto:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
La posición inferior izquierda deberá determinarse en función de la resolución de su pantalla.
Respuesta2
Hasta donde yo sé, esto no es posible ya que Firefox no acepta comandos para controlar la ventana. Eso también es (principalmente) responsabilidad del administrador de ventanas, por lo que dudo que alguna vez haya parámetros para hacerlo. Sin embargo, puedes controlar la ventana conwmctrl, pero eso va a ser un poco 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
Puede que haya 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 ayudarte a seguir adelante.
Respuesta3
Esto no resuelve el problema de la posición, pero al menos puedes establecer dimensiones:
firefox -width 200 -height 500
Respuesta4
Hago esto todo el tiempo. Yo uso DevilsPie2, sin embargo, porque es más robusto. Utiliza el lenguaje de programación LUA, que no es muy difícil.
Aquí está mi script lua para Thunderbird, que quiero abrir en el monitor del extremo izquierdo (pantalla de computadora portátil) cuando se abra:
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, cree 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 del archivo no importa. Tengo un nombre de archivo diferente para cada aplicación, aunque puedes poner todo en un archivo de script si lo deseas. 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 según la aplicación.