Use os ícones do usuário em um script bash

3

Eu estou procurando uma maneira de usar os ícones do tema dos usuários (no gnome) em um script bash.

A solução pode ser uma variável de ambiente ou um arquivo em que o caminho para o conjunto de ícones dos usuários é gravado.

de uso:

notify-send --icon=$MYICONPATH/status/32/info.svg "info"
    
por danjjl 13.08.2011 / 10:28

2 respostas

2

Supondo que você esteja usando o ambiente GNOME, você pode obter o nome do tema do ícone com gconftool-2 (versões do Ubuntu < 11.04) ou gsettings (Ubuntu > = 11.04). Dependendo do seu caso de uso, isso já pode ser suficiente:

gconf:

ICON_THEME=$(gconftool-2 -g /desktop/gnome/interface/icon_theme)
MYICONPATH=/usr/share/icons/$ICON_THEME

gsettings:

ICON_THEME=$(gsettings get org.gnome.desktop.interface icon-theme)
MYICONPATH=/usr/share/icons/${ICON_THEME:1:-1}
    
por Marcel Stimberg 13.08.2011 / 12:50
1

Eu não sei como fazer isso diretamente de um script bash, mas acabei de escrever um pequeno script Python que você pode usar como um utilitário para ajudá-lo:

#!/usr/bin/env python
# pyicon.py

import gtk, sys

theme = gtk.icon_theme_get_default()
icon =  theme.lookup_icon(sys.argv[1], int(sys.argv[2]), ())

if icon: print icon.get_filename()

Salvar como pyicon.py em algum lugar e (opcionalmente) chmod +x it.

Então você pode chamar, colocando o nome do ícone e o tamanho, e ele responderá com um caminho. Exemplo:

$ ./pyicon.py evolution 32
/usr/share/icons/Humanity/apps/48/evolution.svg

Se você preferir manter tudo em um só lugar (certamente compreensível para scripts únicos), você pode inserir o python da seguinte forma:

python -c 'import gtk, sys; theme = gtk.icon_theme_get_default(); icon = theme.lookup_icon(sys.argv[1], int(sys.argv[2]), ()); print icon.get_filename() if icon else ""' evolution 32
    
por Oli 13.08.2011 / 12:36