デスクトップにランチャーがあり、同じアイコンで手動でランチャーを追加したい。
既存のランチャーの設定に移動してアイコンをクリックすると、アイコンが保存されているフォルダーではなく、ホームフォルダーに移動します。
ランチャーの使用済みアイコンがシステムのどこにあるかを知るにはどうすればよいですか?
デスクトップにランチャーがあり、同じアイコンで手動でランチャーを追加したい。
既存のランチャーの設定に移動してアイコンをクリックすると、アイコンが保存されているフォルダーではなく、ホームフォルダーに移動します。
ランチャーの使用済みアイコンがシステムのどこにあるかを知るにはどうすればよいですか?
回答:
ほとんどの場合、アイコンは絶対パスと呼ばれるのではなく、現在のアイコンテーマから選択されます。
Icon
定義を探します:
Icon=gnome-panel-launcher
その後、テーマに応じて、のどこかにアイコンを見つけることができ/usr/share/icons
ます。
正しいアイコンパスを見つける簡単なpythonスクリプトを次に示します。
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
です。