J'ai écrit un script dans python pour augmenter le volume de mon volume avec pactl. J'ai créé un fichier .desktop
[Desktop Entry]
Type=Application
Terminal=false
Name=Super Volume
Icon=/home/tyler/SuperVolume/icon.ico
Exec=/home/tyler/SuperVolume/SuperVolume.py
Tout allait bien
mais alors j'ai remarqué qu'il ne s'agissait pas d'ajouter la flèche blanche à mon icône mais d'ouvrir une icône générique et de placer la flèche dessus
Donc, si quelqu'un pouvait me dire comment changer cela, j'apprécierais vraiment que je googe beaucoup avant de demander, mais je n'utilisais peut-être pas les bons mots clés, je ne suis pas sûr.
La fenêtre de votre image est une fenêtre Tkinter . Les fenêtres de Tkinter par défaut ne correspondent pas à l'icône du lanceur à moins que ne définisse spécifiquement le lanceur (fichier .desktop
) de manière à correspondre au WM_CLASS
de la fenêtre. Nous expliquons plus en détail comment faire cela.
cependant
Si vous ne définissez pas un WM_CLASS
spécifique dans votre code python
/Tkinter
, toutes les fenêtres Tkinter
ont le même WM_CLASS
. Vous pouvez voir que si vous courez
xprop WM_CLASS
dans un terminal, appuyez sur Returnet cliquez ensuite sur la fenêtre Tkinter
. Cela montrera:
WM_CLASS(STRING) = "tk", "Tk"
Cela signifie que si vous possédez éventuellement plusieurs applications Tkinter
, elles apparaîtront toutes sous la même icône dans le lanceur. Ce serait un générique sauf si vous modifiez votre fichier .desktop
.
Vous pouvez définir le WM_CLASS
en le réglant comme suit:
#!/usr/bin/env python3
from tkinter import *
# set the WM_CLASS
win = Tk(className="applicationname")
# set the window title
win.wm_title("Test 123")
win.mainloop()
Ajoutez la ligne suivante à votre fichier .desktop
:
StartupWMClass=applicationname
où applicationname
est le nom que vous avez défini dans le code python
/Tkinter
.