libtaskmanager rewrite available

Eike Hein hein at kde.org
Fri Apr 8 14:04:43 UTC 2016


My ongoing work on the libtaskmanager rewrite and applet adaptation is 
now at:

kde:clones/plasma-workspace/hein/libtmng (library)
kde:clones/plasma-desktop/hein/libtmng (applet)

Master branch for both, libtaskmanagerng/ and 
applets/{taskmanagerng,icontasksng} respectively.

Both the library and the applets currently install separately to ease 
testing/comparisons, so you can just "make install" the subfolders, then 
pick one of the applets marked "(NG backend)".

What to expect:
* It works acceptably on X11 (it's my daily driver), unless you can't 
live without grouping or manual sorting (both are on the way, see below).
* I took the opportunity to reassess and improve some of the behaviors 
as I was rewriting, e.g. better mapping of startup notifications and 
windows to apps allows for improved sorting, meaning for example startup 
notifications will now appear where the window will replace them when 
using alphabetic sorting (the default) for a less busy panel.
* Some things are faster, e.g. because the new model-oriented API 
simplifies data provision and caching (no/less work done unless data 
roles are fetched). Other things still need to be profiled and optimized 
more.
* Wayland displays obvious feature gaps, but it's definite improvement 
over the old stack and makes the Wayland session more dogfoodable already.
* It probably eats children. And kittens. And your candy stash.

The work ahead:
* I'll be filing many small reviews against kwayland in the upcoming 
weeks to fill in required-yet-missing API (e.g. missing actions). I will 
also need to add radio button support in PlasmaComponents.MenuItem for 
the context menu rewrite. Expect talk/brainstorming in our Monday 
hangouts, also around the WindowMetaData lib plans.
* Manual sort mode and grouping will of course return - the data and 
extension points for them exist in the current code, and I have most of 
it outlined.
* Write many more tests and fix all the bugs they will _definitely_ turn up.

There's a more complete list in 
plasma-workspace/libtaskmanagerng/TODO.txt, and areas of the code that 
are known to need more work are generally marked with FIXMEs.

Note in terms of priorities, while Wayland is the ultimate goal, X11 is 
the prerequisite. The new lib improves over the old one by achieving 
greater separation of concerns and composability, making it possible to 
add Wayland support while sharing common logic between the windowing 
systems. The remaining Wayland bits are reasonably easy to add, while 
the old lib wasn't at all suited to it. However, first it needs to be 
merged, and it needs to be regression-free for 5.7. That requires 
feature parity and proven quality (i.e. tests) on X.

Feel free to give it a look and comment at this point. My aim is to get 
a bit more serious about polling for reviews and eventually a merge 
after more progress on some of the outstanding todos.


Cheers,
Eike


More information about the Plasma-devel mailing list