The week in Palapeli: Research on fullscreen interfaces
February 23, 2009
The cashew (that cute thingy at the upper right of your Plasma desktop, that expands to a toolbox when clicked) is one of the most controversely discussed KDE 4 features (together with the folder view, but that’s another story). While people still argue about its usefulness for a desktop, it is definitely a great concept for fullscreen applications: In its inactive mode, cashews do by far not take up as much space as a usual menubar/toolbar-based interface, and the screen edges (the natural habitat of cashews) are one of the places a mouse cursor can most easily reach (fur further reading, look for “Fitt’s law”).
Because Palapeli uses the same graphics framework as Plasma, I thought at first that I could reuse the Plasma cashew code in kdelibs. Unfortunately, the corresponding classes are not exported: From what I understand from its code, I would have to make Palapeli’s puzzle table into a Plasma containment. And even then, I would only get one cashew which I cannot easily modify. This is much too unflexible for me, so I decided to start an own implementation. In the test bed, the 563 lines of code already look very promising: (Icons and buttons are placeholders, of course.)
Disclaimer for Palapeli users (or those who are eager to become such): Despite of the components being relatively complete, do not expect to see that in Palapeli too soon. Introducing a separate fullscreen interface will require to change some parts of Palapeli’s internal layout, and I do not change internal layouts without thinking about this first. (This thinking phase usually takes two or three weeks.)
Why am I talking about that topic? Fullscreen interfaces is something we should be aware of. An obvious application is in locked-down terminals for special purposes, but I mostly think of mobile internet devices (MID). Yet KDE does not seem to provide any standard widgets or guidelines for fullscreen interfaces (apart from the “Toggle fullscreen” action). What is the reason? Can fullscreen interfaces not be standardized, is there no need to standardize anything, or did we just not think of it yet?
P.S. As there will definitely be someone who asks, I will now answer the question what the window title in my screenshot means. “oswtest” is just an abbreviation for “On-screen widget test bed”.