Wie kann ich die Position eines Symbols eines verwendeten Launchers ermitteln?

22

Ich habe ein Startprogramm auf meinem Desktop und möchte ein weiteres manuell mit demselben Symbol hinzufügen.

Wenn ich zu den Einstellungen des vorhandenen Startprogramms gehe und auf das Symbol klicke, gehe ich nicht zu dem Ordner, in dem das Symbol gespeichert ist, sondern nur zu meinem privaten Ordner.

Wie kann ich herausfinden, wo sich das verwendete Symbol des Launchers in meinem System befindet?

Timo Schneemann
quelle

Antworten:

19

In den meisten Fällen wird das Symbol aus Ihrem aktuellen Symbolthema ausgewählt und nicht als absoluter Pfad bezeichnet.

  1. Öffnen Sie Gedit
  2. Ziehen Sie den Launcher in das Gedit-Fenster
  3. Suchen Sie nach der IconDefinition:

    Icon=gnome-panel-launcher

Sie können das Symbol dann abhängig von Ihrem Thema irgendwo in finden /usr/share/icons.

Hier ist ein schnelles Python-Skript, das den richtigen Symbolpfad für Sie findet:

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"

Speichern Sie es irgendwo und führen Sie es aus python /path/to/script.py.

Es wird so aussehen:

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

Alternativ können Sie einfach darin stöbern, /usr/share/iconsbis Sie das gesuchte Symbol gefunden haben.


Viel einfacher: Sie können den Launcher einfach kopieren und einfügen und den Namen und den Befehl ändern


EDIT 2018

Aktualisierte Version des obigen Skripts:

#!/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
quelle
5
Ein weiterer häufig zu überprüfender Pfad ist /usr/share/pixmaps.
htorque
@Stefano: Held! Vielen Dank für beide Antworten. Funktioniert hervorragend. Zumindest hätte mir auch der 2. Weg in den Sinn kommen sollen.
Timo Schneemann
Traceback (letzter Aufruf zuletzt): Datei "LookUget.py", Zeile 2, in <module> import gi ImportError: Kein Modul mit dem Namen gi
JulianLai
4

Ein bisschen mehr Infos.

Normale Startprogramme sind wirklich .desktop-Dateien in / usr / share / applications /.

Zum Beispiel: /usr/share/applications/usb-creator-gtk.desktop

(Siehe http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html )

Jede Desktop-Datei hat eine Zeile, die das Symbol angibt. Beispiel:

Icon=usb-creator-gtk

Wenn es keinen Pfad (und keine Dateierweiterung) gibt (wie in diesem Fall), bedeutet dies, dass sich das Symbol (irgendwo) in / usr / share / icons / befindet und das zur Laufzeit verwendete vom aktuellen Thema und einigen davon abhängt Gibt den Anzeigekontext (Größe) an.

Wenn Sie den Symbolnamen (ohne Erweiterung) aus der Desktop-Datei kennen, können Sie ihn wie folgt finden:

$ 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
quelle
3

Dies basiert auf der Antwort von Stefano Palazzo hier .

#!/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")

Speichern Sie das Obige in eine Datei und führen Sie es mit aus python3 /path/to/file.

Unterschiede zwischen Stefano Palazzos Originalschrift sind:

  • Hier finden Sie alle Auflösungen des Symbols (nicht nur 48)
  • Verwendet gi.repositoryanstelle vonGtk
  • Verwendet Python 3 anstelle von 2
  • In anderer Hinsicht leicht optimiert
kiri
quelle