J'ai créé un lanceur d'application dans /usr/share/applications
qui lance rdesktop. Le fichier spécifie un nom d'icône et j'ai ajouté les icônes à:
/usr/share/icons/HighContrast/48x48/apps
/usr/share/icons/HighContrast/22x22/apps
/usr/share/icons/HighContrast/256x256/apps
/usr/share/icons/HighContrast/32x32/apps
/usr/share/icons/HighContrast/scalable/apps-extra
/usr/share/icons/HighContrast/24x24/apps
/usr/share/icons/HighContrast/16x16/apps
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16/apps
Je dresse ensuite le lanceur dans la barre des tâches et le lanceur portant le logo correct est visible dans la barre des tâches. Cependant, lorsque je lance la tâche, une nouvelle icône est créée dans la barre des tâches, un carré avec un point d'interrogation au centre.
De quelles icônes ai-je besoin et où, afin que la barre des tâches affiche l'icône correcte pour l'application au lancement?
Le contenu du fichier .desktop:
[Entrée du bureau] Version = 1.0 Terminal = false Icon = mswindows Type = Application Catégories = Réseau; Exec = rdesktop win7shared1 -g 1680x1000 Nom = win7shared1 GenericName = rdesktop Comment = Ouvrir le bureau Windows Mots-clés = Windows StartupNotify = false
Ce qui va probablement résoudre votre problème est de faire ce qui suit:
Lorsqu'il est en cours d'exécution, ouvrez un terminal et tapez:
xprop WM_CLASS
Cliquez ensuite sur la fenêtre d’application ouverte.
La sortie ressemblera à (exemple gedit
name__):
WM_CLASS(STRING) = "gedit", "Gedit"
Utilisez la première partie (dans ce cas, gedit
name__), pour composer une ligne dans votre fichier .desktop
:
StartupWMClass=<string>
(remplacez <string>
par la (première partie de) la sortie de xprop WM_CLASS
, par exemple StartupWMClass=gedit
)
Maintenant, essayez à nouveau (vous devrez peut-être vous déconnecter/vous connecter), l'application apparaîtra probablement dans le lanceur sous sa propre icône.
.desktop
), mais qu'une autre icône apparaît avec uniquement une icône générique (point d'interrogation), il est fort probable que la fenêtre de l'application et le programme de lancement ne se connectent pas. Pour une raison quelconque, le lanceur ne reconnaît pas la fenêtre de l'application comme étant "sa". C'est souvent le cas lorsqu'un script ou une application non standard (-command) est utilisé. Dans ces cas, la ligne StartupWMClass=
est souvent la solution.pour moi xprop|grep WM_CLASS
a donné WM_CLASS(STRING) = "Sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce"
(je rencontrais ce problème avec pycharm pour python)
C'était le Sun-awt-X11-XFramePeer
dont j'avais besoin comme chaîne dans mon fichier .desktop (sans guillemets) - Merci!
Après avoir placé les icônes au bon endroit, vous devez simplement redémarrer xserver (déconnecter et vous reconnecter).
Essayez également de mettre à jour le cache des icônes (collez simplement le code ci-dessous dans le terminal):
for d in ~/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do Sudo gtk-update-icon-cache -f $d; done