Re: How to arbitrarily manipulate key events in X

2010-03-30 Thread meingbg
> A manipulation possibility as you describe it would be even better.
> From what I understand, the X Event Interception Extension once has been
> a way, but according to the Xorg Wiki, it is dead.

Is there any way to do what XEvIE did? Some have suggested XInput2
could replace it. How mature is this method?

//meingbg
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg


How to arbitrarily manipulate key events in X

2010-03-22 Thread meingbg
The intention/problem is as follows:
I've written a small app that among other things allows me to let any
key act as both a modifier key and a character key at the same time.
(see http://github.com/meingbg/keyboa )
Now, I'd like to plug it into X.
(see 
http://www.linuxquestions.org/questions/general-10/affordable-non-staggered-keyboard-793510/page6.html#post3899308
)

Basically, I want a way to run a program that (as portably as possible) can
1) receive all key events (keysym press/release) from the keyboard
that are about to be sent to X and intercept these so that X will not
receive them.
2) send key events to X in a manner that makes it impossible for
applications to distinguish these events from real keyboard events
(and without re-intercepting the key events sent).

I suspect people writing accessibility extensions would face a similar problem.

One possible solution to #2 (that requires the XTest extension) is to:
1) add the keysym to the keymap if it is not already there
2) convert the keysym into the corresponding keycode and shift state
for the current keymap
3) use XTestFakeKeyEvent to send it to the server

I do not have any solution to #1. I've thought about reading
/dev/console and somehow use the current keyboard driver to convert
the scancodes to keycodes, and from there go through the keymap to get
keysyms. However, reading /dev/console prevents switching to terminal
mode (ctrl-alt-1) and may require root privileges.

Any suggestions on how to solve #1 or improve #2? Any help is appreciated.

//meingbg
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg