The session (ksmserver) code in the activity manager (KAMD) has lingered since its inception. Everybody ignored it and kept far away like it is an ugly duckling, even its original authoress. It never worked properly, and had quite a dirty implementation.

The code in KAMD was refactored, polished, dusted for many times since then, it even learnt a new language (C++11). But the ugly duckling remained locked in the dark. Even spiders left since there was no free space to left for a new cobweb.

Not anymore!

I’ve just rewritten it and moved all ksmserver/kwin things in a separate class. The new version is pushed into master an hour ago.

I need testers (edit: somehow this title got lost while publishing)

Since I’ve never used the session mechanism and start/stop for activities, I have no clue whether it works as bad^Wgood as it did before. I’ve tested it a bit, but that might not be enough, and it could still have some regressions.

Not Anymore?

Now, we are back to the sad story of the aforementioned duckling.

I haven’t done this because I wanted to work on it, but contrary - because I wanted to move it far from my sight.

This part of KAMD is now officially unmaintained (edit: or “done”). Since it is working, it will not be removed from the codebase, but don’t expect any significant improvements from my side.

If anyone thinks that

  • there are bugs that need fixing
  • there are features missing
  • anything else…

help yourself to the code and start sending patches. I will, naturally, try to help as much as I can.

Edit: More explanation

Somehow, it seems that everybody thinks I want to drop the code.

It is going to stay in KAMD.

It should already have the features it had before. If it doesn’t, report the issue. I intend to fix the regressions. That is why I asked for testers.

So, then, what is the problem?

The whole activity session system had some issues that are not a fault of the code in KAMD, but the session protocol itself which was not designed to be used for this purpose.

Essentially, what I’m saying is that the feature will work as it did before. And will not be developed upon, as it wasn’t since it was created.

In that aspect, nothing has changed.

Chani, while she worked on these things, had a few very nice ideas about session stuff that included a new protocol specification, new session management in ksmserver, etc. etc. It would need changes all over KDE, probably Qt, etc. I don’t have the time to continue her work. See this for inspiration.

So a summary: Everything is as it was before. New features and some existing issues can’t be solved with the current underlying infrastructure. And I don’t have the time to work on the infrastructure.


You can support my work on , or you can get my book Functional Programming in C++ at if you're into that sort of thing.