#189: X Error of failed request: BadValue (integer parameter out of range for
operation)
-----------------------------------------------+----------------------------
 Reporter:  paulepan...@…                      |       Owner:  erik           
     Type:  Fehler/Defekt                      |      Status:  new            
 Priority:  normal                             |   Milestone:  Neo Version 2.0
Component:  Treiber: Linux – Xmodmap           |     Version:  2.0 BETA       
 Keywords:                                     |  
-----------------------------------------------+----------------------------

Comment(by petere):

 Fix: ersetze

 add Mod3 = ISO_Group_Shift

 durch:

 add Mod3 = ISO_First_Group

 Der Fehler ist distributionsunabhängig und tritt ab X-Server 1.7 auf (in
 X11R7.5 enthalten).
 Seit dem X.org-Server 1.7 prüft die Routine von SetModifierMapping
 (genauer: build_modmap_from_modkeymap in dix/inpututils.c), ob der
 Keycode, der gesetzt werden soll, schon bei einem anderen Modifier
 eingetragen ist.
 Nun werden durch obige Zeile aber nicht nur die Neo-Mod3s eingetragen
 (Qwertz-Caps und #), sondern auch die Mod4s, weil in ihren Definitionen
 ebenfalls ISO_Group_Shift vorkommt.
 Wenn danach die Mod4s nochmal durch "add Mod5 = ISO_Level3_Shift" einem
 X-Modifier zugeordnet werden, meldet sich der neue X-Server 1.7 mit
 BadValue, weil diese Tasten eben schon bei Mod3 stehen.
 Warum das neuerdings so gehandhabt wird, ist mir schleierhaft, wird aber
 wohl seine Gründe haben. Oder es liegt einfach daran, dass
 ProcSetModifierMapping in 1.7 neu geschrieben wurde.

 Dass sich heutzutage keine Schwierigkeiten mehr ergeben, wenn man die
 Modifier-Maps weglässt, liegt daran, dass sie nur noch aus
 Kompatibilitätsgründen gesetzt werden. Alte Programme, die die Modmap noch
 auslesen, könnten aber Probleme haben, wenn dort nichts eingetragen ist.
 Deshalb sollten wir es schon richtig machen.

 Es müsste noch einer probieren, ob obige Änderung auch noch unter älteren
 X-Servern funktioniert.

-- 
Ticket URL: <http://wiki.neo-layout.org/ticket/189#comment:5>
Neo-Layout <http://neo-layout.org/>
Das Neo-Tastaturlayout ist ein freies und ergonomisch optimiertes 
Tastaturlayout für die deutsche Sprache, das auch sehr viele Sonderzeichen 
direkt verfügbar macht.

Antwort per Email an