Как получить доступ к набору значков текущей системной темы?

Я пишу скрипт bash, который использует notify-send (из пакета notify-osd) для отображения всплывающих уведомлений пользователю, например. если есть ошибка во время выполнения. Эти всплывающие окна могут быть украшены иконками, например:

notify-send -i $icon $headline $message

Чтобы сделать мой сценарий как можно более компактным, я хочу использовать значки по умолчанию, которые поставляются с системой. До сих пор я прибегал к жестко закодированным именам файлов, например:

icon = "/usr/share/icons/Mint-Y/status/48/dialog-error.png"

Очевидно, это довольно плохое решение, поскольку значок зависит от темы, которая может быть не установлена ​​в данной системе (в приведенном выше примере это тема «Mint Y»). Я ищу способ сообщить моему сценарию: «Запросите у системы значок ошибки в текущей установленной теме значков и используйте его».

Вопрос: как мне это сделать?

Это что-то специфичное для конкретного оконного менеджера, который вы используете.

Barmar 13.07.2019 23:23

Извините, но не могли бы вы быть немного более конкретным? Что именно специфичен для используемого оконного менеджера? Запросить текущую тему? Запрос общего значка? Где я могу прочитать об этом?

ParaDice 13.07.2019 23:29

Я имею в виду среды рабочего стола, такие как Gnome, KDE и т. д. en.wikipedia.org/wiki/Desktop_environment

Barmar 13.07.2019 23:35

Значит, нет способа сделать это «кросс-DE»? Хорошо... скажем, я хочу сделать это в Gnome (и DE на основе Gnome, таких как Cinnamon)... как мне это сделать?

ParaDice 14.07.2019 00:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
273
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не указывайте ничего похожего на путь. Вы должны указать общий фрагмент имени файла и позволить системе найти для вас наилучшее значение.

Итак, если в имени файла есть размер или тип файла или что-то еще, отбросьте его и не указывайте начальный путь.

Используйте что-то вроде 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 под капотом.

Спасибо, это помогло мне. Теперь я использую уведомление-отправить -я ошибка | настройки | информация ... Работает как шарм! :)

ParaDice 14.07.2019 08:47

Перечислены ли эти общие имена где-нибудь, чтобы мне не приходилось случайным образом подбирать правильное ключевое слово для каждого нового уведомления?

ParaDice 14.07.2019 08:55

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