Taming the Beast

One of the lesser-known features in KDE Applications and Plasma is the Kiosk Framework, a means of restricting the customizability of the workspace in order to keep users in an enterprise or public environment from performing unwanted actions or modifications.

Unfortunately, it hasn’t seen much love lately. However, a couple of weeks ago, we received some feedback about the state of Kiosk in “40 classroom installations” of Plasma on our Enterprise mailing list which David Edmundson and I tackled immediately. Within a couple of days we could already remedy the majority of shortcomings revealed.

While Kiosk already had the ability to prevent users from hiding toolbars in applications, there were a couple of ways this could be circumvented: by accessing menus created by Qt itself – which knows nothing about Kiosk. I managed to correct that and additionally, I also made sure that inaccessible settings linked to by e.g. plasmoids aren’t even offered to the user, avoiding dummy menu entries. The KCMShell QML import gained the ability to report whether a settings module may be accessed.

Most of my effort went into locking down Kickoff, our “Start Menu”. When the Plasma Shell is “system immutable” it becomes effectively read-only. System immutable, as opposed to user immutable (the normal “lock widgets”), is when Kiosk restrictions prevent the user from unlocking widgets. When this is in effect, favorites in Kickoff can neither be added, removed, or re-arranged, nor can applications or the menu itself be edited.

Moreover, KRunner won’t even get started now when the “run_command” action is restricted, making sure it cannot be bypassed by placing a direct DBus call or typing on an empty desktop. Its history also gets disabled now when the “lineedit_text_completion” restriction is active. We’re also currently updating Kiosk documentation and making sure all our applications actually use the keys as mentioned in there.

If you are a sysadmin maintaining a larger Plasma deployment or a manager seeking a free, open, and productive alternative to the omnipresent proprietary desktops, get in touch with us on our Enterprise mailing list and we’d be happy to help you!

Choose a face!

Choose a picture from the avatar gallery
Choose a picture from the avatar gallery

In Plasma 5.7 we’ll be getting an all new login screen design. While I wasn’t much involved in that, I finally came around to port the user avatar gallery. Our awesome Visual Design Group made several user icons a while ago but with the transition to User Manager we unfortunately lost the ability to select them. Now it’s back, and I’d love a “From Webcam” option there as well. :)

KRunner improvements

KRunner listing jump list actions
KRunner listing jump list actions

Plasma 5.6 saw the introduction of jump list actions, enabling you to directly access a specific task within an application. In the upcoming Plasma release KRunner will be aware of them, too. For an even more concise workflow, I added actions to various KDE applications, including Spectacle and KMail. The cool thing is that users of KDE Applications running desktop environments other than Plasma, such as Unity, will also benefit from those shortcuts.

KMail now offers direct access to the Email composer
KMail now offers direct access to the Email composer

Additionally, I fixed the longstanding issue of applications started through KRunner not showing up in the recently used list. Furthermore, the “Run in Terminal” option returned for the shell command runner and finally, more runners had drag and drop support added as well as various high-dpi issues resolved.

Cordless love

Low mouse battery notification, of course it warns sooner than 0% ;)
Low mouse battery notification – of course it warns sooner than at 0% ;)

In my first blog post one and a half years ago I already teased you with PowerDevil notifying about low peripheral devices, such as wireless keyboard and mice. However, I never felt like finishing this feature, up until yesterday when my mouse unexpectedly stopped working: the battery was dead empty. After writing a couple of lines of code I realized I had already created a git branch back then. I rebased it on top of the almost 200 commits that happened since and, to keep it from getting dusty again, put it up for review right away.

6 thoughts on “Taming the Beast”

  1. Thank you for the effort!

    I’ve been using plasma 5 on arch for a year and I can say that it is getting better and better. I tried going back to gnome because of some things that bother me in using plasma and I just couldn’t. It feels like doing stuff one handed (maybe because gnome seems to prefer tablets over desktop, idk).

    Anyway, I do have a few questions though, not sure if they should be addressed here, but I’ll try my luck.

    How many enterprise users do you actually have? I’ve seen a lot of kiosks and I have to say that those that I’ve seen run windows. Why invest time into something with (possibly) low market impact when other things, like desktop, needs more love? Like redesign of productivity back end, indexing, Wayland etc.
    KDE’s target is desktop, right?

    Also, is it a bad thing if you take some design decisions from others so NIH can be avoided? E.g. icon only task manager and identification of active/open applications? Windows did it nice, can you follow (using one line instead of a highlighted square)?

    Is plasma settings going to be redone? Some simplicity / better organization is needed?

    Funding wise, what do you think about bug / feature bounties? Basically users would fund what is important to them and this would show you where to invest other effort.

    There isn’t any db front ends that use qt5 (like toad for oracle, heidi SQL). Can this be proposed to KDE? Some other apps, IMHO, should be killed, while this is really missing.

    Naming ‘Fish’ protocol in dolphin is just bad. Why not use something standard like ssh:// ? You want to do ‘vendor lock in’ after people get used to this so they can’t leave? You know… Because habits die hard…

    Keep up with excellent work!

    1. “Naming ‘Fish’ protocol in dolphin is just bad. Why not use something standard like ssh:// ? You want to do ‘vendor lock in’ after people get used to this so they can’t leave? You know… Because habits die hard…”

      I don’t normally reply to comments on blogs like this, and there is actually a lot in this post I could reply to but this stuck out to me in particular. Dolphin does support just plain old SSH, it’s stfp://.

      1. alright, wasn’t aware of this one.
        maybe i tried it once and it didn’t work, so i crossed it off…

  2. Excellent work friend. There are several things I would like to know if they are already available or will be available in 5.7 Plasma.

    First, globalmenu, it is something really strange and I love Unity and OSX. At least I would know if you can add in Plasma 5.7, but only works with Qt applications.

    Second, I would like to know if only the Task Manager icons have the option to show the number of notifications in all applications. I know it works when a file is copied to Dolphin, or when Google Chrome download, but Thunderbird does not work, at least in antergos and Manjaro.

    Third, it would be great if the KDE panel has improved so that it can be used as a Dock, as Plank, Docky, etc ..

    And finally, is there no way to do that when you have two panels, one horizontal and one vertical, one does not put over the other when you get the focus?

    Thanks for everything and excellent work ..

Leave a Reply

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