Re: Umlaute-Mysterium
Hallo,
Felix Hagemann schrieb am Mittwoch, den 27.08.2014 um 21:27:
...
> Ein
> ~$ dpkg-reconfigure locales
> und einen Reboot später funktionieren die Umlaute!
>
> Ich verstehe zwar nicht was die Locale mit der Erkennung von
> Tastatureingaben in bestimmten Programmen zu tun hat, bin aber erstmal
> sehr froh wieder ein funktionierendes System zu haben.
Wenn auf der Tastatur eine Taste (z.B. ein Umlaut wie 'ä') gedrückt
wird, dann schickt der X11-Server ein Ereignis (engl. event) an die
jeweiligen Programme. Wie solche Ereignisse aussehen, kann u.a.
mit dem Dienstprogramm 'xev' sichtbar gemacht werden.
Bei einem 'ä' sieht das z.B. so aus:
KeyPress event, serial 40, synthetic NO, window 0x4200001,
root 0xa1, subw 0x0, time 1015622111, (79,73), root:(2003,1095),
state 0x10, keycode 48 (keysym 0xe4, adiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 a4) "ä"
XmbLookupString gives 2 bytes: (c3 a4) "ä"
XFilterEvent returns: False
Wenn die Environment Variablen LANG=C LANGUAGE=C gesetzt (locale nicht
auf Deutsch konfiguriert) sind, dann sieht das Ereignis so aus:
KeyPress event, serial 40, synthetic NO, window 0x4200001,
root 0xa1, subw 0x0, time 1015674631, (137,54), root:(2061,1076),
state 0x10, keycode 48 (keysym 0xe4, adiaeresis), same_screen YES,
XLookupString gives 1 bytes: (e4) "�"
XmbLookupString gives 1 bytes: (e4) "�"
XFilterEvent returns: False
Also sind keycode und keysym unabhängig von der Einstellung des
"locale" und nur XLookupString und XmbLookString liefern jeweils
unterschiedliche Ergebnisse.
Je nachdem ob das jeweilige Anwendungsprogramm entweder direkt auf
``keycode`` bzw. ``keysym`` zugreift oder die Ergebnisse von X*LookupString
verwendet, wird das Verhalten vom „locale“ beeinflusst oder auch nicht.
Viele Grüße, Peter Funk
--
Peter Funk, home: ✉Oldenburger Str.86, D-27777 Ganderkesee
mobile:+49-179-640-8878 phone:+49-421-20419-0 <http://www.artcom-gmbh.de/>
office: ArtCom GmbH, ✉Haferwende 2, D-28357 Bremen, Germany
Reply to: