How to change a single icon within a custom icon theme?

My setup:

DE: Plasma 5.24.5 
WM: KWin 
WM Theme: WhiteSur-Sharp-dark 
Theme: WhiteSurDark [Plasma], Mcata-dark-alt [GTK2/3] 
Icons: Mkos-Big-Sur-Transparent-Panel [Plasma], Mkos-Big-Sur-Transparent-Panel [GTK2/3]

This is the original icon:

… and this is the index.theme file that I currently use for my icons:

I assume that the icon from above is displayed in my system tray that makes it look like this (blue on gray is not very visible though):

I replaced the “blue” dot from the icon with the “pink” one in Inkscape and saved it on its original location:
~/.local/share/icons/Mkos-Big-Sur-Transparent-Panel/22x22/apps/telegram-attention-panel.svg

Also:

$ cd ~/.local/share/icons/Mkos-Big-Sur-Transparent-Panel
$ find . -name "*telegram*.svg" -type f
./22x22/apps/telegram-panel.svg
./22x22/apps/telegram-attention-panel.svg
./22x22/apps/telegram-mute-panel.svg
./128x128/apps/telegram.svg
$ rm ~/.cache/icon-cache.kcache

Then I restarted my Manjaro, but the “blue” dot is still there in my system tray, whenever I receive a new Telegram message.

What am I missing - how could I replace this “blue” dot with “pink”?

One possibility

Copy the .desktop file to ~/.local/share/applications and edit to point to your custom icon.

Another

Copy the theme folder as MyCustom-BigSur - and point your configs to use it.

I tried it the exact same way, then I cleared the cached icons with:
rm -f ~/.cache/*.kcache && gtk-update-icon-cache
Unfortunately, it didn’t work. I’ve noticed other users complained about the same issue here:
https://bbs.archlinux.org/viewtopic.php?id=172857

$ cd ~/.local/share/applications
$ grep pink userapp-Telegram\ Desktop-NUNGU0.desktop      
Icon=telegrampink
$ cd ~/.local/share/icons/Mkos-Big-Sur-Transparent-Panel
$ find . -name "*telegram*.svg"
./22x22/apps/telegrampink-panel.svg
./22x22/apps/telegrampink-mute-panel.svg
./22x22/apps/telegram-panel.svg
./22x22/apps/telegrampink-attention-panel.svg
./22x22/apps/telegram-attention-panel.svg
./22x22/apps/telegram-mute-panel.svg
./128x128/apps/telegrampink.svg
./128x128/apps/im-telegram.svg
./128x128/apps/telegram.svg
./128x128/apps/telegram-desktop.svg
./128x128/apps/web-telegram.svg
./128x128/apps/org.telegram.desktop.svg
./128x128/apps/unity-webapps-telegram.svg
./128x128/apps/chrome-https___telegram.org_.svg
./128x128/apps/goa-account-telegram.svg
./128x128/apps/telegrampink-desktop.svg

Surprisingly, that should just flat work, the solution seems straight forward. I modified the index.theme file to reflect the modified name of the copied theme:

[Icon Theme]
Name=My-Mkos-Big-Sur-Transparet-Panel

Then I selected it within Settings > Appearance > Icons, flushed all caches, even restarted Manjaro, but the dot is still blue. :thinking:

My Telegram .desktop files:

$ cat ~/.local/share/applications/userapp-Telegram\ Desktop-NUNGU0.desktop 
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/usr/bin/telegram-desktop -workdir /home/jazz/.local/share/TelegramDesktop/ -- %u
Name=Telegram Desktop
Comment=Custom definition for Telegram Desktop
Icon=telegrampink

$ cat /usr/share/applications/telegramdesktop.desktop 
[Desktop Entry]
Version=1.5
Name=Telegram Desktop
Comment=Official desktop version of Telegram messaging app
TryExec=telegram-desktop
Exec=telegram-desktop -- %u
Icon=telegram
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
Actions=Quit;
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true

[Desktop Action Quit]
Exec=telegram-desktop -quit
Name=Quit Telegram
Icon=application-exit

@Jazz do you still have the original .svg file available?
Edit the .svg with text editor and change from original to your pinkish colour, e.g:

.ColorScheme-Highlight { color:#f54284; }

#f54284 is the color you applied to the dot in inkscape.

2 Likes

You were right, Inkscape re-structured the original .svg file, left the color attribute intact within the class and applied the new inline color instead. When I manually edited the original file as per your comment, it just worked fine. Thank you! :grin: :+1:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.