
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
This is the first virtual keyboard for plasma. I made it for everyone who is using a touchscreen or plans to use one.
This is now part of the kdeplasma-addons package for KDE 4.4.
PLEASE PROVIDE ME WITH FEEDBACK!
There are some requirements for compiling. Check out the following from the readme.
PLEASE REPORT BUGS IN THE COMMENTS
REQUIREMENTS:
- You need a working GNU Compiler toolchain.
- Cmake
- KDE Headers files (kde development packages)
- Xlib Header files (X develpment packages)
- XTest Extension Header files (X develpment packages)
- QT Header files (QT development packages)
HOW TO INSTALL
In the main directory run
- cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
- make
- make install/strip (as root or: sudo make install/strip )
KNOWN ISSUES
KNOWN ISSUES
- Plasmaboard does only (!) work when you place it in the panel. You can place it on the desktop but clicking on its buttons will do nothing
- When pressing "Alt Gr" the symbols on the keyboard do not adapt. This is an issue with the underlying X-Function, which seems
only to do mapping for the shift key correctly. No known solution yet. Despite of that AltGr works as expected
- When changing the xkb-modmap, plasmaboard does not adapt automatically. You need to force the relabeling of the keys. Press "Shift" for example
- Backspace key does not work in eclipse. Don't know why. If you find other applications in which plasmaboard doesn't work as expected, please report
10 years ago
1.0:
This is the version of plasmaboard shipped with KDE 4.5.0 plus a bugfix. I provide it here for everyone still using KDE 4.4.
Advantages over the 4.4 version are quite big. Read here:
http://btux1984.wordpress.com/2010/04/28/kdes-onscreen-keyboard/
0.91:
- Fixed building bug
0.9:
- WARNING: This is not compatible with KDE 4.2 anymore!
- Will be part of KDE 4.4. kdeplasma-addons
- Improved labeling of keys and its performance
- Added transparency to key notifications
- Added tooltip for the keyboard
- Enhanced scaling behaviour inside of a plasma panel
0.8:
- There is now a text label on the keyboard for switching between the basic and the extended layout. I think it is necessary that you can switch between them without using the context menu. However - if you have a bette idea how to provide this switching functionality please let me know.
0.7:
- Font size on buttons is now scaled with the size of the keyboard
- That means the key label will always fit onto the keys (minus some bad translations)
- the popup showing the last pressed key is working far better now
0.6:
- Much code cleanup
- Fixed bug concerning the switch between layouts
- Shows the last pressed key in a tooltip
Added the patch for kdelibs, that need to be applied for getting plasmaboard working on KDE 4.2.3/4.2.4 . Perhaps some package mantainers can add it to their packages?
0.51:
- Fix for plasmaboard loosing focus when opened. This needs a patch for KDE which is NOT in the vanilla 4.2.4 packages. Hope to get some package maintainers patching their distro packages. It does work on coming KDE 4.3 releases, RC1 for example.
- Added missing gpl stuff for packaging
- nothing else, sorry, no time
0.5:
- Clicking on keys like Control, Alt or Meta deactivates them now
- Closing the keyboard clears all pressed function keys
- Extended mode now provides a keyboard
0.4.2:
Bugfix. Arrows on keys should be visible with every correct plasma theme now.
0.4.1
Just a small build-fix. If 0.4 it built for you, you don't need it.
0.4 still has a problem with unreadable labels on some keys. That's a problem with some plasma-themes I still have to investigate. In glassified and aya it works.
0.4:
Enter, Tab, Shift, Caps, Backspace and ArrowKeys now have arrows painted on instead of a text label
0.3:
Plasmaboard does now have all keys you might need. You can switch to the old basic layout via the conextmenu.
0.2:
Many changes in the code. But you will notice the following enhancements:
- keyboard is now fully scalable in all directions
- symbols are repeated if you keep the key pressed
- Changed WIN-label to META
- Most "known issues" are gone
0.1.1: Bugfix. Function keys work now.
(Enter, Backspace and so on didn't work in 0.1. Uh, that's painful). Changed labeling of Control and Enter-Key
0.1: Initial version
10 years ago
1.0:
This is the version of plasmaboard shipped with KDE 4.5.0 plus a bugfix. I provide it here for everyone still using KDE 4.4.
Advantages over the 4.4 version are quite big. Read here:
http://btux1984.wordpress.com/2010/04/28/kdes-onscreen-keyboard/
0.91:
- Fixed building bug
0.9:
- WARNING: This is not compatible with KDE 4.2 anymore!
- Will be part of KDE 4.4. kdeplasma-addons
- Improved labeling of keys and its performance
- Added transparency to key notifications
- Added tooltip for the keyboard
- Enhanced scaling behaviour inside of a plasma panel
0.8:
- There is now a text label on the keyboard for switching between the basic and the extended layout. I think it is necessary that you can switch between them without using the context menu. However - if you have a bette idea how to provide this switching functionality please let me know.
0.7:
- Font size on buttons is now scaled with the size of the keyboard
- That means the key label will always fit onto the keys (minus some bad translations)
- the popup showing the last pressed key is working far better now
0.6:
- Much code cleanup
- Fixed bug concerning the switch between layouts
- Shows the last pressed key in a tooltip
Added the patch for kdelibs, that need to be applied for getting plasmaboard working on KDE 4.2.3/4.2.4 . Perhaps some package mantainers can add it to their packages?
0.51:
- Fix for plasmaboard loosing focus when opened. This needs a patch for KDE which is NOT in the vanilla 4.2.4 packages. Hope to get some package maintainers patching their distro packages. It does work on coming KDE 4.3 releases, RC1 for example.
- Added missing gpl stuff for packaging
- nothing else, sorry, no time
0.5:
- Clicking on keys like Control, Alt or Meta deactivates them now
- Closing the keyboard clears all pressed function keys
- Extended mode now provides a keyboard
0.4.2:
Bugfix. Arrows on keys should be visible with every correct plasma theme now.
0.4.1
Just a small build-fix. If 0.4 it built for you, you don't need it.
0.4 still has a problem with unreadable labels on some keys. That's a problem with some plasma-themes I still have to investigate. In glassified and aya it works.
0.4:
Enter, Tab, Shift, Caps, Backspace and ArrowKeys now have arrows painted on instead of a text label
0.3:
Plasmaboard does now have all keys you might need. You can switch to the old basic layout via the conextmenu.
0.2:
Many changes in the code. But you will notice the following enhancements:
- keyboard is now fully scalable in all directions
- symbols are repeated if you keep the key pressed
- Changed WIN-label to META
- Most "known issues" are gone
0.1.1: Bugfix. Function keys work now.
(Enter, Backspace and so on didn't work in 0.1. Uh, that's painful). Changed labeling of Control and Enter-Key
0.1: Initial version
Ekardnam
11 years ago
make it possible to use custom keyboard layouts (.keyboard.xml). For example, KTouch comes with a keyboard editor.
Screenshot:
http://edu.kde.org/ktouch/kde4/ktouch2.png
More information:
http://edu.kde.org/ktouch/kde4/keyboards-layouts.php
Report
reicjm26
11 years ago
Thanks
Report
Jinidog
11 years ago
Report
mck182
11 years ago
1) I don't have labels on these keys - Tab, Caps Lock, Both Shifts, Backspace, Enter and arrow keys
2) You should visually divide the F keys row. Add little space between F4-F5 and F8-F9, like on normal keyboard.
3) Caps Lock makes wrong labels, you're probably using the same function as for shift, which is wrong, cause normally with CL you're inputting the same characters, but just in upper case, but the shift key actually does change the layout. So after pressing CL, it displays labels like the shift is pressed, but the real input are just upper case letters.
4) Also funny thing with CL happens when it's pressed in plasmoid, then the plasmoid is hidden, the CL stays active (so input from keyboard is in upper case), you turn the CL off on keyboard, restore the plasmoid, the CL is back on although the LED is not on, but the input (either keyboard or from plasmoid) is in upper case, then you press CL on keyboard again and your LED to indicate caps lock is inverted (caps lock is off, the led is on:) It needs little more synchronization there.
5) You should be able to switch back off the modifying keys when clicked again on them, meaning when I press CTRL, it stays on, but when I don't want to use it, I should be able to deactivate it by clicking again on that CTRL key. Same with rest modkeys...
6) You could add optional numpad part, because for example czech layout has numbers accessible only after shift is pressed and that is very uncomfortable when writing many or long numbers. Something like Num Lock ;)
7) Sometimes the keys are something like half-pressed, for example shift key, when clicking on it, it takes focus, but not changing the visible layout, although the input is changed by shift modifier, but because it hasn't been pressed completely or what, it does not "unpress" and stays active until pressed down properly. Weird :)
Other than that, it's pretty cool and works fine, even using touchscreen or stylus (good half of this was written by stylus and plasmaboard;), thanks for that and keep up the work, can't wait for 1.0 version :P
Report
Jinidog
11 years ago
Report
Jinidog
11 years ago
1) is fixed in 0.4.2
2) Will be done when I update the extended keyboard layout
3) Indeed the labels only on keys with normal letters should be set to upper case. Will have to look for a good solution
4) I think it should be doable to clear all pressed keys when the keyboard is closed
5) Will try to fix
6) I will adress that together with point 2. Couldn't think that the numpad could be useful on a touchscreen until now. I'll put it in the extended layout.
7) That's probably the hardest bug. Two reasons. First: I cannot reproduce it.
Second: Even if I could it's probably a problem with Qt-Eventmanagment and that is hard to fix for me.
Report
mck182
11 years ago
That's not correct, because for example in Czech layout, the numbers row above letters has also characters in default, which should be set to upper case. Therefore you should set to uppercase every key that contains letter, or more accordingly, everything that does not contain letter (keys where are numbers, non-letter characters, brackets and so...)
7) That's probably the hardest bug. Two reasons. First: I cannot reproduce it.
Second: Even if I could it's probably a problem with Qt-Eventmanagment and that is hard to fix for me.
Hm, that happens only when using stylus or touch, so maybe some X or Wacom driver bug, I'll try some more testing and I'll report back.
Other answers: Thanks :)
Report
Jinidog
11 years ago
Because of all the different layouts I need the information from the X-Server. But as I said, there seems to be no way.
I can leave the behaviour as it is or I do not shift anything when caps is pressed.
What's better?
Report
mck182
11 years ago
Would it be possible?
Report
mck182
11 years ago
,.-§)=´¨}{*&^%$#@!`;°~?:_"!/(<>|€¶[]'+\-1234567890
...and maybe I missed something. But most layouts will definitely have their non-letter keys from that set as there aren't much more (if any) other non-letter characters, so every other key, that does not contain char from that set is most probably letter, either normal or some national specific. And if it isn't, the toUpperCase() function (if you're using something like that) should return the same non-letter char.
But maybe I'm missing something...
Report
Jinidog
11 years ago
If that is acceptable it would be probably better to uppercase just the letter-keys of the english layout. That would work for some layouts at least.
Report
mck182
11 years ago
1) I'm using my own composed plasma theme, it's a mix of oxygen, elegance, naked, sabre tiger and makos
2) You could adjust the cmake line to:
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
that way it gets installed properly for every user on every distro ;)
Report
alngood
11 years ago
$ make
[ 0%] Built target plasma_applet_plasmaboard_automoc
[ 16%] Building CXX object CMakeFiles/plasma_applet_plasmaboard.dir/plasma_applet_plasmaboard_automoc.o
In file included from /usr/include/qt4/QtGui/qwidget.h:55,
from /usr/include/qt4/QtGui/qaction.h:47,
from /usr/include/qt4/QtGui/QAction:1,
from /home/allan/Download/plasmoids/plasmaboard/PanelIcon.h:27,
from /home/allan/Download/plasmoids/plasmaboard/moc_PanelIcon.cpp:10,
from /home/allan/Download/plasmoids/plasmaboard/plasma_applet_plasmaboard_automoc.cpp:5:
/usr/include/qt4/QtGui/qcursor.h:87: error: expected unqualified-id before numeric constant
/usr/include/qt4/QtGui/qcursor.h:87: error: expected `)' before numeric constant
/usr/include/qt4/QtGui/qcursor.h:95: error: expected unqualified-id before numeric constant
/usr/include/qt4/QtGui/qcursor.h:96: error: expected identifier before numeric constant
/usr/include/qt4/QtGui/qcursor.h:96: error: expected ‘,’ or ‘...’ before numeric constant
make[2]: ** [CMakeFiles/plasma_applet_plasmaboard.dir/plasma_applet_plasmaboard_automoc.o] Erro 1
make[1]: ** [CMakeFiles/plasma_applet_plasmaboard.dir/all] Erro 2
make: ** [all] Erro 2
Any help is appreciated.
(gcc / cpp => 4.3.3)
(KDE 4.2)
Regards.
Report
Jinidog
11 years ago
Report
mck182
11 years ago
I have exactly the same error as alngood above me, Fedora 10 x86_64, Qt 4.5 and definitely working gcc+kde toolchain...oh yeah and KDE 4.2.2
I've also asked Qt devs on irc and they say it's definitely not Qt bug and that you should revise your code...some bad includes somewhere or something...
Report
Jinidog
11 years ago
Moreove it seems only to happen on Fedora. I use Fedora, too. But others obviously were able to compile the stuff without this error.
Report
xep
11 years ago
just...try to revise ur code
Report
xep
11 years ago
--- PanelIcon.h~ 2009-04-14 15:01:08.000000000 +0400
+++ PanelIcon.h 2009-04-14 14:56:41.000000000 +0400
@@ -24,7 +24,6 @@
#include <Plasma/PopupApplet>
#include <Plasma/Extender>
#include <Plasma/ExtenderItem>
-#include <QAction>
#include "widget.h"
--- PanelIcon.cpp~ 2009-04-14 15:01:15.000000000 +0400
+++ PanelIcon.cpp 2009-04-14 14:56:36.000000000 +0400
@@ -17,6 +17,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
***************************************************************************/
+#include <QAction>
#include "PanelIcon.h"
Report
Jinidog
11 years ago
Report
alngood
11 years ago
With this "hack" i can compile now! And works!!!
One question, it's possible to use this applet to unlock the screensaver? (Currently i can't)
This will be great... I have a tablet PC, and when my screen locks, I need to open the cover and type the password...
Great Work! Many thanks!!!!
Report
Jinidog
11 years ago
Thanks!
Report
xep
11 years ago
thnx for plasmaboard and keep up ur work
Report
mck182
11 years ago
Jinidog: Uhmm...if you're using Fedora too, how did you compile it then before releasing? :)
Report
panzi
11 years ago
Application: Plasma Widget Viewer (plasmoidviewer), signal SIGSEGV
0x00007f1d1f2c1f50 in __nanosleep_nocancel () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f1d22355850 (LWP 12471))]
Thread 1 (Thread 0x7f1d22355850 (LWP 12471)):
[KCrash Handler]
#5 0x00007f1d00795255 in ~PlasmaboardWidget (this=0xa58430) at /home/panzi/software/plasmaboard/widget.cpp:65
#6 0x00007f1d20495b67 in QGraphicsItem::~QGraphicsItem () from /usr/lib64/libQtGui.so.4
#7 0x00007f1d204d6d9a in QGraphicsWidget::~QGraphicsWidget () from /usr/lib64/libQtGui.so.4
#8 0x00007f1d219490af in Plasma::Applet::~Applet () from /usr/lib64/libplasma.so.3
#9 0x00007f1d0079629b in ~PanelIcon (this=0xa01050) at /home/panzi/software/plasmaboard/PanelIcon.cpp:61
#10 0x00007f1d21952f3e in Plasma::Containment::~Containment () from /usr/lib64/libplasma.so.3
#11 0x00007f1d2195d7fe in Plasma::Corona::~Corona () from /usr/lib64/libplasma.so.3
#12 0x00000000004071ac in _start ()
Report
Jinidog
11 years ago
Report