Я пишу скрипт bash, который использует notify-send (из пакета notify-osd) для отображения всплывающих уведомлений пользователю, например. если есть ошибка во время выполнения. Эти всплывающие окна могут быть украшены иконками, например:
notify-send -i $icon $headline $message
Чтобы сделать мой сценарий как можно более компактным, я хочу использовать значки по умолчанию, которые поставляются с системой. До сих пор я прибегал к жестко закодированным именам файлов, например:
icon = "/usr/share/icons/Mint-Y/status/48/dialog-error.png"
Очевидно, это довольно плохое решение, поскольку значок зависит от темы, которая может быть не установлена в данной системе (в приведенном выше примере это тема «Mint Y»). Я ищу способ сообщить моему сценарию: «Запросите у системы значок ошибки в текущей установленной теме значков и используйте его».
Вопрос: как мне это сделать?
Извините, но не могли бы вы быть немного более конкретным? Что именно специфичен для используемого оконного менеджера? Запросить текущую тему? Запрос общего значка? Где я могу прочитать об этом?
Я имею в виду среды рабочего стола, такие как Gnome, KDE и т. д. en.wikipedia.org/wiki/Desktop_environment
Значит, нет способа сделать это «кросс-DE»? Хорошо... скажем, я хочу сделать это в Gnome (и DE на основе Gnome, таких как Cinnamon)... как мне это сделать?





Не указывайте ничего похожего на путь. Вы должны указать общий фрагмент имени файла и позволить системе найти для вас наилучшее значение.
Итак, если в имени файла есть размер или тип файла или что-то еще, отбросьте его и не указывайте начальный путь.
Используйте что-то вроде notify-send -i info test или notify-send -i error test...
Или notify-send -i printer-error test, который найдет что-то вроде /usr/share/icons/Adwaita/256x256/status/printer-error.png под капотом.
Спасибо, это помогло мне. Теперь я использую уведомление-отправить -я ошибка | настройки | информация ... Работает как шарм! :)
Перечислены ли эти общие имена где-нибудь, чтобы мне не приходилось случайным образом подбирать правильное ключевое слово для каждого нового уведомления?
Это что-то специфичное для конкретного оконного менеджера, который вы используете.