A Sunday 22 March 2009 23:57:12, Björn Ruberg escreveu: > Hello plasmafolks, > > this mail is about my idea (and implementation) of an virtual keyboard for > plasma. It is splitted in three sections, so you can skip what you do not > want to read. > > 1. Why I'm interested in a virtual keyboard for plasma and where my ideas > come from > 2. Why having such a virtual keyboard is important for kde > 3. Some technical questions. I need your help > > ------------------- > Part 1: > Some weeks ago I owned a Gigabyte M704. That's an 7-inch touchscreen UMPC > with a VIA C7 1,2 GHz CPU and 768 MiB of RAM. (I do not have it anymore, > gave it back because it was not really useful) I had KDE 4.2 running on it > and it worked suprisingly well. > Most interesting part of the device was its touchscreen. (It makes fun to > move plasmoids with your finger.) > Not really useable was it's keyboard. You can only type with one finger per > hand, it's not comfortable to hold and you have to open up it up first. > Conclusion: Nice to have this keyboard in case you don't have a working X, > but you don't really want to use it for anything else. Exspecially you > cannot use it for daily work. > Moreover if you just want to type in a part of an url, you don't want to > move your finger from the touchscreen for doing that. It's uncomfortable. > > So I wanted a virtual keyboard on my desktop which I can use on the > touchscreen. I wanted it to open up quickly on the screen (one tap for > that!), type my stuff and close it with only one tap, too. > And I wanted to use my touchscreen for ten-finger writing. 7-inch should be > just enough for that. But only if the screen space is used optimally. > > So I searched for a virtual keyboard application, but I didn't find > anything useable for me. None I found could be opened and close with only > one tap. And most put completly unneeded buttons on the screen. Numpads, > Function-keys - I didn't need that stuff. But it took so much space that I > couldn't think of writing with ten fingers. The important alphanumeric > buttons got too small. By the way, most virtual keyboards were ugly. > > That's why I came to the conclusion that there is a virtual keyboard > plasmoid is needed. And I thought that would be a good for my first real > KDE contribution. > > ------------ > Part 2: > > So, why should you care about my story? > I think any other person who tries out KDE on a system with touchscreen > will feel very similar. Until now, touchscreens are quite rare. Not many > people have one. But that is about to change. > There are more and more cheap touchscreen devices already out there. ASUS > has a Atom-device which you can place at the wall and use by touchscreen. > More and more MIDs like the nokia n810 are getting out. And there are the > first so called netvertibles in the stores, more promising ones will come > to the stores in the second quarter of the year. > And perhaps you read that there are ARM-powered devices planned that should > run ubuntu. As they will be very cheap and slim they have a good potential > on the market. > > So I think the number of devices with touchscreen (and maybe even without a > keyboard) will drastically increase in the next months. There are > UserInterfaces for such devices in development, but only for gnome and > Ubunutu-derivats as far as I can see. > > If KDE does not work well with touchscreens, users may be forced to stick > with gnome. Or more worth, even with Windows. > Luckily the missing virtual keyboard is the only critical problem KDE has > with touchscreens, as far as I can tell. Support of certain mousegestures > (i.e. for grabbing) is another one, but that's only a nice to have, no > must. >
+1 KDM i will want to use a touch scren keybord to log on into kdm on such a device.... > -------------- > Part 3: > > So, luckily I'm not only committing ideas, but even code. You can find my > first implentation of a virtual keyboard named plasmaboard in playground. I > think it is even useable. It produces only a german keyboard at the moment, > but it is possible to switch to the basic latin keyboard by changing only > one line of code. > Thanks to notmart for some help in the channel regarding the plasma stuff. > If you want to have look, check out > trunk/playground/base/plasma/applets/plasmaboard/ > > Please share your ideas regarding this applet with me. This is my first > real programm in C++, Qt and plasma of course. So I'm eager to read your > suggestions regarding the code. > > It's an PopupApplet which puts the keyboard in an extender. The keyboard > itself consists of 63 hand positioned Plasma::PushButtons. The keyboard > should be freely resizeable and remember its size. It can be used as an > applet on the desktop and as an extender in front of your videos. These > functionalitys are already given by the Extender classes. > > I have some question though: > > - Where to get the key layouts from? > Of course it's not optimal to have key layouts hard coded in the code. > Although it may even do the job, what other ways are there? > The other problem are the keymaps. What key does produce which symbol? > Currently I hardcoded that too. It may even be a good solution, if I can > get XKeycodeToKeysym() to work. This Xlib function should recognize the > xkb-layout and the pressed key modifiers for me, so I don't have to worry > about it. Does anybody can help me using that function? It's not too well > documented and I cannot find sourcecode. > > - X-Dependency > Currently I use the function XTestFakeKeyEvent to produce key events that > should work with everything you can have on your desktop. This means that > plasmaboard needs X to work correctly. Is there any alternative for faking > key events? > Is X-dependency a problem at all? Windows users do indeed have > alternatives for a virtual keyboard. > > - plasma crashes when typing fast > When typing a lot and call XTestFakeKeyEvent often, plasma crashs with a > "X server busy" message. You can probably easy reproduce that by typing > some sentences with plasmaboard. That's a bug that needs to be solved. Can > a plasma dev debug it? It may be okay to loose a key when typing, but > crashing plasma is bad. > > - How to find out the display? > I currently use KWin::display() to get the acutal display. I need it for > XTestFakeKeyEvent . It works for me but probably it is totally wrong. Where > to get the display from correctly? > > - Plasma::PushButtons > I currently use Plasma::PushButton for my Buttons. I tested svg and > iconwidget, too, but they didn't work for me. I have currently two problems > with it: Fist I need a way to put a button in a pressed state (for example > Control should stay pressed until another key is pressed). I didn't find > one. Can you help? > Second I want a better formed Return-Button. My current overlapping > solution is not beautiful. Any ideas how I can create a button that is not > formed as an rectangle? > > - Problems with Extender > I recently implemented the keyboard as an Extender. Since that I can > resize the keyboard only horizontally any more. Not vertically. When put on > the desktop, the keyboard is not resizeable at all. What do I wrong? > Moreover, when I drag the keyboard on the desktop and click on the icon > in the panel again, I only get a small empty window, but no new keyboard. > How to do it right? > > I noticed the extender to be quite buggy. Moving around my keyboard (but > it happens with the battery extender as well) is likely to crash plasma. I > exspecially have a problem when I try to resize the keyboard to full screen > width. Try it, suddenly around 30 pixels at the left are clipped away. > > > Well, this was a long mail. I appreciate suggestions, tipps, answers and of > course help in coding. Perhaps somebody can tell me what to do for making > plasmaboard ready to get into a plasma-package like plasma-addons? > > Greetings, > > Björn > _______________________________________________ > Plasma-devel mailing list > Plasma-devel@kde.org > https://mail.kde.org/mailman/listinfo/plasma-devel -- Oxygen coordinator _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel