Liste aller verfügbaren eindeutigen Symbole mit Namen und Miniaturansicht anzeigen


14

Ich möchte sehen, welche Symbole auf meinem System installiert und verfügbar sind und unter welchen Namen ich auf sie verweisen muss.

Wie kann ich eine schön formatierte Liste aller eindeutigen Symbole erhalten (nicht mehrere Auflösungen separat anzeigen), die den Symbolnamen, eine Vorschau-Miniaturansicht, den Speicherort und möglicherweise, woher, wenn möglich, enthält (z. B. welches Symbol-Themenpaket)?

System: Ubuntu 15.10 Wily Werewolf 64-Bit-
Desktop: Unity


In Bezug auf den Teil "Herausfinden, aus welchem ​​Paket": "dpkg-query -S / bin / bash" gibt den Paketnamen der ausführbaren Bash-Datei im Verzeichnis / bin aus (als Beispiel für die Funktionsweise). Mit nur "/ bin" als Argument werden alle installierten Pakete für alle Dateien im Verzeichnis / bin ausgegeben.
Neoc

2
find /usr/share/icons/ -iname '*.png' -or -iname '*.svg' -printf '%h %f %p\n' | sed -r 's;^/usr/share/icons/([^/]*)/[^ ]* ;\1 ;' | sort -u -k1,2 | column -tdeckt das meiste davon ab (außer dem Miniaturbild-Teil), würde ich sagen. Ich bin mir nicht sicher, wie Sie das Miniaturbild in einer Liste erwarten.
Muru

@muru In einem GUI-Fenster? Ich habe nicht gesagt, dass es eine Befehlszeilenlösung sein sollte ...
Byte Commander

@ByteCommander Du hast es nicht getan, aber du hast auch nicht gesagt, welche Art von GUI. Erwarten Sie, dass wir eine GUI für Sie programmieren?
Muru

@muru Nein, aber ich dachte, jemand kennt vielleicht ein bereits vorhandenes Tool dafür? Ich weiß, dass ich so etwas einmal verwendet habe, es wurde wahrscheinlich in eine XFCE-Funktion eingebaut, vielleicht um dort ein Symbol für Trägerraketen auszuwählen ...
Byte Commander

Antworten:


13

gtk3-icon-browser ist eine grafische Anwendung zum Auflisten von Themensymbolen .

Bis heute befindet es sich noch in der Entwicklung und ist im gtk-3-examplesPaket für Vivid und neuere Versionen verfügbar . Seine Entwicklung kann auf diesen Blog-Beitrag vom 2014 zurückgeführt werden .

Durchsuchen des elementaren dunklen Xfce-Symbols

gtk3-icon-browser Normal unter Xubuntu 15.04

gtk3-icon-browser Symbolisch unter Xubuntu 15.04

Schnelle Überprüfung

  • Schön formatierte Liste aller eindeutigen Symbole: Ja 1
  • Enthält den Symbolnamen: Ja
  • Vorschaubild: Ja
  • Position der Symbole: Nr. 2
  • Ursprung des Symbolthemas: Ja 3

1 Dieses Tool wird standardmäßig als Symbolansicht angezeigt (keine Möglichkeit, in die Listenansicht zu wechseln). Doppelklicken Sie auf jedes Symbol, um alle verfügbaren Auflösungen für dieses Symbol anzuzeigen.

gtk3-icon-browser Symbolisches Doppelklick-Symbol

2 Dieses Tool sucht höchstwahrscheinlich in einem /usr/share/iconsVerzeichnis (ohne die Positionen der einzelnen Symbole zu erwähnen) und ruft zusätzliche Informationen gemäß der Symbolnamensspezifikation ab .

3 Dieses Tool zeigt nur die Symbole für das aktuelle Thema an. Um Symbole für ein anderes Thema anzuzeigen, ändern Sie das Erscheinungsbild vom aktuellen Thema in ein anderes Thema.

Durchsuchen von Humanity-Dark-Symbolen (mit Popup-Dialogfeld)

gtk3-icon-browser Humanity-dunkle Symbole

Bedarf

  • GTK + 3.13.4 oder neuer
  • Installieren Sie gtk-3-examplesin 15.04 (Vivid) oder neueren Versionen

Wie installiert man

sudo apt-get install gtk-3-examples

Wie man läuft

gtk3-icon-browser

Getestet unter Xubuntu 15.04 mit GTK + 3.14.13 (neueste Version bis zu diesem Antwortdatum).

Verwandte Quellen

  1. Quellcode von gtk / demos bei master für GNOME / gtk auf GitHub.

  2. Neues Symbol-Browser-Tool für GTK + -Entwickler in Entwicklung im Fedora Magazine

  3. Erwähnt kurz mit Screenshot in dieser Antwort auf Ask Ubuntu.


