noqqe » blog | sammelsurium | photos | projects | about

Zuerstmal sei gesagt, dass ich sowieso schon sehr begeistert bin wie viele von den Spezialtasten auf dem Thinkpad schon Out-of-the-Box unter Debian funktionieren. Trotzdem gab es noch ein paar die das nicht Taten oder zumindest nicht mit der Software funktioniert hatte bei der ich es brauche.

Keyboard Signale mit xev abfangen

Erstmal gehts darum rauszufinden was für lustige Tasten ich eigentlich gerade drücke. Hier gibts verschiedene Spielereien mit dem Tool xev und sed:

$ xev | sed -n 's/^.*keycode *\([0-9]\+\).*$/keycode \1 /p'
keycode 36
keycode 8
keycode 160
keycode 160

XKeysymDB und benutzerdefiniertes Mapping

Nachdem man weiss, was für KeyCodes man gerade drückt kann man damit auch weiter arbeiten. Diese KeyCodes müssen nun Keysyms zugeordnet werden. Der X11 bringt hier automatisch eine kleine Übersicht mit die es sich lohnt mal anzusehen:

less /usr/share/X11/XKeysymDB

Obacht: Man kann keine neuen Keysyms definieren. Man muss Keysyms aus dem DB File benutzen um diese dann auf den Keycode zu mappen. Dieses Mapping findet folgendem File statt:

$ vim ~/.Xmodmap
keycode 160 = hpModelock1

Anschliessend kann man die Xmodmap neu laden:

xmodmap ~/.Xmodmap

xfce Keymapping

Der eigentlich spannende Teil ist, die Shortcuts jetzt mit xfce zu verknüpfen, damit man bei Betätigung einen Befehl seiner Wahl ausführen kann. In xfce gibt es eine kleine gui im Settings Manager (xfce4-settings-manager) mit der man soetwas einrichten kann. Zumindest theoretisch. Leider können hier nur Tastenkombinationen(!) hinterlegt werden. Keine Keysyms.

Aber das macht nichts. Wie so ziemlich alles gibts ein xml File in dem die Werte stehen:

vim .config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
<property name="custom" type="empty">
  <property name="&lt;Alt&gt;F2" type="string" value="xfrun4"/>
  <property name="&lt;Control&gt;&lt;Alt&gt;Delete" type="string" value="xflock4"/>
  <property name="XF86Display" type="string" value="xrandr --auto"/>
  <property name="override" type="bool" value="true"/>
  <property name="hpModelock1" type="string" value="/usr/bin/i3lock"/>
</property>

Der letzte Eintrag wurde von mir per Hand eingetragen und funktioniert. Mit fn+F2 kann ich jetzt (wie auf meinem Keyboard belabelt) meinen Bildschirm sperren.

http://en.gentoo-wiki.com/wiki/Multimedia_Keys

http://wiki.ubuntuusers.de/Xmodmap

http://wiki.xfce.org/faq#keyboard

Comments (5)

Silvio Knizek on 2012-04-20T19:54:39
Aber aber… sollten nicht inzwischen alle wissen, dass es schlecht ist, die .xml-Dateien von Xfce direkt an zufassen? Besser ist an dieser Stelle xfconf-query: »xfconf-query -c xfce4-keyboard-shortcuts -p /commands/custom/hpModelock1 -n -t string -s "/usr/bin/i3lock"« Wer es unbedingt graphisch braucht, kann auch xfce4-settings-editor verwenden killermoehre Xfce Supporter IRC

noqqe on 2012-04-21T09:13:06
 Echt? Ne, war mir nicht wirklich klar. Wo kann man sich dazu denn schlaulesen, was passiert wenn ich an XML Files direkt hinfasse?

Silvio Knizek on 2012-04-21T16:51:50
Im besten Fall passiert nichts. Im schlimmsten Fall werden die XML-Dateien korrumpiert. Es ist einfach nicht empfehlenswert. Xfconf funktioniert über dbus-calls, die bei einer direkten Bearbeitung nicht ausgelöst werden, womit die Applikationen nicht mit bekommen, das etwas verändert wurde. killermoehre irc://irc.freenode.net/#xfce-de

noqqe on 2012-04-22T08:51:53
 Alles klar. Angekommen und registriert :) Danke!

Silvio Knizek on 2012-04-23T19:01:11
Xfce bringt übrigens seinen eigenes Screen-Lock-Frontend namens xflock4 mit. Einfach mal ausprobieren.