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


22

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

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

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

Ответы:


19

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

  1. Открыть Гедит
  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.
hruque

@ Стефано: герой! Большое спасибо за оба ваших ответа. Работает великолепно. По крайней мере, второй путь тоже должен был прийти мне в голову.
Тимо Шнеманн

Traceback (последний вызов был последним): файл «LookUget.py», строка 2, в <module> import gi ImportError: нет модуля с именем gi
JulianLai

4

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

Обычные средства запуска - это действительно файлы .desktop в / usr / share / Applications /.

Например: /usr/share/applications/usb-creator-gtk.desktop

(См. Https://specifications.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.

Различия между оригинальным сценарием Стефано Палаццо заключаются в том, что:

  • Это найти все разрешения значка (не только 48)
  • Использует gi.repositoryвместоGtk
  • Использует Python 3 вместо 2
  • Слегка подправлены другими способами
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.