如何找到正在使用的启动器图标的位置?


22

我的桌面上有一个启动器,并希望使用相同的图标手动添加另一个启动器。

当我转到现有启动器的首选项并单击图标时,它不会带我到存储图标的文件夹,而是带我的主文件夹。

如何找出启动器中使用过的图标在系统中的位置?

Answers:


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 2011年

@Stefano:英雄!非常感谢您的两个回答。作品辉煌。至少我也应该想到第二种方式。
Timo Schneemann 2011年

追溯(最近一次通话):<module>中第2行的文件“ LookUget.py” import gi ImportError:没有名为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

这是基于Stefano Palazzo 在这里的回答。

#!/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
  • 使用Python 3而不是2
  • 以其他方式略微调整
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.