J'ai réussi à le faire (avec l'aide de ce forum), bien que si vous trouvez une autre solution, dites-le-moi car elle sera probablement plus robuste: unix.stackexchange.com/questions/40209/…
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é xdotoolpour contrôler la taille et l'emplacement de la fenêtre. Non seulement cela, tout script que vous écrivez en bashutilisant xdotoolpeut ê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 mousemoveet click.
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.
Juste une petite note. Le redimensionnement ne fonctionnera pas si la fenêtre est agrandie. Vous devez donc d'abord désactiver cette propriété avec: wmctrl -i -r $ WID -b remove, maximized_vert; wmctrl -i -r $ WID -b remove, maximized_horz; Après cela, j'ai pu redimensionner la fenêtre Firefox.
ka3ak
3
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.
On dirait que ça ne marche plus. Apparemment, window.resizeTo n'a d'effet que si la fenêtre est une fenêtre contextuelle créée via window.open.
hugomg
2
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 width780= 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
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.
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 enbash
utilisantxdotool
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 commandesmousemove
etclick
.Trouvez l'ID de la fenêtre:
Définissez la taille de la fenêtre
Déplacer la fenêtre
Par exemple, si l'ID de la fenêtre pour Firefox est 123, vous feriez ceci:
Le positionnement en bas à gauche devra être déterminé en fonction de la résolution de votre écran.
la source
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 / 971147Pour 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:
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.
la source
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.
la source
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.
la source
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:
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.
la source
devilspie2 --debug
)Cela ne résout pas le problème de la position, mais au moins vous pouvez définir des dimensions:
la source