Requirement for on screen keyboard:
- Focus: the on screen keyboard should not be focused, and the faked key should be sent to the focused window.
- Window placement: the on screen keyboard window should not be covered by other windows (for example to be the top-most window), and it should not cover other windows completely (semi-transparent or docked at the desktop side, but it seems docking is not supported well in my metacity 2.24.0).
- Compatible with XIM. I am Chinese, I need use XIM to input Chinese.
- Configurable layout (to keep only the needed keys).
- Show/Hide can be controlled easily (via a panel button is preferable).
- Support screen rotation. On screen keyboard should not outside the screen or bigger than screen after rotation.
- xvkbd: does not handle focus perfectly, the xvkbd itself seem be focused too (titlebar highlighted), so need two click for one key; need to specify which widget faked keys go, not very conveniently.
- matchbox-keyboard: good support for rotation, configurable laout, XIM, focus. Docking support for matchbox-wm is good. Original version does not support docking for metacity. I have a hack to support docking for metacity, but the hack doesn't support metacity 2.24.0. Show/Hide control can be done with daemon mode (-d) + matchbox-keyboard-toggler utility.
- gok (gnome on screen keyboard): recommended by many guys, but not good for me. Appears not works with XIM, and not works well without pointer in/out event.
- onboard: not used too much, I think it is good and simple.
- cellwriter: hand writing recoganizing program, but it is a good and simple on screen keyboard too. To use it as on screen keyboard add "--keyboard-only" to command line. Do no support configurable layout. Seems not support docking good.