Diese Lösung ist fast perfekt. Es wäre jedoch so, wenn Symbole aus anderen Themen angezeigt würden, die vom aktuellen Thema ebenfalls nicht bereitgestellt werden.
Byte Commander

@ByteCommander Jemand sollte AB anweisen, seine Antwort wiederherzustellen, was genau dieses Programm vorschlug.
17.

3

Nun, einige DEs zeigen dies, wenn Sie versuchen, das Symbol von etwas zu ändern, aber es ist ziemlich einfach, es selbst zu tun. Finden Sie einfach alle Symbole, stellen Sie Links zu ihnen in einem Verzeichnis her und durchsuchen Sie das Verzeichnis. Die Symbole mit unterschiedlichen Auflösungen haben denselben Namen. Was sich ändert, ist der Pfad. Beispielsweise:

$ find /usr/share/icons/ -name '*emacs.*' 
/usr/share/icons/hicolor/16x16/apps/emacs.png
/usr/share/icons/hicolor/48x48/apps/emacs.png
/usr/share/icons/hicolor/scalable/apps/emacs.svg
/usr/share/icons/hicolor/128x128/apps/emacs.png
/usr/share/icons/hicolor/32x32/apps/emacs.png
/usr/share/icons/hicolor/24x24/apps/emacs.png
/usr/share/icons/Mint-X/apps/96/emacs.svg
/usr/share/icons/Mint-X/apps/16/emacs.png
/usr/share/icons/Mint-X/apps/24/emacs.png
/usr/share/icons/Mint-X/apps/48/emacs.png
/usr/share/icons/Mint-X/apps/32/emacs.png
/usr/share/icons/Mint-X/apps/22/emacs.png

Wie Sie oben sehen können, ist das allgemeine Format /ParentDir/ThemeName/CLass/Resolution/IconName. Da der Name des Symbols identisch ist, können wir Duplikate leicht vermeiden, indem jeder erstellte Link alle vorhandenen Links mit demselben Namen überschreibt. Wir möchten jedoch die Symbole aus den verschiedenen Themen getrennt trennen, sodass etwas mehr Skripte erforderlich sind:

#!/usr/bin/env bash

## Create the target directory
mkdir -p ~/foo
## Iterate over all files/dirs in the target locations
for i in ~/.icons/* /usr/share/icons/* /usr/share/pixmaps/*; do 
    ## find all icon files in this directory. If the current $i
    ## is not a directory, find will just print its path directly.
    find "$i" -name '*xpm' -o -name '*.svg' -o -name '*png' | 
        ## Iterate over find's results
        while read ico; do 
            ## Make the link. ${var##*/} will print the
            ## basename of $var, without the path. Here, I use
            ## it both to get the theme name (${i##*/}) and the
            ## icon's name (${ico##*/}).         
            ln -sf "$ico" "${i##*/}"_"${ico##*/}"
        done
done

Das obige Skript erstellt das Verzeichnis, ~/foodas Links zu jeder Ihrer eindeutigen Symboldateien enthält. Die -fOption, lnes anzuweisen, vorhandene Dateien mit demselben Namen zu überschreiben. Da wir den Themennamen im Namen des Links verwenden, sollten keine Duplikate vorhanden sein. Mit den emacs.pngoben gezeigten Symbolen wird beispielsweise Folgendes erstellt:

hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png

Sie können jetzt navigieren ~/foound einen Blick darauf werfen:

Geben Sie hier die Bildbeschreibung ein

Um die Quellpakete zu erhalten, können Sie Folgendes ausführen:

for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done

Dadurch werden jedoch Bilder aller verfügbaren Auflösungen verknüpft, oder? Kann ich Duplikate in verschiedenen Größen herausfiltern und nur das größte anzeigen?
Byte Commander

@ ByteCommander nein wird es nicht. Mit diesen -fOptionen werden lnvorhandene Links überschrieben, sodass nur ein gleichnamiges Symbol angezeigt wird. Ich habe jedoch gerade festgestellt, dass Dupes zwar kein Problem darstellen, Sie jedoch viele vermissen werden, da alle gedit.pngSymbole durch das zuletzt gefundene überschrieben werden. Das wollte ich mit Auflösungen tun, aber es geht nicht um verschiedene Themen: Es wird nur das Symbol eines Themas angezeigt. Ich versuche das jetzt zu beheben.
Terdon

@ByteCommander OK, siehe aktualisierte Antwort. Dies hat immer noch kein Problem mit Duplikaten, zeigt aber jetzt Symbole aus verschiedenen Themen korrekt an.
Terdon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.