Kullanılan başlatıcının simgesinin konumunu nasıl bulabilirim?


22

Masaüstümde bir başlatıcı var ve aynı simge ile manuel olarak bir tane daha eklemek istiyorum.

Mevcut başlatıcının tercihlerine gidip simgeye tıkladığımda, beni simgenin bulunduğu klasöre değil sadece ana klasörüme götürüyor.

Başlatıcının kullanılan simgesinin sistemimde nerede olduğunu nasıl öğrenebilirim?

Yanıtlar:


19

Çoğu zaman, simge, mutlak yol olarak adlandırılmak yerine geçerli simge temanızdan seçilecektir.

  1. Gedit'i aç
  2. Başlatıcıyı Gedit penceresine sürükleyin
  3. IconTanımı arayın :

    Icon=gnome-panel-launcher

Daha sonra simge bulabilirsiniz bir yerlerde de /usr/share/iconsTemanıza bağlı.

İşte sizin için doğru simge yolunu bulan hızlı bir python betiği:

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"

Bir yere sakla ve koş python /path/to/script.py.

Bu gibi görünecek:

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

Alternatif olarak, aradığınız /usr/share/iconssimgeyi bulana kadar dolaşabilirsiniz .


Çok daha kolay: Başlatıcıyı kopyalayıp yapıştırabilir ve ad ile komutu değiştirebilirsiniz


EDIT 2018

Yukarıdaki betiğin güncellenmiş sürümü:

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

5
Kontrol etmek için başka bir yaygın yoldur /usr/share/pixmaps.
htorque

@Stefano: Kahraman! Her iki cevabınız için çok teşekkür ederim. Parlak çalışıyor. En azından 2. yol da aklıma gelmeliydi.
Timo Schneemann

Geri izleme (en son yapılan arama): Dosya "LookUget.py", satır 2, <module> içeri aktarma gi ImportError: gi adlı bir modül yok
JulianLai

4

Biraz daha bilgi.

Normal başlatıcılar, / usr / share / applications / dizininde gerçekten .desktop dosyalardır.

Örneğin: /usr/share/applications/usb-creator-gtk.desktop

(Bkz. Http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html )

Her masaüstü dosyasında, simgeyi belirten bir çizgi vardır, örneğin:

Icon=usb-creator-gtk

Yol (ve dosya uzantısı) olmadığında (bu durumda olduğu gibi), simgenin / bir yerde / usr / share / icons / içinde bulunduğu ve çalışma zamanında kullanılanın geçerli temaya ve bazılarına bağlı olduğu anlamına gelir. ekran bağlamını gösterir (boyut).

Simge adını (uzantı olmadan) masaüstü dosyasından bilerek, bunlardan birini aşağıda bulabilirsiniz:

$ 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

3

Bu, Stefano Palazzo'nun buradaki cevabına dayanıyor .

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

Yukarıdakileri bir dosyaya kaydedin ve birlikte çalıştırın python3 /path/to/file.

Stefano Palazzo'nun orijinal senaryosu arasındaki farklar :

  • Bu, simgenin tüm çözünürlüklerini bulur (sadece 48 değil)
  • Kullanımları gi.repositoryyerineGtk
  • Python 3 yerine 2 kullanır
  • Hafifçe başka şekillerde tweaked
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.