Status Tray Items - wrong tray icons order / bad ordering / hardcoded progs / broken icons
Description
Hello. Recently im trying arrange tray icons in xfce panel, im expecting like in normal systems trays you can freely move your icon and make proper order for yourself. (actually its not and you need go to systray settings and make static arrange by hands)
But new Status Tray plugin coming with break all user expectations, in other words - you can't now arrange items in proper way. Now you have 2 different suborder, named "Status Notifiers" and "Systray Icons".
And that where agony starts, icons in "Status Notifiers" have different priority so you cant change sequence from "Systray Icons". Ppl may ask, what the heck? Why there two separate groups of tray icons? - and they gonna be right here. That are irrational.
Examples
Here some example screenshots before and after update, clearly shows problem
Just for continue let's see how its looks in old 4.14 panel with old xfce4-power-manager
Then here updated to latest in Arch-linux repository:
And finnaly a bonus, when you clear icon cache "Clear Known Items" in Satus Tray Items properties:
Looks broken? YES!
Im starting lurking what exacly going on and found this:
Some of the developers decided that dividing the tray into legacy is good idea. BUT ITS NOT.
now we have broken tray, im start looking deeper and found this hardcoded items:
file: sn-dialog.c
/* known applications to improve the icon and name */
static const gchar *known_applications[][3] =
{
/* application name, icon-name, understandable name */
{ "blueman", "blueman", "Blueman Applet" },
{ "nm-applet", "network-workgroup", "Network Manager Applet" },
{ "Skype1", "skypeforlinux", "Skype" },
{ "chrome_status_icon_1", "google-chrome", "Google Chrome" },
{ "Telegram Desktop", "telegram", "Telegram Desktop" },
{ "redshift", "redshift", "Redshift" },
{ "vlc", "vlc", "VLC Player" },
{ "zoom", "Zoom", "Zoom" },
};
static const gchar *known_legacy_applications[][3] =
{
/* application name, icon-name, understandable name */
{ "audacious2", "audacious", "Audacious" },
{ "drop-down terminal", "utilities-terminal", "Xfce Dropdown Terminal" },
{ "networkmanager applet", "network-workgroup", "Network Manager Applet" },
{ "parole", "parole", "Parole Media Player" },
{ "task manager", "org.xfce.taskmanager", "Xfce Taskmanager" },
{ "thunar", "Thunar", "Thunar Progress Dialog" },
{ "wicd-client.py", "wicd-gtk", "Wicd" },
{ "workrave tray icon", NULL, "Workrave Applet" },
{ "workrave", NULL, "Workrave" },
{ "xfce terminal", "utilities-terminal", "Xfce Terminal" },
{ "xfce4-power-manager", "xfpm-ac-adapter", "Xfce Power Manager" },
{ "redshift-gtk", "redshift", "Redshift" },
{ "skypeforlinux", "skypeforlinux", "Skype" },
{ "blueman-applet", "blueman", "Blueman Applet" },
{ "system-config-printer", "printer", "Printing Service" },
{ "network", "network-workgroup", "Network Manager Applet" },
};
Guys what the hecking heck going here? Why this list even exist? Why you place your xfce4-power-manager in legacy
Why we need strings something like this
{ "system-config-printer", "printer", "Printing Service" },
User already know what system-config-printer do, why you describe 3 times that are printer?
Why you use { "Telegram Desktop", "telegram", "Telegram Desktop" },
hardcoded telegram name, but if you download tarball from official site (telegram.org) you may see there a binary named "Telegram" !not "telegram-desktop" not even "telegram".
or
Why you use { "Skype1", "skypeforlinux", "Skype" },
wtf "Skype1" why not Skype0 or Skype9000? Are you ok?
Why do you even decide that are good idea at all make this list inside source code. Tray plugin should know better name of app or make it description? No way. Please stop doing this trash with users tray. REmove this list and make one system tray with properly ordering. Like in old 4.14.
Why users should edit xdg ( /etc/xdg/autostart/nm-applet.desktop for an example) to change to indicator (Exec=nm-applet --indicator) mode for properly working items ordering in general icon list. WTF
Description of list (from source code) is:
/* known applications to improve the icon and name */
to improve the icon and name
Stop improving air and ruining step by step good old xfce desktop. Im tired fix each update something like this.
Your tray plugin is broken.
There still no solution to fix power-manager icon (he now always docked to the left cause not in general list and I cant move it to the right side), i suspect he in hardcoded list and thats why.
Summary
With this new "features". You broke multiple things:
- Tray items arranging\ordering\etc.
- Broken hardcode items
- Legacy and new trays are divided and cannot interact
- Possible broken icon cache (uknown ? items)
- Broken new (possible symbolic) icons size. - look at my screenshots before.