wsdfhjxc created this revision.
wsdfhjxc added a reviewer: Plasma: Workspaces.
wsdfhjxc added a project: Plasma: Workspaces.
Restricted Application edited projects, added Plasma; removed Plasma:
Restricted Application added a subscriber: plasma-devel.
wsdfhjxc requested review of this revision.
I've switched to Plasma quite recently and I'm really liking it, but the one
thing that irritates me a little bit is the system tray not remembering its
item positions. This results in a random icon placement, mostly for
applications other than embedded plasmoids (e.g. KMail, Dropbox, Redshift and
other StatusNotifier items), at every boot. I guess this behavior doesn't seem
to be an issue for most users, as there is not much community pressure on this
one, but only a couple of topics I've found on Reddit and maybe another single
one on KDE Community Forums. Still, the system tray feels more comfortable to
use if it can be consistent all the time and if its items can be placed the way
one wants to, as it may have influence on workflow and desktop's visual
aesthetics. Furthermore, even Microsoft Windows allows system tray item order
Having said that, I've done some research and managed to get the system tray
positioning and configuration changed in a few places, so it remembers item
positions and lets the user manually arrange the order of non-hidden items. In
short, a new config list-type property is introduced to store all items with
shown or auto visibility state and in user defined order. Items that are no
longer loaded (and which are inactive at a time) are also remembered, so they
can be positioned properly when they are loaded eventually. The elements tab in
system tray settings contains positioning buttons for each non-hidden item in
the list. The item list is refreshed every time a new plasmoid or
StatusNotifier is registered or unregistered (well, maybe not every time, there
is still some inconsistency). The overall result of the above changes is
visible in the video attached below.
F5749559: Ordered system tray.mp4 <https://phabricator.kde.org/F5749559>
Now, I obviously do realize that this patch in its form is unacceptable to
get into upstream, as its all hackish workaround to an existing system tray
codebase. Honestly, my intention here is not really to contribute code of
dubious quality, but to indicate the issue and provide some ideas and a working
example to resolve it. I hope you will investigate this further at some point
of Plasma development and maybe someone with appropriate knowledge and skills
will consider implementing such a mechanism in a proper way, so the users could
benefit from it.
Thanks in advance!
(BTW, both Kubuntu 17.10 with backports and KDE Neon Developer Edition seem
to suffer from plasmashell crash after closing the system tray configuration
window with elements tab beign open and clicking on any plasmoid in system tray
afterwards. This is probably caused by bug 383828)
R120 Plasma Workspace
To: wsdfhjxc, #plasma_workspaces
Cc: plasma-devel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts,
sebas, apol, mart