Menu

Tree [bbef83] master /
 History

HTTPS access


File Date Author Commit
 bin 2010-11-29 M. Dietrich M. Dietrich [25843f] add start script for standalone usage
 pyneo 2010-12-05 M. Dietrich M. Dietrich [bae93d] add logger
 resources 2010-11-29 M. Dietrich M. Dietrich [a42e25] beautify bar
 .gitignore 2010-11-29 M. Dietrich M. Dietrich [93f8d4] ignore pyc/pyo to ignore
 AUTHORS 2010-10-25 M. Dietrich M. Dietrich [121544] initial idea
 COPYING 2010-11-19 M. Dietrich M. Dietrich [21f76f] more doc, more setup
 LICENSE 2010-10-25 M. Dietrich M. Dietrich [121544] initial idea
 Makefile 2010-11-20 M. Dietrich M. Dietrich [2b9710] correct install path
 README 2010-11-19 M. Dietrich M. Dietrich [727c6b] more doc, use prefix for datafiles
 TODO 2010-12-11 M. Dietrich M. Dietrich [bbef83] add TODOs
 fakekey.pyx 2010-11-15 M. Dietrich M. Dietrich [7f360a] adjust doc
 setup.py 2010-11-29 M. Dietrich M. Dietrich [5c3740] add startscript to setup

Read Me

PYNEO ZAD OSK
=============

a configurable on-screen keyboard.

pyneo-zad-osk is a simple but highly configurable on-screen keyboard. it uses
fakekey (libfakekey0) to fire the keyboard events. it's written in python and
is usable as stand-alone program or as module imported in a python app. it's
output is currently based on efl (python-ecore & python-evas).

pyneo on screen keyboard for zad
--------------------------------

main intention was to have a simple on-screen-keyboard for a
touch-screen-device usable with the two thumbs when you are holding your device
with both hands. the buttons are aranged organic around the buttom corners of
the display with the on/off switch in the center. this way all buttons are
easier to reach.

out of this came the requirement for a extremly simple configuration which is
now implemented in form of a json file with entries per key/button. because the
implementation is using libfakekey to produce the key-strokes some of the
abilities of libfakekey (like the way shift, control and alt is handled) are
visible in the config file.

main requirement was to have all keys avaiable like Ctrl, Escape and so on that
are missing on most other osk implementations. this allows immideate full usage
of a limited device. a terminal can be fully used including vi, screen or other
important terminal programs.

the next idea that was implemented is a "chat-friendly" way to be able to hide
the keyboard on keypress. default is to hide the keyboard if enter is pressed
so any covered parts of the screen can be seen after a line has entered. this
behaviour can be made window-dependend (future implementation).

another future feature will be the implementation of generation of
scroll-wheel-mouse events to allow sofa-potato-like relaxed surfing. next major
relaese will hopeful be capable of this feature.

the original keyboard for zad was developed for the freerunner and had the
typical 12 buttons (*, #, 0-9) that a mobile has nowadays. letters were
produced by dragging away from the button, the distance changed the letter that
was generated. this feature could be added to pyneo-zad-osk too.

currently pyneo-zad-osk depends on efl (pure ecore and evas) but this could be removed
if wanted by handling the windows by x11-calls directly. the buttons are shaped
windows which results in some flickering on show/hide of the keyboard. for slow
devices shaping can be switched off.

using pyneo-zad-osk
-------------------

you can either start the script itself or import it as a module and instanciate
it in your app if that is an python application based on efl.

first parameter is the description file, when running it is working autark and
send keyboard events on x11 level.

hacking pyneo-zad-osk
---------------------

runtime depends:

	libfakekey0
	python-ecore
	python-evas

build depends:

	libfakekey-dev

the configuration of pyneo-zad-osk is a simpel json file. see organic.json for
an sample and develop own keyboard layouts yourself.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.