使用中のランチャーのアイコンの場所を見つけるにはどうすればよいですか?


22

デスクトップにランチャーがあり、同じアイコンで手動でランチャーを追加したい。

既存のランチャーの設定に移動してアイコンをクリックすると、アイコンが保存されているフォルダーではなく、ホームフォルダーに移動します。

ランチャーの使用済みアイコンがシステムのどこにあるかを知るにはどうすればよいですか?

回答:


19

ほとんどの場合、アイコンは絶対パスと呼ばれるのではなく、現在のアイコンテーマから選択されます。

  1. Geditを開く
  2. ランチャーをGeditウィンドウにドラッグします
  3. 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探しているアイコンが見つかるまで探し回ることができます。


はるかに簡単:ランチャーをコピーして貼り付け、名前とコマンドを変更できます


2018年編集

上記のスクリプトの更新バージョン:

#!/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
チェックする別の一般的なパスは/usr/share/pixmapsです。
htorque

@ステファノ:ヒーロー!両方の答えをありがとう。素晴らしい作品。少なくとも2番目の方法も思い浮かぶはずです。
ティモシュニーマン

トレースバック(最新の最後の呼び出し):ファイル「LookUget.py」、行2、<module> import gi ImportError:no named module named gi
JulianLai

4

もう少し情報。

通常のランチャーは、実際には/ 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

3

これはステファノパラッツォの答えに基づいています

#!/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のオリジナルスクリプトの違いは次のとおりです。

  • これにより、アイコンのすべての解像度が見つかります(48だけではありません)
  • gi.repository代わりに使用Gtk
  • 2ではなくPython 3を使用します
  • 他の方法で少し調整
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.