xmacroplay - ein Ersatz für Khotkeys

Alle großen Desktop-Umgebungen besitzen eine Funktion, um über selbstdefinierte Tastenkombinationen Befehle abzusetzen bzw. Programme zu starten. Eine große Ausnahme bildete Khotkeys. Bildete, weil es wohl mittlerweile nicht mehr in den offiziellen KDE-Anwendungen enthalten ist. Khotkeys ist auch in der Lage Mausgesten und Tastatureingaben an bestimmte Fenster zu senden. Besonders das Senden von Tastatureingaben war für mich jahrelang ein unverzichtbares Feature und eine große Erleichterung bei der täglichen Arbeit - sozusagen eine Autotext-Funktion, wie man sie aus Office-Programmen kennt, aber systemweit. Seit dem KDE auf die Version 4 gesprungen ist, entspricht es leider nicht mehr dem. was ich von einer Desktop-Umgebung erwarte. Zu groß, zu schwerfällig, zuviel Schnickschnack, den ich in der täglichen Arbeit nicht brauche. Das alles hatte ich schon vor Jahren unter einem System aus Redmond und muß mich gelegentlich gezwungenermaßen auch heute noch damit rumschlagen. Aber unter Linux gibt es ja genug Alternativen (gnome, XFCE, LXDE und und und). Allen gemeinsam ist aber, daß sie die Funktionalität von Khotkeys nicht integriert haben. Aber Linux wäre ja nicht Linux, wenn sich das nicht auf irgendeine Art und Weise lösen ließe.

xmacroplay

Die Lösung heißt xmacroplay aus dem Paket xmacro. xmacroplay sendet die emfangenen Tastaturbefehle und Mausgesten an den definierten X-Server. Die einzelnen Tastaturbefehle und Mausgesten werden dabei aus einer Datei gelesen. Diese Datei kann entweder von Hand angelegt werden oder man zeichnet mit dem Tool xmacrorec2 einfach die Tastatureingaben und Mausgesten auf.

xmacrorec2 > mein_makro

Für kleine Autotext-Funktionen sind die Makro-Dateien aber schnell von Hand erstellt, da die benötigten Schlüsselwörter sich in Grenzen halten.

Mehr braucht es eigentlich nicht, um solch ein Makro für Tastatureingaben zu bauen, wäre da nicht eine Einschränkung des Schlüsselwortes String. Dies arbeitet nämlich nur auf der Basis des Latin1-Zeichensatzes, d.h. deutsche Umlaute werden nicht dargestellt. Wir müsssen uns also noch die KeyStr...-Definitionen für die deutschen Umlaute einprägen:

In Verbindung mit Shift_L ergeben sich daraus dann die Großbuchstaben.

Ein einfaches Makro für den zweizeiligen Text:

Viele Grüße
Tuxator

Würde also so aussehen:

String Viele Gr
KeyStrPress udiaeresis
KeyStrRelease udiaeresis
KeyStrPress ssharp
KeyStrRelease ssharp
String e
KeyStrPress Return
KeyStrRelease Return
String Tuxator
KeyStrPress Return

Der Befehl zum Aufruf des Makros lautet dann:

xmacroplay -d 10 ":0.0" < mein_makro

Der Parameter -d sorgt dafür, daß xmacroplay 10 ms wartet, bevor es die Tastaturbefehle an den X-Server :0.0 schickt. Jetzt muß nur noch mit den Hotkey-Funktionen der jeweiligen Desktop-Umgebung ein Shortcut für den Befehl vergeben werden und schon ist die Funktionalität von Khotkeys nicht mehr nur an KDE gebunden. Natürlich lassen sich auch Makros für Mausaktionen definieren. Wer mehr darüber wissen möchte, schaue sich die Readme-Dateien und Beispiele unter /usr/share/doc/xmakro an. Auch an mittels xmakrorec2 aufgezeichneten Makros läßt sich viel lernen.