답변:
대부분의 경우, 아이콘은 절대 경로 라기보다는 현재 아이콘 테마에서 선택됩니다.
Icon
정의를 찾으십시오 .
Icon=gnome-panel-launcher
그런 다음 아이콘 찾을 수있는 곳 에서이 /usr/share/icons
테마에 따라.
올바른 아이콘 경로를 찾는 빠른 파이썬 스크립트는 다음과 같습니다.
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"
어딘가에 저장하고 실행하십시오 python /path/to/script.py
.
다음과 같이 보일 것입니다 :
stefano@lenovo:~$ python test.py
enter the icon name (case sensitive):
>>> gtk-execute
/usr/share/icons/Humanity/actions/48/gtk-execute.svg
또는 /usr/share/icons
원하는 아이콘을 찾을 때까지 뒤섞 일 수 있습니다 .
훨씬 쉽게 : 런처를 복사하여 붙여넣고 이름과 명령을 변경할 수 있습니다.
위 스크립트의 업데이트 된 버전 :
#!/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")
조금 더 많은 정보.
일반 런처는 실제로 / usr / share / applications /에있는 .desktop 파일입니다.
예를 들면 다음과 같습니다. /usr/share/applications/usb-creator-gtk.desktop
( http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html 참조 )
각 데스크탑 파일에는 아이콘을 지정하는 행이 있습니다 (예 :
Icon=usb-creator-gtk
경로 (및 파일 확장자)가없는 경우 (이 경우와 같이) 아이콘은 / usr / share / icons /에 (어딘가에) 있으며 런타임에 사용되는 아이콘은 현재 테마와 일부에 따라 다릅니다. 표시 컨텍스트 (크기)
데스크탑 파일에서 아이콘 이름 (확장자 없음)을 알면 다음과 같이 아이콘을 찾을 수 있습니다.
$ 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
이것은 스테파노 팔라 조의 답변을 바탕으로 합니다 .
#!/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")
위 파일을 파일에 저장하고로 실행하십시오 python3 /path/to/file
.
Stefano Palazzo 의 원본 대본의 차이점 은 다음과 같습니다.
gi.repository
대신에 사용Gtk
/usr/share/pixmaps
입니다.