[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: