¿Cómo puedo encontrar la ubicación de un ícono de un iniciador en uso?


22

Tengo un iniciador en mi escritorio y quiero agregar otro manualmente con el mismo ícono.

Cuando voy a las preferencias del iniciador existente y hago clic en el icono, no me lleva a la carpeta donde está almacenado el icono, sino solo a mi carpeta de inicio.

¿Cómo puedo averiguar dónde se encuentra el icono usado del iniciador en mi sistema?

Respuestas:


19

La mayoría de las veces, el ícono será elegido de su tema de ícono actual, en lugar de ser referido como una ruta absoluta.

  1. Gedit abierto
  2. Arrastra el lanzador a la ventana de Gedit
  3. Busque la Icondefinición:

    Icon=gnome-panel-launcher

Luego puede encontrar el icono en algún lugar/usr/share/icons , según su tema.

Aquí hay una secuencia de comandos rápida de Python que encuentra la ruta de icono correcta para usted:

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"

Guárdalo en algún lugar y corre python /path/to/script.py.

Se verá así:

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

Alternativamente, puedes hurgar /usr/share/iconshasta encontrar el ícono que estás buscando.


Mucho más fácil: simplemente puede copiar y pegar el iniciador y cambiar el nombre y el comando


EDITAR 2018

Versión actualizada del script anterior:

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

55
Otra ruta común para verificar es /usr/share/pixmaps.
htorque

@Stefano: ¡Héroe! Muchas gracias por sus dos respuestas. Trabajos brillantes Al menos la segunda forma debería haber venido a mi mente también.
Timo Schneemann

Traceback (última llamada más reciente): Archivo "LookUget.py", línea 2, en <module> import gi ImportError: Ningún módulo llamado gi
JulianLai

4

Un poco más de información.

Los lanzadores normales son realmente archivos .desktop en / usr / share / aplicaciones /.

Por ejemplo: /usr/share/applications/usb-creator-gtk.desktop

(Ver https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html )

Cada archivo de escritorio tiene una línea que especifica el icono, por ejemplo:

Icon=usb-creator-gtk

Cuando no hay una ruta (y extensión de archivo) (como en este caso), significa que el ícono se encuentra (en algún lugar) en / usr / share / icons / y el que se usa en tiempo de ejecución depende del tema actual y, en algunos casos, casos el contexto de visualización (tamaño).

Conociendo el nombre del icono (sin extensión) del archivo de escritorio, uno puede encontrarlo de la siguiente manera:

$ 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

Esto se basa en la respuesta de Stefano Palazzo aquí .

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

Guarde lo anterior en un archivo y ejecútelo python3 /path/to/file.

Las diferencias entre el guión original de Stefano Palazzo son las siguientes:

  • Esto encuentra todas las resoluciones del icono (no solo 48)
  • Usos en gi.repositorylugar deGtk
  • Utiliza Python 3 en lugar de 2
  • Ligeramente ajustado de otras maneras
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.