apt-get -b source

Nun nutze ich debian schon ca. 5 Jahre und wurde gestern doch wieder einmal völlig neu beeindruckt.

Mein Problem war einfach: Ich wollte ein Programm schreiben das global alle Keyboard Events behandelt. So etwas ist praktisch für Shortcuts oder so selbstverständlichen Dingen wie Push to Talk im Voice Chat Programmen.

Da X das von Haus aus nicht vorsieht, da dies durchaus ein nachvollziehbares Sicherheitsrisiko darstellt, wenn man hierbei z.B. an Keylogger denkt.

Dennoch gibt es Abhilfe in Form von XEvIE http://freedesktop.org/wiki/Software/XEvIE. Das klingt nun genau nach dem was ich gesucht habe. Doch nachdem die Extension im X-Server installiert war ging das Beispielprogramm immer noch nicht, was nicht zuletzt daran liegt dass das Projekt leider verwaist ist.

Glücklicherweise habe ich von rE in #linux-clan @ quakenet einen Tipp bekommen. http://bugs.freedesktop.org/show_bug.cgi?id=17394 ein paar kleinen Codeänderungen sollten der Schlüssel zum funktionierenden XEvIE sein. Es trennte mich nur noch das Kompilieren eines eigenen X-Servers vom Glück. Ohje …

Aber. Alles halb so schlimm, debian verfügt über eine klasse Sourceverwaltung die es mit wenigen Befehlen ermöglicht die vorhandenen debian Pakete selber zu bauen und beliebige Änderungen vorzunehmen. Weitere Infos dazu gibt es hier http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html. Das Installieren ist so einfach wie es nur geht, einfach das selbst gebaute Paket mit dpkg -i ausführen und das original wird ersetzt.

$ ./xevidemo
Delay is 0 milliseconds
major = 1, minor = 0
XevieStart(dpy) finished
(   0) KeyRelease
(   1) KeyPress
        State: 0 KeyCode: 26
        Char Count: 1 KeySym: 61 char: |a|
(   2) KeyRelease
(   3) KeyPress
        State: 0 KeyCode: 28
        Char Count: 1 KeySym: 64 char: |d|

Edit 2008-09-29:
Herrlich, heute kam das xserver-xorg-core update mit dem XEvIE fix integriert. Nun gut, immerhin haben wir was gelernt!

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: