Overhauling the Job Tracker

It has already been more than a year since I’ve posted an update on notifications, so it’s definitely time to give you a bit of an update on what’s been going on. This time let me show you all the nifty changes that I put into our job tracker, even though at a glance it might just look the same.

Plasma job progress popup from "Dolphin", reads "Copying: 1234 of 1337 files to Build Machine / Awesome Project"
Destination label is now friendlier and a handy hyperlink

Little tweaks such as labels in the details section only growing but never shrinking for the duration of a job, so that while copying folder structures with significantly varying path lengths, the popup no longer constantly changes its size.

Furthermore, the job description text considers bookmarks from your Places panel in Dolphin to provide a cleaner path, similar to how it’s done in the address bar. For example, copying a file to a remote server, instead of showing the full “Copying to sftp://user@example.com/home/user/some/location” path, might be prettified to “Copying to Example Server/some/location”. In addition, the destination text has been turned into a hyperlink for easy access to this place while a file is still in-flight.

I’ve gone through most KDE applications and services to refine overall job reporting: Sending files from your phone to the computer via KDE Connect or through Bluetooth now reports remaining time and offers to open the file(s) once finished. User experience when extracting files in Ark has similarly been improved.

Plasma notification popup from "KDE Connect", title "Receiving file (Finished)". Emphasis on the fact that there is now a "Open with Gwenview" button whereas previously it would just say "Open"
Opening files received from your phone has never been more convenient

Additionally, once a job completes successfully, the “Open” button indicates which application will be launched, even for remote files, thanks to a new MimeTypeFinderJob in KIO. However, it no longer offers to open files you’ve just trashed as that doesn’t make a lot of sense. There’s also a handy “proxy icon” in the finished notification that you can drag anywhere to e.g. an email composer or chat window, just like you already could with screenshots for many years. Moreover, its context menu gained a “Move to Trash” action in case you accidentally downloaded a file or took a screenshot you didn’t like, as well as the same “Copy Location” item found in Dolphin’s menu.

Finally, under the hood there is now a new KUIServerV2JobTracker using an entirely new DBus API to communicate with the desktop shell. It addresses many issues with the old implementation and has actually been added in Plasma 5.16 but remained unused until now. The new API batches multiple updates into a single call and is easily extensible for new functionality in the future. It is also fully asynchronous, reducing the likelihood of applications stalling when starting a job if Plasma is busy. It also reduces DBus traffic by not requesting a view for short-lived jobs – they aren’t shown to the user anyway but were still sent to Plasma just to then be discarded. More importantly, though, an application can now request immediate progress reporting, so that downloading a small file which didn’t take long nevertheless offers to open it afterwards.

Plasma job progress popup from "Firefox", title "Downloading", message "This type of file can harm your computer. If you want to keep it, accept this download from the browser window."
We no longer leave you wondering why that download won’t progress

The new API also fixes an oversight where the “infoMessage” signal actually overwrote the “title” property. Title is obviously the job title, such as “Copying”, whereas info message is actually for status reporting, like “Connecting to server…”. The latter is now used as notification text and Plasma Browser Integration will use it to indicate that a potentially dangerous download has been halted, asking the user to accept it from the browser window, since for security of course you cannot just programmatically issue acknowledgement.

4 thoughts on “Overhauling the Job Tracker”

  1. Kool new features! When are we going to enjoy the new API? With Plasma 5.22 or Frameworks 5.81? :-)

    1. Pretty much all of it, except the new job tracker API, is Plasma 5.22 material. A few features, like the proxy icon, are already released and I just mention them for completeness.

  2. If the checkbox below “By using this form you agree with the storage and handling of your data by this website. *” is not checked, and the comment is pushed, it will lead to a internal server error (500).

Leave a Reply

Your email address will not be published. Required fields are marked *