Once upon a time,
for those who remember the old days of Plasma and Lancelot,
there was an experimental applet called Shelf.
The idea behind the Shelf was that sometimes it is useful to have a small applet
that just shows your recent files,
favourite applications,
devices,
which you can place on your panel or desktop for quick access.
Now,
this post is not about a revival of Lancelot and Shelf (sadly),
but it is closely related to them.
Namely,
I always disliked the “recent documents” section
that is available in almost all launchers in Plasma.
The reason is that only one in ten of those documents
has a chance to ever be opened again.
The first code that had the aim to fix this
landed in Lancelot a long time ago
–
Lancelot was tracking how you use it so that it could eventually
start predicting your behaviour.
This idea was recognized as a good one,
and we decided that Plasma as a whole could benefit from this.
This is how the activities manager (KAMD) was born.
The aim was to allow the user to separate the workspace
based on the project she was working on;
and to have the activity manager track
which applications, documents etc. the user uses in each of the activities.
The first part – having different widget sets for different activities was baked in Plasma 4 from the start.
The second one (which I consider to be much more important) came much later in the form of KAMD.
KAMD, apart from being tasked to manage activities and switch from one to another,
also tracks which files you access,
which applications you use
so that the menus like Kicker and Kickoff
can show recent documents and recent applications.
And have those recent documents and applications tied to the activity you are currently in.
For example,
if you have two activities –
one for KDE development,
and another for working on your photo collection,
Digikam will be shown in the recent applications section of Kicker only for the second activity,
since you haven’t used Digikam for KDE development.
Now,
this is still only showing the “recent documents”.
It does show a list of documents and applications
that are relevant to the task you are currently working on,
but still, it can be improved.
Since we know how often you open a document or start an application,
we do not need to focus only on the last time you did so.
We can detect which applications and documents you use often
and show them instead.
Both Kicker and Kickoff allow you to replace the “recently used” with “often used” in the current version of Plasma.
Documents shelf
Now back to the topic of this post.
While working on the KAMD service,
I often need to perform tests whether it
keeps enough data for it to be able to deduce which are the important applications and documents,
and whether the deduction logic performs well.
Most of these tests are small GUI applications
that show me the data in a convenient way.
For one of these,
I realized it is not only useful for testing and debugging,
but that it might be useful for the day-to-day work.
In the screenshot above,
you can see an applet,
that looks quite similar to Shelf from Plasma 4 days
which shows the files I use most often in the dummy “test” activity.
One thing that Shelf did not have,
and neither Kicker nor Kickoff have it now
is that this applet allows you to pin
the documents that are really important to you
so that they never disappear from the list
because the service thinks some other file is more important.
You can think of it as a combination of “often used” and “favourite” documents.
It shows your favourite documents – the documents you pinned,
and then adds the items that it considers worthy enough
to be alongside them.
This applet is not going to be released with the next Plasma,
it needs to evolve a bit more before that happens.
But all the backend stuff it uses is released and available now
if you want to use it in your project.
The keywords are kde:kactivities, kde:kactivities-stats and kde:kactivitymanagerd.