Comment puis-je trouver l'emplacement d'une icône d'un lanceur en cours d'utilisation?

22

J'ai un lanceur sur mon bureau et je veux en ajouter un autre manuellement avec la même icône.

Lorsque je vais dans les préférences du lanceur existant et que je clique sur l'icône, cela ne m'amène pas au dossier où l'icône est stockée, mais juste à mon dossier d'accueil.

Comment puis-je savoir où se trouve l'icône utilisée du lanceur dans mon système?

Timo Schneemann
la source

Réponses:

19

La plupart du temps, l'icône sera choisie dans votre thème d'icônes actuel, plutôt que d'être désignée comme un chemin absolu.

  1. Ouvrir Gedit
  2. Faites glisser le lanceur dans la fenêtre Gedit
  3. Recherchez la Icondéfinition:

    Icon=gnome-panel-launcher

Vous pouvez alors trouver l'icône quelque part dans /usr/share/icons, en fonction de votre thème.

Voici un script python rapide qui trouve le chemin d'icône correct pour vous:

import gtk

print "enter the icon name (case sensitive):"
icon_name = raw_input(">>> ")
icon_theme = gtk.icon_theme_get_default()
icon = icon_theme.lookup_icon(icon_name, 48, 0)
if icon:
    print icon.get_filename()
else:
    print "not found"

Enregistrez-le quelque part et exécutez python /path/to/script.py.

Cela ressemblera à ceci:

stefano@lenovo:~$ python test.py 
enter the icon name (case sensitive):
>>> gtk-execute
/usr/share/icons/Humanity/actions/48/gtk-execute.svg

Alternativement, vous pouvez simplement fouiller /usr/share/iconsjusqu'à trouver l'icône que vous recherchez.


Beaucoup plus facile: vous pouvez simplement copier et coller le lanceur et changer le nom et la commande


EDIT 2018

Version mise à jour du script ci-dessus:

#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

icon_name = input("Icon name (case sensitive): ")
icon_theme = Gtk.IconTheme.get_default()
icon = icon_theme.lookup_icon(icon_name, 48, 0)
if icon:
    print(icon.get_filename())
else:
    print("not found")
Stefano Palazzo
la source
5
Un autre chemin commun à vérifier est /usr/share/pixmaps.
htorque
@Stefano: Hero! Merci beaucoup pour vos deux réponses. Fonctionne brillamment. Au moins, la deuxième voie aurait dû me venir à l'esprit aussi.
Timo Schneemann
Traceback (dernier appel en date): Fichier "LookUget.py", ligne 2, dans <module> import gi ImportError: Aucun module nommé gi
JulianLai
4

Un peu plus d'infos.

Les lanceurs normaux sont vraiment des fichiers .desktop dans / usr / share / applications /.

Par exemple: /usr/share/applications/usb-creator-gtk.desktop

(Voir https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html )

Chaque fichier de bureau a une ligne qui spécifie l'icône, par exemple:

Icon=usb-creator-gtk

Lorsqu'il n'y a pas de chemin (et d'extension de fichier) (comme dans ce cas), cela signifie que l'icône se trouve (quelque part) dans / usr / share / icons / et celle utilisée au moment de l'exécution dépend du thème actuel et dans certains cas le contexte d'affichage (taille).

Connaissant le nom de l'icône (sans extension) à partir du fichier du bureau, on peut le / les trouver comme suit:

$ find . -name "usb-creator-gtk*"
./hicolor/scalable/apps/usb-creator-gtk.svg
./Humanity/apps/32/usb-creator-gtk.svg
./Humanity/apps/16/usb-creator-gtk.svg
./Humanity/apps/22/usb-creator-gtk.svg
./Humanity/apps/24/usb-creator-gtk.svg
./Humanity/apps/64/usb-creator-gtk.svg
./Humanity/apps/48/usb-creator-gtk.svg
kyleN
la source
3

Ceci est basé sur la réponse de Stefano Palazzo ici .

#!/usr/bin/env python3

from gi.repository import Gtk

icon_name = input("Icon name (case sensitive): ")
if icon_name:
    theme = Gtk.IconTheme.get_default()
    found_icons = set()
    for res in range(0, 512, 2):
        icon = theme.lookup_icon(icon_name, res, 0)
        if icon:
            found_icons.add(icon.get_filename())

    if found_icons:
        print("\n".join(found_icons))
    else:
        print(icon_name, "was not found")

Enregistrez ce qui précède dans un fichier et exécutez-le avec python3 /path/to/file.

Les différences entre le scénario original de Stefano Palazzo sont les suivantes:

  • Cela permet de trouver toutes les résolutions de l'icône (pas seulement 48)
  • Utilise gi.repositoryau lieu deGtk
  • Utilise Python 3 au lieu de 2
  • Légèrement modifié à d'autres égards
kiri
la source