Как я могу найти местоположение значка средства запуска используемым?

Я имею средство запуска на своем рабочем столе и хочу добавить другой вручную с тем же значком.

Когда я перехожу к предпочтениям существующего средства запуска и нажимаю значок, оно не берет меня к папке, где значок хранится, но только к моей домашней папке.

Как я могу узнать, где используемый значок средства запуска расположен в моей системе?

22
задан 21 November 2012 в 15:09

3 ответа

Большую часть времени значок будет выбран из Вашей текущей знаковой темы, вместо того, чтобы упоминаться как полный путь.

  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")
19
ответ дан 23 November 2019 в 01:36

Немного больше информации.

Нормальные средства запуска являются действительно .desktop файлами в/usr/share/applications/.

Например:/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
4
ответ дан 23 November 2019 в 01:36

Это базируется из ответа 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
  • Немного настроенный другими способами
3
ответ дан 23 November 2019 в 01:36

Другие вопросы по тегам:

Похожие вопросы: