Làm cách nào tôi có thể tìm thấy vị trí của một biểu tượng của trình khởi chạy đang sử dụng?


22

Tôi có một launcher trên máy tính để bàn của mình và muốn thêm một cái khác bằng tay với cùng một biểu tượng.

Khi tôi đi đến các tùy chọn của trình khởi chạy hiện có và nhấp vào biểu tượng, nó sẽ không đưa tôi đến thư mục lưu trữ biểu tượng mà chỉ vào thư mục nhà của tôi.

Làm cách nào để tìm ra biểu tượng được sử dụng của trình khởi chạy nằm trong hệ thống của tôi?

Câu trả lời:


19

Hầu hết thời gian, biểu tượng sẽ được chọn từ chủ đề biểu tượng hiện tại của bạn, thay vì được gọi là một đường dẫn tuyệt đối.

  1. Mở Gedit
  2. Kéo trình khởi chạy vào cửa sổ Gedit
  3. Tìm Iconđịnh nghĩa:

    Icon=gnome-panel-launcher

Sau đó bạn có thể tìm thấy các biểu tượng ở đâu đó trong /usr/share/icons, tùy thuộc vào chủ đề của bạn.

Đây là tập lệnh python nhanh tìm đường dẫn biểu tượng chính xác cho bạn:

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"

Lưu nó ở đâu đó và chạy python /path/to/script.py.

Nó sẽ trông như thế này:

stefano@lenovo:~$ python test.py 
enter the icon name (case sensitive):
>>> gtk-execute
/usr/share/icons/Humanity/actions/48/gtk-execute.svg

Ngoài ra, bạn chỉ có thể lục lọi trong đó /usr/share/iconscho đến khi bạn tìm thấy biểu tượng bạn đang tìm kiếm.


Dễ dàng hơn nhiều: bạn chỉ có thể sao chép và dán trình khởi chạy và thay đổi tên và lệnh


EDIT 2018

Phiên bản cập nhật của tập lệnh ở trên:

#!/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
Một con đường phổ biến khác để kiểm tra là /usr/share/pixmaps.
htorque

@Stefano: Anh hùng! Cảm ơn bạn rất nhiều cho cả hai câu trả lời của bạn. Công trình rực rỡ. Ít nhất là cách thứ 2 cũng nên đến với tôi.
Timo Schneemann

TracBack (cuộc gọi gần đây nhất vừa qua): Tệp "LookUget.py", dòng 2, trong <module> import gi ImportError: Không có mô-đun nào có tên gi
JulianLai

4

Thêm một chút thông tin.

Các trình khởi chạy bình thường là các tệp .desktop thực sự trong / usr / share / application /.

Ví dụ: /usr/share/appluggest/usb-creator-gtk.desktop

(Xem http://stiterias.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html )

Mỗi tệp máy tính để bàn có một dòng chỉ định biểu tượng, ví dụ:

Icon=usb-creator-gtk

Khi không có đường dẫn (và phần mở rộng tệp) (như trong trường hợp này), điều đó có nghĩa là biểu tượng được tìm thấy (ở đâu đó) trong / usr / share / icon / và biểu tượng được sử dụng trong thời gian chạy phụ thuộc vào chủ đề hiện tại và trong một số trường hợp bối cảnh hiển thị (kích thước).

Biết tên biểu tượng (không có phần mở rộng) từ tệp máy tính để bàn, người ta có thể tìm thấy nó / chúng như sau:

$ 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

Điều này được dựa trên câu trả lời của Stefano Palazzo ở đây .

#!/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")

Lưu ở trên vào một tập tin và chạy nó với python3 /path/to/file.

Sự khác biệt giữa kịch bản gốc của Stefano Palazzo là:

  • Điều này tìm thấy tất cả các độ phân giải của biểu tượng (không chỉ 48)
  • Sử dụng gi.repositorythay vìGtk
  • Sử dụng Python 3 thay vì 2
  • Hơi bị điều chỉnh theo những cách khác
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.