Je souhaite que la fenêtre Firefox soit ouverte dans une taille et un emplacement spécifiques à l'écran à l'aide d'une commande shell, par exemple:
firefox myfile.html size 800x600 location bottom-left
Existe-t-il une telle commande?
Je souhaite que la fenêtre Firefox soit ouverte dans une taille et un emplacement spécifiques à l'écran à l'aide d'une commande shell, par exemple:
firefox myfile.html size 800x600 location bottom-left
Existe-t-il une telle commande?
Réponses:
Voici une version communautaire de la réponse de Yokai qui incorpore des exemples proposés par Rudolf Olah .
Vous pouvez utiliser l'outil appelé xdotool
pour contrôler la taille et l'emplacement de la fenêtre. Non seulement cela, tout script que vous écrivez en bash
utilisant xdotool
peut être configuré pour fonctionner avec une fenêtre entièrement maximisée et il peut être scripté pour définir la taille de la fenêtre et les coordonnées x: y en manipulant les commandes mousemove
et click
.
Trouvez l'ID de la fenêtre:
xdotool search --onlyvisible --name firefox
Définissez la taille de la fenêtre
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Déplacer la fenêtre
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Par exemple, si l'ID de la fenêtre pour Firefox est 123, vous feriez ceci:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
Le positionnement en bas à gauche devra être déterminé en fonction de la résolution de votre écran.
xdotool
, wmctrl
etc. et Ubuntu, XFCE (que j'ai): si la fenêtre s'est déjà lancée en mode plein écran, vous ne pouvez plus la déplacer: bugs.launchpad.net/ubuntu/+source/unity/ + bug / 971147
Pour autant que je sache, cela n'est pas possible car Firefox n'accepte pas les commandes pour contrôler la fenêtre. C'est aussi (principalement) la responsabilité du gestionnaire de fenêtres, donc je doute qu'il y aura jamais des paramètres pour le faire. Cependant, vous pouvez contrôler la fenêtre avec wmctrl , mais cela va être un peu difficile:
#!/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
Il pourrait y avoir des moyens plus intelligents de le faire, et il y a des problèmes d'interopérabilité avec Firefox (par exemple qu'aucune autre instance n'est en cours d'exécution) mais cela devrait vous permettre de continuer.
Dans le passé, j'ai créé un document HTML qui définirait la taille de la fenêtre avec Javascript, puis rediriger vers la page que je voulais. C'est un hack stupide mais, hé, ça marche.
Je ne pense pas que cela soit possible uniquement avec les commandes shell, car cela n'a rien à voir avec votre gestionnaire de fenêtres.
J'ai entendu parler de wmctrl et devilspie qui peuvent effectuer cela. Mais je doute qu'il existe un moyen d'y parvenir aussi simple que vous l'avez écrit dans votre exemple.
Je fais ça tout le temps. J'utilise DevilsPie2, cependant, car il est plus robuste. Il utilise le langage de script LUA, ce qui n'est pas très difficile.
Voici mon script lua pour Thunderbird, que je veux ouvrir sur le moniteur extrême gauche (écran d'ordinateur portable) lorsqu'il s'ouvre:
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
Pour configurer cela, vous créez un répertoire dans votre configuration personnelle (sur les distributions de type Ubuntu) nommé devilspie2, par exemple /home/$USERNAME/.config/devilspie2
Pour Thunderbird, j'ai créé thunderbird.lua, même si le nom de fichier n'a pas d'importance. J'ai un nom de fichier différent pour chaque application, mais vous pouvez tout mettre dans un fichier de script si vous le souhaitez. Définissez devilspie2 pour qu'il démarre automatiquement lorsque vous vous connectez, par exemple /home/$USERNAME/.config/autostart/devilspie2.desktop
Voici un lien vers une bonne page sur les différentes options disponibles pour votre script lua: https://github.com/gusnan/devilspie2/blob/master/README
Une remarque: les scripts ne doivent pas nécessairement être exécutables. Les miens sont 664 et fonctionnent très bien. Quelques-uns des autres programmes que je contrôle sont openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload et yad. J'utilise pin_window sur eux pour qu'ils apparaissent sur tous les bureaux, ainsi que d'autres commandes en fonction de l'application.
devilspie2 --debug
)