J'ai essayé d'utiliser Docky, puis je l'ai enlevé et après cela, mon navigateur (Chromium) ne peut plus être ouvert à la hauteur maximale, à chaque fois que je devrais le maximiser moi-même. (Bureau XFCE)
En démarrant une application via le script ci-dessous, vous pouvez forcer n’importe quel application*
au démarrage maximisé. Si vous remplacez soit la commande main dans (une copie de-) votre fichier .desktop
par la commande permettant d'exécuter le script (voir ci-dessous). comment le faire) ou ajoutez-le comme raccourci à la liste rapide, vous pouvez obtenir exactement ce que vous voulez.
(*
Certaines applications ont une taille de fenêtre fixe et non modifiable, certaines fenêtres ouvrent un nouvel onglet dans une fenêtre éventuellement déjà ouverte )
Le script s'exécute avec la commande:
python3 /path/to/script <application>
Le scénario:
pid
et la id
de la fenêtre correspondante) dans la sortie du wmctrl -lp
-command (pour seulement 15 secondes, pour empêcher une boucle infinie)Une fois que la fenêtre apparaît, il maximise la fenêtre avec la commande:
xdotool windowsize <window_id> 100% 100%
Le code
#!/usr/bin/env python3
import subprocess
import getpass
import time
import sys
app = sys.argv[1]
user = getpass.getuser()
get = lambda x: subprocess.check_output(x).decode("utf-8")
ws1 = get(["wmctrl", "-lp"]); t = 0
subprocess.Popen(app)
while t < 30:
ws2 = [(w.split()[2], w.split()[0]) for w in get(["wmctrl", "-lp"]).splitlines() if not w in ws1]
procs = sum([[(w[1], p) for p in get(["ps", "-u", user]).splitlines() \
if app[:15].lower() in p.lower() and w[0] in p] for w in ws2], [])
if len(procs) > 0:
subprocess.call(["xdotool", "windowsize", "-sync", procs[0][0] , "100%", "100%"])
break
time.sleep(0.5)
t = t+1
Le script nécessite à la fois wmctrl
et xdotool
Sudo apt-get install wmctrl xdotool
Copiez le script ci-dessus dans un fichier vide, enregistrez-le sous le nom run_maximized.py
Maintenant, éditez votre fichier .desktop
:
Copiez le fichier global .desktop
_ localement:
cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications
ouvrez le fichier avec gedit:
gedit ~/.local/share/applications/chromium-browser.desktop
Naviguez jusqu'à la ligne:
Exec=chromium-browser %U
(qui est la première ligne, commençant par Exec=
Changez-le en:
Exec=python3 /path/to/script.py chromium-browser
où vous devez remplacer /path/to/script.py
par le chemin réel.
Déconnectez-vous et reconnectez-vous. Votre lanceur Chromium ouvrira désormais Chromium maximized.
ouvrez le fichier avec gedit:
gedit ~/.local/share/applications/chromium-browser.desktop
Naviguez jusqu'à la ligne:
Actions=NewWindow;Incognito;TempProfile;
Changez-le en:
Actions=NewWindow;Incognito;TempProfile;divider1;Open maximized;
Ajoutez au bas du fichier la section ci-dessous:
[Desktop Action Open maximized]
Name=Open maximized
Exec=python3 /path/to/script.py chromium-browser
OnlyShowIn=Unity;
[Desktop Action divider1]
Name=.....................................
OnlyShowIn=Unity;
où vous devez remplacer /path/to/script.py
par le chemin réel.
Déconnectez-vous et reconnectez-vous. Votre lanceur Chromium se présente désormais comme suit:
Dans un fichier .desktop
, vous devez utiliser des chemins absolus; ~
ne fonctionnera pas par exemple. Cela compte pour les fichiers .desktop
dans /usr/share/applications
, ~/.local/share/applications
ainsi que les commandes dans les applications de démarrage (qui sont en réalité appelées par les fichiers .desktop
dans ~/.config/autostart
).