Plasmaboard

Plasma 4 Widgets

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

9
6.7
Description:

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
Last changelog:

8 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

10 years ago

One think that would be _really_ cool:
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

10 years ago

I have the keyboard operational and its looking good. thinking of trying this on some of our tablet pc's. was wondering if there is a way to remove unnecessary keys such the F keys.

Thanks

Report

C

Jinidog

10 years ago

Yes. Use the conext menu of the icon and switch to "basic mode"

Report

mck182

10 years ago

After successful compiling here is my feedback (Fedora 10-64bit, Qt 4.5, KDE 4.2.2):

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

C

Jinidog

10 years ago

thanks for the feedback. I will answer and/or implement as soon as I have time.

Report

C

Jinidog

10 years ago

So, now my feedback to the feedback ;)

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

10 years ago

3) Indeed the labels only on keys with normal letters should be set to upper case.

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

C

Jinidog

10 years ago

I fear I cannot fix 3) properly. I found no way to find out which keys should be shifted when Capslock is pressend and which not.
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

10 years ago

Hm...I'm not sure which is better. Maybe you could shift only all letters and leave the rest as it is. Or make a set of all non-letter chars, like .,-§/()%#$^}&* and so on, add numbers to this set and then shift everything which is not in that set. That way you would shift every special letters in most layouts.

Would it be possible?

Report

mck182

10 years ago

Well I think that there aren't so much other-than-letter-characters, so you could make that set, because only a small amount of keyboards will have some more characters. For most latin layouts, there won't be any other char then these:

,.-§)=´¨}{*&^%$#@!`;°~?:_"!/(<>|€¶[]'+\-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

C

Jinidog

10 years ago

Possible it is. But probably not better. There are probably special keys in other layouts that I will always miss. So that solution will work only for some keyboards.

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

10 years ago

Just two more notes:

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

10 years ago

Hi, I have all dependencies, but on compiling I get this:

$ 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

C

Jinidog

10 years ago

Well, that's a strange error with Qt. I have no other solution than to comment out lines 83 to 92 in your /usr/include/qt4/QtGui/qcursor.h

Report

mck182

10 years ago

Hi,

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

C

Jinidog

10 years ago

On the other hand, this happens as soon as I include <QAction>. If I don't do that, no error.
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

10 years ago

gentoo, gcc-4.3.2, qt-4.5.0, kde-4.2.1 - exactly the same build error.
just...try to revise ur code

Report

xep

10 years ago

Qt headers must be included before any X headers (see widget.h)...So:

--- 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

C

Jinidog

10 years ago

That would require plasmafying the lock-screen. I cannot do that, but perhaps it can be done as part of the "KDE on MID" project. Perhaps you post the request on KDE-Brainstorm?

Report

alngood

10 years ago

I'm using Debian here! :D
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

C

Jinidog

10 years ago

Well, I found no other solution than my ugly hack. Revising did not help me. So I hoped for some help for others and now I it. I'll release the fixed version as soon as possible.

Thanks!

Report

xep

10 years ago

this is an *ugly* fix and code should be completely revised anyway...

thnx for plasmaboard and keep up ur work

Report

mck182

10 years ago

Yeah, that works, thanks.

Jinidog: Uhmm...if you're using Fedora too, how did you compile it then before releasing? :)

Report

panzi

10 years ago

it always crashes at "delete layout;" in the destructor of PlasmaboardWidget:

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

C

Jinidog

10 years ago

Well, thanks for reporting. You can expect the next version with a fix and new features until monday.

Report

8 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

12345678910
3
product-maker DenisSeidel Jul 18 2011 9 excellent
product-maker dubis Feb 02 2011 9 excellent
product-maker terrorbaby92 Jan 25 2011 9 excellent
product-maker Count: 4 Rating: 5.0
File (click to download) Version Description Downloads Date Filesize DL OCS-Install
Pling
*Needs ocs-url or ocs-store to install things
Details
license
version
1.0
updated Aug 08 2010
added Mar 28 2009
downloads today
0
page views today 11