Making Something Unpleasant More Pleasant

Happy Holidays, everyone!

I’m sure we’ve all had this unpleasant experience where you’ve been immersed into a task up until, boom, you were greeted by this dialog:

Dolphin crashed unexpectedly :(
Dolphin crashed unexpectedly :(

I’m just using Dolphin for demonstration purposes, I’m not saying that Dolphin is crashy – Dolphin is awesome!

Most of the time, I’m more bugged by the fact I now have to click away an error message, than the actual crash. For instance, on Windows you get a “Searching for a solution” progress dialog that usually leads to a “We couldn’t find a solution” dialog. By the time it finished searching I could have restarted the application already and continued working. Interestingly enough, Windows “Modern Apps” guidlines say you should just drop the user to the home screen to avoid slowing him down in the process of recovery.

DrKonqi with an unobstrusive desktop notification
DrKonqi with an unobstrusive desktop notification

Instead of stealing focus bringing up DrKonqi, we’ll now bring up an unobstrusive desktop notification that allows you to quickly restart the app or report a bug. In addition to that, a sad face shows up in System Tray, allowing you to file a bug later, if you just want to get going again quickly. The Tray icon disappears after one minute; if you hadn’t bothered to look at it by then you most likely forgot what you did to make it crash in the first place. What we now must do is invest time into making our apps resume properly: our crash framework “KCrash” allows an application to run an emergency shutdown function which the application should use to save its state and restore it when it’s restarted.

A different category are desktop services like Plasmashell and KRunner. They restart automatically and you often wouldn’t notice they crashed if DrKonqi hadn’t told you so.

Plasma places a sad face in your System Tray
Plasma sneakily places a sad face in your System Tray

Of course you will now say we should fix our shit instead of covering up mistakes and people won’t bother filing bug reports now. That is not true. First of all, we fix bugs. David Edmundson, for instance, does an amazing job of keeping up with them. Triaging bugs is not fun. Finally, Plasma unfortunately suffers from issues often in toolkits, drivers and other lower levels we can’t control. It’s a pity that even in 2015 you can’t rely on 3D acceleration on Linux. Regarding people not filing bugs: if you only clicked away DrKonqi anyway, we just did you a favor.

It’s Spectacular!

In other news, KDE Applications 15.12 ships with a new powerful screenshot utility, courtesy of Boudhayan Gupta, called Spectacle. It makes capturing screenshots a breeze with new global shortcuts, such as Meta+Print for capturing the active window and saving it to a file in one go. Why I mention this in my blog? Spectacle is the first KDE Application to support Jump List Actions I announced last time.

Notifications now print the saved path in a prettier fashion and provide an “Open” button
Notifications now print the saved path in a prettier fashion and provide an “Open” button
Spectacle provides handy shortcuts to capture different types of screenshots
Spectacle provides handy shortcuts to capture different types of screenshots

I mostly use the “Rectangular Region” capture mode, so there’ll be a Meta+Shift+Print shortcut in the next release that invokes this mode – I always underestimate what a pile of work taking screenshots for blog posts is; this will make my life easier.

KRunner Actions

One hardly known feature are additional actions in KRunner. They provide secondary actions for a given search result. This feature will most likely return in Plasma 5.6, I only found a handful of runners that actually implement them, however: the “Kill Application” Runner, a Telepathy Runner, and a couple of third party ones, like a media controller. This is most likely also the reason they weren’t ported to Plasma 5 yet.

Telepathy Runner providing additional shortcuts
Telepathy Runner providing additional shortcuts

In retrospect, I implemented substantially more than I had anticipated that I would come up with for Plasma 5.6. Exciting times! See all of you in 2016. :-)

16 thoughts on “Making Something Unpleasant More Pleasant”

  1. > The Tray icon disappears after one minute; if you hadn’t bothered to look at it by then you most likely forgot what you did to make it crash in the first place

    YES! This is good UX. It would be great if more of the interactions I have with KDE were designed to not annoy me like this (my number one source of frustration in life: KMail telling me that it cannot check one of my IMAP account for some reason. I don’t care, I can’t do anything about it, it will solve itself soon (GMail IMAP is very flaky), and yet, every time, I get a popup dialog that I have to click on!

  2. > The Tray icon disappears after one minute; if you hadn’t bothered to look at it by then you most likely forgot what you did to make it crash in the first place

    First of all: I thank you for your effort to improve plasma. I also like to move Dr. Konqi out of the way (don’t bother the majority of users with things they don’t want to deal with). However, I am wondering if this change will lead to situations, where we are unable to react to bugs. E.g. if the user is running a longer task, something like encoding a video in kdenlive, he might not want to stay 4 hours in front of the PC just to catch the bug, that causes the application to crash randomly. What about keeping the crash information for longer or make the duration to stay somehow configurable? I am for example a user that would like to report as many bugs as possible and therefore would like to keep this message around until I decide what to do.

    1. Good point! Notifications, for example, aren’t cleared when the user is idle, so you don’t miss any of them. I suppose we could do the same to the crash icon. We have a high-quality Framework (KIdleTime) we can use.

      1. Didn’t know of that idle feature of the notifications, cool! This is a solutions that fits my use perfectly.

        1. Thanks again for your suggestion! I updated the patch accordingly. It will now stop the 1 minute timer when the session becomes idle and restart it once the session is active again.

  3. I like to read about new features and improvements. Thanks for blogging and improving Plasma!
    The downside is, that I am already looking forward to Plasma 5.6 despite the fact I am already behind. I just recently updated to Applications 15.12 and will move to Plasma 5.5 soon.

  4. In the middle of the day I don’t want to distract myself with filing a bug report which often may include several steps requiring I break my focus. But I want to always report a bug and help it get fixed by providing any feedback I can.

    Fedora’s ABRT shows you a notification when a crash is caught. All of these bugs are stored, viewed, and reported at a user’s pleasure. What do you think about a KCM that stores all bugs and lets user decide when to file a bug.

    ABRT –

    1. That’s interesting! DrKonqi already supports saving bug reports to disk, so automating this could be done I suppose.

  5. Does the new thing still support attaching gdb to the crashed program? The old dialog had a “Debug” and a “Debug in gdb” option.

    1. Yes, clicking “Report Bug” actually opens regular DrKonqi with all its options.

    2. I was wondering the same. Maybe the report bug button should be renamed to something which clearly states that the dialog contains reporting and debbuging options.

  6. Looks nice – but *please* stop this “App” craze. It’s an “Application” or whatever was used before all this started :|
    I don’t know how common “App” is in the untranslated strings of current or older KDE releases (and can’t check right now), but just having had to use a German installation of MS Windows 10 for a while, I think it’s really ridiculous to have “App” replacing former occurences of “Anwendung”/”Programm”/… all over the place just because it’s a current fad. Please don’t do that to KDE :(

Leave a Reply

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