Visualizza l'elenco di tutte le icone uniche disponibili con i loro nomi e miniature


15

Voglio vedere quali icone sono installate e disponibili sul mio sistema e con quali nomi devo fare riferimento ad esse.

Come posso ottenere un elenco ben formattato di tutte le icone uniche (non mostrare diverse risoluzioni separatamente) che contenga il nome dell'icona, una miniatura di anteprima, la posizione e forse se possibile da dove proviene (ad es. Quale pacchetto di temi per icone)?

Sistema: Ubuntu 15.10 Wily Werewolf 64 bit
Desktop: Unity


Per quanto riguarda la parte "Scopri da quale pacchetto": "dpkg-query -S / bin / bash" genera il nome del pacchetto dell'eseguibile bash nella directory / bin (ad esempio come funziona). Con solo "/ bin" come argomento avrebbe prodotto tutti i pacchetti installati per tutti i file nella directory / bin.
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 -tcopre quasi tutto (tranne la parte in miniatura), direi. Non sono sicuro di come ti aspetti di vedere la miniatura in un elenco.
muru,

@muru In una finestra della GUI? Non ho detto che dovrebbe essere una soluzione da riga di comando ...
Byte Commander

@ByteCommander Non l'hai fatto, ma non hai nemmeno detto che tipo di interfaccia grafica. Ti aspetti che programmiamo una GUI per te?
muru,

@muru No, ma pensavo che qualcuno potesse conoscere uno strumento già esistente per questo? So di aver usato qualcosa del genere una volta, probabilmente è stato integrato in alcune funzioni XFCE, forse per selezionare un'icona per i lanciatori lì ...
Byte Commander

Risposte:


14

gtk3-icon-browser è un'applicazione grafica per elencare icone a tema.

Fino ad oggi, è ancora in fase di sviluppo e disponibile nel gtk-3-examplespacchetto per Vivid e versioni più recenti. Il suo sviluppo può essere ricondotto a questo post del blog del 2014 .

Navigazione elementare Xfce icona scura

gtk3-icon-browser Normal su Xubuntu 15.04

gtk3-icon-browser Simbolico su Xubuntu 15.04

Recensione veloce

  • Elenco ben formattato di tutte le icone uniche: Sì 1
  • Contiene il nome dell'icona: Sì
  • Anteprima in anteprima: Sì
  • Posizione delle icone: n. 2
  • Origine tema icona: Sì 3

1 Questo strumento mostrerà come icona di default (nessun modo per passare alla vista elenco). Fare doppio clic su ciascuna icona mostrerà tutte le risoluzioni disponibili per quell'icona.

gtk3-icon-browser Icona simbolica del doppio clic

2 Questo strumento molto probabilmente esamina la /usr/share/iconsdirectory (senza menzionare le posizioni per ciascuna icona) e estrae informazioni aggiuntive in base alla specifica di denominazione dell'icona .

3 Questo strumento mostra solo le icone per il tema corrente . Per mostrare icone per altri temi, cambia l'aspetto dal tema corrente a un altro tema.

Esplorazione di icone dark-umanity (con finestra popup)

gtk3-icon-browser Humanity-dark icons

Requisiti

  • GTK + 3.13.4 o più recente
  • Installa gtk-3-examplesin 15.04 (Vivido) o versioni più recenti

Come installare

sudo apt-get install gtk-3-examples

Come correre

gtk3-icon-browser

Testato su Xubuntu 15.04, usando GTK + 3.14.13 (ultima versione a questa data di risposta).

Fonti correlate

  1. Codice sorgente di gtk / demo sul master per GNOME / gtk su GitHub.

  2. Nuovo strumento browser icona per sviluppatori GTK + in sviluppo su Fedora Magazine

  3. Menzionato brevemente con screenshot in questa risposta su Ask Ubuntu.


Questa soluzione è quasi perfetta. Sarebbe se mostrasse icone di altri temi che non sono fornite anche dal tema attuale, però.
Byte comandante

@ByteCommander qualcuno dovrebbe dire ad AB di ripristinare la propria risposta, che ha suggerito esattamente questo programma.
muru,

3

Bene, alcuni DE lo mostrano quando provi a cambiare l'icona di qualcosa, ma è abbastanza facile farlo da soli. Basta trovare tutte le icone, creare collegamenti in alcune directory e sfogliare la directory. Le icone di diverse risoluzioni avranno lo stesso nome, ciò che cambia è il percorso. Per esempio:

$ 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

Come puoi vedere sopra, il formato generale è /ParentDir/ThemeName/CLass/Resolution/IconName. Quindi, poiché il nome dell'icona è lo stesso, possiamo evitare facilmente i duplicati facendo sì che ogni collegamento creato sovrascriva qualsiasi collegamento esistente con lo stesso nome. Tuttavia, vogliamo separare le icone dai diversi temi, quindi è necessario un po 'più di scripting:

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

Lo script sopra creerà la directory ~/fooche conterrà collegamenti a ciascuno dei tuoi file icona unici. L' -fopzione per lndirgli di sovrascrivere i file esistenti con lo stesso nome e, poiché stiamo usando il nome del tema nel nome del collegamento, non dovrebbero esserci duplicati. Ad esempio, date le emacs.pngicone mostrate sopra, creerà:

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

Ora puoi, navigare ~/fooe dare un'occhiata:

inserisci qui la descrizione dell'immagine

Quindi, per ottenere i pacchetti di origine, è possibile eseguire:

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

Ciò collegherà comunque le immagini di tutte le diverse risoluzioni disponibili, giusto? Posso filtrare i duplicati in diverse dimensioni e mostrare solo quello più grande?
Byte Commander

@ByteCommander no non lo farà. Le -fopzioni consentono di lnsovrascrivere i collegamenti esistenti in modo da visualizzare solo un'icona con lo stesso nome. Tuttavia, mi sono appena reso conto che mentre i duplicati non saranno un problema, ne mancherete molti poiché tutte le gedit.pngicone verranno sovrascritte dall'ultimo trovato. Questo è ciò che volevo affrontare con le risoluzioni, ma non tratta temi diversi: verrà mostrata solo un'icona a tema. Sto provando a risolverlo ora.
terdon,

@ByteCommander OK, vedi risposta aggiornata. Questo non ha ancora alcun problema con i duplicati, ma ora mostrerà correttamente icone di temi diversi.
terdon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.