Mal wieder ein Posting zum Auto-Type-Problem in KeePassX

Seit längerer Zeit verwende ich zur Verwaltung von Zugangsdaten und Kennwörtern das Tool KeePassX. Ein tolles Feature ist die Auto-Type-Funktion . Wenn man sich z.B. auf einer Webseite anmelden möchte, so klickt man in das erste Eingabefeld und drückt eine spezielle Tastenkombination (z.B. STRG+ALT+A). Dann füllt KeePassX die Eingabefelder selbst aus. KeePassX muß hierfür im Hintergrund laufen und das Auto-Type-Feature aktiviert sein.
Leider gibt es bei vielen Nutzern Probleme, wenn man ein nicht amerikanisches Tastatur-Layout oder gar mehrere Tastatur-Layouts verwendet, zwischen denen man umschaltet. So kann es vorkommen, daß KeePassX falsche Zeichen in die Eingabefelder eingibt. Das Problem tritt wohl ausschließlich bei Linux-Usern auf.

Nun ist es so, daß KeePassX zur Erzeugung der "künstlichen Tastatureingaben" das Programm xdotool verwendet. Nach diesem Thread zu urteilen, kann es unter bestimmten Umständen sein, daß xdotool nicht in der Lage ist, korrekt das aktuelle Tastatur-Layout zu ermitteln. Häufig reicht es, in den Einstellungen diejenigen Tastatur-Layouts zu löschen, die nicht benötigt werden ( siehe hier ). In dem Thread habe ich aber einen einfacheren Workaround gefunden. Wenn man das Tastatur-Layout mit dem Kommandozeilen-Tool setxkbmap setzt, funktioniert xdotool wieder richtig - und damit auch die Auto-Type-Funktion in KeePassX.

Vor Anwenden des Workarounds produziert xdotool bei mir z.B. folgende Ausgabe:

$ xdotool type xyz
xzy

Jetzt wenden wir den Workaround an (deutsches Tastatur-Layout setzen):

$ setxkbmap de

Und jetz wieder xdotool (nun mit richtiger Ausgabe):

xdotool type xyz
xyz

Damit das Tastatur-Layout auf diese Weise bei jedem Neustart des X-Servers gesetzt wird, habe ich die Zeile "/usr/bin/setxkbmap de" in die Datei ~/.xinitrc eingetragen.