LINUX.ORG.RU

KDE - Поменять иконку в теме

 


0

1

Есть программа Radiotray-NG v0.2.7. Ее иконка, отображаемая в трее, задана так

$ cat ~/.config/radiotray-ng/radiotray-ng.json 
{
        ...
        "radiotray-ng-off" : "radiotray-ng-off",
        "radiotray-ng-on" : "radiotray-ng-on",
        "split-title" : false,
        "volume-level" : 100
}

Как эту иконку сделать кастомной?

Если

xdg-icon-resource install --novendor --theme breeze --mode user --size 64 ./radio.png raditray-ng-off
xdg-icon-resource install --novendor --theme breeze --mode user --size 64 ./radio.png raditray-ng-on
появляются файлы в ~/.local/share/icons/breeze/64x64/apps/ а отображаемая иконка не меняется.

Если еще перезагрузиться и сделать

rm ~/.cache/icon-cache.kcache && kquitapp5 plasmashell && kstart5 plasmashell
как написано здесь KDE5: обновить или очистить кеш иконок (комментарий) то наблюдаемое поведение не меняется.

cast dsxl

Ubuntu 18.04; KDE 5.44.0 / Plasma 5.12.6; Icon Theme: breeze

★★★

Последнее исправление: damix9 (всего исправлений: 1)

xdg-icon-resource install –novendor –theme breeze –mode user –size 64 ./radio.png raditray-ng-off

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

Во-вторых, у меня было меньше параметров. Сам напихал непойми что – сам и разбирайся.

В-третьих, в моём случае я регистрировал новую икону, а тебе нужно заменить существующую. Даже если xdg позволяет так делать, то лучше делать не так, а создать новую тему.

Создаёшь в ~/.local/share/icons папочку с именем твоей новой темы, в ней файлик index.theme, в нём пишешь Inherits=tvoya-staraya-tema и много ещё чего другого. Лучше всего посмотреть какую-нибудь существущую тему из /usr/share/icons, например, breeze-dark.

Все кастомные иконки добавляются в эту новую тему уже. (Только кастомные, остальные через Inherits подтягиваются из старой темы).

В-четвёртых, это тоже не самый удобный путь. Те иконы, которых раньше не было, теперь есть в бризе «из коробки,» а code OSS я больше не юзаю, так что кастомизировать иконы мне больше не нужно. Ну, а конкретно в моём юзкейсе из того треда – можно проге дать иконку указав полный путь до файла (вместо имени из темы). Тогда не будет возможности задать разные иконы под разные размеры, но зато на сколько проще!

Похоже, в твоём случае это тоже работает. https://github.com/ebruck/radiotray-ng/blob/master/README.md

radiotray-ng-on: installed theme icon name for «on» or path to image

dsxl
()
Последнее исправление: dsxl (всего исправлений: 1)

Не все и не всегда берут иконки из темы иконок. Например, флаги раскладки клавиатуры. В разных DE могут быть в теме иконок или в каком-то своем каталоге. Поищи, может эта программа держит свои иконки в своем каталоге. В этом случае, иконку заменяешь симлинком на любую нужную тебе картинку. Здесь скриншот на еще один пример.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от dsxl

можно проге дать иконку указав полный путь до файла (вместо имени из темы).

Да, это работает.

Но изначальная проблема была, что родная иконка программы выглядела в трее шакально. А теперь оказалось, что любая кастомная картинка в любом размере и даже svg в трее KDE выглядит шакально.

Выбрал из темы иконку

        "radiotray-ng-notification" : "media-playback-start-symbolic",
        "radiotray-ng-off" : "media-playback-stop-symbolic",
        "radiotray-ng-on" : "media-playback-start-symbolic",
        "split-title" : true,
        "volume-level" : 100

damix9 ★★★
() автор топика
Ответ на: комментарий от damix9

Что ты называешь шакальным?

даже svg

Если свг детализированный, а ты хочешь показать икону в маленьком квадратике, то бездушный алгоритм уменьшения всё замылит. Бери иконы, сделанные специально под нужный размер.

dsxl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.