Kullanılabilir tüm benzersiz simgelerin adlarını ve küçük resimlerini içeren listeyi görüntüleyin


16

Sistemimde hangi simgelerin yüklü ve kullanılabilir olduğunu ve bunlara hangi isimlerle başvurmam gerektiğini görmek istiyorum.

Simge adını, önizleme küçük resmini, konumu ve mümkünse nereden geldiğini (örneğin hangi simge tema paketini) içeren tüm benzersiz simgelerin (birkaç çözünürlüğü ayrı ayrı göstermeyin) güzel bir şekilde biçimlendirilmiş bir listesini nasıl alabilirim?

Sistem: Ubuntu 15.10 Wily Kurtadam 64 bit
Masaüstü: Unity


"Hangi paketten bulma" bölümü ile ilgili olarak: "dpkg-query -S / bin / bash" / bin dizinindeki bash yürütülebilir dosyasının paket adını verir (örnek olarak nasıl çalışır). Bağımsız değişken olarak yalnızca "/ bin" ile / bin dizinindeki tüm dosyalar için kurulu tüm paketleri çıktılar.
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 -tçoğunu kapsar (küçük resim kısmı hariç), söyleyebilirim. Küçük resmi bir listede nasıl görmeyi beklediğinizden emin değilim.
muru

@muru Bir GUI penceresinde? Bir komut satırı çözümü olması gerektiğini söylemedim ...
Byte Commander

@ByteCommander Yapmadınız, ama ne tür bir GUI de söylemediniz. Sizin için bir GUI programlamamızı bekliyor musunuz?
muru

@muru Hayır, ama birinin bunun için zaten var olan bir aracı bildiğini sanıyordum? Bir keresinde böyle bir şey kullandığımı biliyorum, muhtemelen bazı XFCE işlevlerine yerleştirildi, belki oradaki fırlatıcılar için bir simge seçmek için ...
Byte Commander

Yanıtlar:


15

gtk3-icon-browser temalı simgeleri listeleyen grafiksel bir uygulamadır.

Bu güne kadar hala geliştirilme aşamasındadır ve gtk-3-examplesVivid ve daha yeni sürümler için pakette mevcuttur . Gelişimi 2014 tarihli bu blog yazısına kadar uzanabilir .

Temel Xfce karanlık simge tarama

gtk3-icon-browser Xubuntu 15.04'te Normal

gtk3-icon-browser Xubuntu üzerinde sembolik 15.04

Hızlı inceleme

  • Tüm benzersiz simgelerin güzel biçimlendirilmiş listesi: Evet 1
  • Simge adını içerir: Evet
  • Önizleme küçük resmi: Evet
  • Simgelerin yeri: Hayır 2
  • Simge teması kökeni: Evet 3

1 Bu araç varsayılan olarak simge görünümü olarak gösterilir (liste görünümüne geçmenin bir yolu yoktur). Her simgeye çift tıklandığında o simgeyle ilgili tüm çözünürlükler gösterilir.

gtk3-icon-browser Sembolik çift tıklatma simgesi

2 Bu araç büyük olasılıkla /usr/share/iconsdizine bakar (her simge için konumlardan bahsetmeden) ve simge adlandırma belirtimine göre ek bilgiler alır .

3 Bu araç yalnızca geçerli temanın simgelerini gösterir . Diğer temanın simgelerini göstermek için, görünümü geçerli temanın başka bir temasına değiştirin.

Humanity-dark simgelerine göz atma (açılır iletişim kutusu ile)

gtk3-simge-tarayıcı İnsanlık-karanlık simgeler

Gereksinimler

  • GTK + 3.13.4 veya daha yenisi
  • gtk-3-examples15.04 (Canlı) veya daha yeni sürümlerde yükleyin

Nasıl kurulur

sudo apt-get install gtk-3-examples

Nasıl çalıştırılır

gtk3-icon-browser

GTK + 3.14.13 (bu cevap tarihinin en son sürümü) kullanılarak Xubuntu 15.04 üzerinde çalışılarak test edilmiştir.

İlgili kaynaklar

  1. GitHub'da GNOME / gtk için master'da gtk / demos kaynak kodu .

  2. Fedora Dergisi'nde geliştirilmekte olan GTK + geliştiricileri için yeni simge tarayıcı aracı

  3. Ask Ubuntu'daki bu cevapta ekran görüntüsü ile kısaca bahsedildi .


Bu çözüm neredeyse mükemmel. Yine de, mevcut tema tarafından sağlanmayan diğer temalardan simgeler göstermesi olurdu.
Byte Komutanı

@ByteCommander birisine AB'ye tam olarak bu programı öneren cevabı geri almasını söylemelidir.
muru

3

Bazı DE'ler, bir şeyin simgesini değiştirmeye çalıştığınızda bunu gösterir, ancak bunu kendiniz yapmak oldukça kolaydır. Tüm simgeleri bulun, bir dizinde bunlara bağlantılar oluşturun ve dizine göz atın. Farklı çözünürlükteki simgeler aynı ada sahip olacaktır, yol ne değişir? Örneğin:

$ 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

Yukarıda gördüğünüz gibi, genel biçim /ParentDir/ThemeName/CLass/Resolution/IconName. Bu nedenle, simgenin adı aynı olduğundan, oluşturulan her bağlantının aynı addaki mevcut bağlantıların üzerine yazmasını sağlayarak yinelemeleri kolayca önleyebiliriz. Ancak, simgeleri farklı temalardan ayrı olarak jeep yapmak istiyoruz, bu yüzden biraz daha komut dosyası gerektirir:

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

Yukarıdaki komut dosyası ~/foo, benzersiz simge dosyalarınızın her birine bağlantılar içeren dizini oluşturur . -fSeçeneği lnbiz bağlantının adına tema adını kullandığınız beri aynı adla varolan dosyaların üzerine ve onu söyler, hiçbir çiftleri olmalıdır. Örneğin, emacs.pngyukarıda gösterilen simgeler göz önüne alındığında, şunları oluşturur:

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

Artık göz atabilir ~/foove bir göz atabilirsiniz :

resim açıklamasını buraya girin

Ardından, kaynak paketleri almak için şunları çalıştırabilirsiniz:

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

Ancak bu, mevcut tüm farklı çözünürlüklerin resimlerini birbirine bağlayacak, değil mi? Farklı boyutlardaki kopyaları filtreleyebilir ve en büyüğünü gösterebilir miyim?
Byte Komutanı

@ByteCommander hayır olmayacak. -fSeçenekler yapar lnböylece aynı adı taşıyan tek simge gösterilir mevcut bağlantıları üzerine yazma. Ancak, sadece çiftlerin bir sorun olmayacak olmasına rağmen, tüm gedit.pngsimgelerin sonuncusu tarafından üzerine yazılacağından çok sayıda özleyeceğinizi fark ettim . Kararlarla uğraşmak istediğim şey bu, ancak farklı temalarla ilgilenmiyor: sadece bir temanın simgesi gösterilecek. Bunu şimdi düzeltmeye çalışıyorum.
terdon

@ByteCommander Tamam, güncellenmiş cevaba bakın. Bunun kopyalarla hala bir sorunu yok, ancak şimdi farklı temalardan simgeleri doğru bir şekilde gösterecek.
terdon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.