Используйте значки пользователя в сценарии удара

Я ищу способ использовать значки от пользовательской темы (в гноме) в сценарии удара.

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

Например, использования:

notify-send --icon=$MYICONPATH/status/32/info.svg "info"
3
задан 13 August 2011 в 15:08

2 ответа

Принятие Вас использует среду GNOME, можно получить название знаковой темы с gconftool-2 (Версии Ubuntu <11.04) или gsettings (Ubuntu> = 11.04). В зависимости от Вашего варианта использования, который мог бы уже быть достаточно:

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}
2
ответ дан 1 December 2019 в 16:46

Я не знаю, как сделать это непосредственно из сценария удара, но я только что записал немного сценария Python, который можно использовать в качестве утилиты для помощи Вам:

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

Сохраните это как pyicon.py где-нибудь и (дополнительно) chmod +x это.

Затем можно назвать его, отказываясь от имени значка и размера, и это ответит путем. Пример:

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

Если Вы сохранили бы все в одном месте (конечно, понятный для одноразовых сценариев), можно встроить Python как так:

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
1
ответ дан 1 December 2019 в 16:46

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

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