Opened 16 years ago

Closed 16 years ago

#189 closed Fehler/Defekt (fixed)

X Error of failed request: BadValue (integer parameter out of range for operation)

Reported by: paulepanter@… Owned by: Erik Streb del Toro
Priority: normal Milestone: Neo Version 2.0
Component: Treiber: Linux – Xmodmap Version: 2.0 BETA
Keywords: Cc:

Description

Liebe Neo-Leute,

meine Nachricht an die Liste blieb unbeantwortet. Damit es nicht vergessen wird, erstelle ich einen Fehlerbericht und kopiere meine Nachricht.

Liebe Grüße,

Paul

Am Sonntag, den 17.01.2010, 13:10 +0100 schrieb Paul Menzel:
> Liebe Neo-Benutzer,
> 
> 
> bei der Eingaben von `setxkbmap lv && xmodmap neo_de.xmodmap` [1]
> erhalte ich seit kurzem folgende Fehlermeldung.
> 
>         X Error of failed request:  BadValue (integer parameter out of range for operation)
>           Major opcode of failed request:  118 (X_SetModifierMapping)
>           Value in failed request:  0x17
>           Serial number of failed request:  86
>           Current serial number in output stream:  86
> 
> Ich glaube, dies tritt auf seitdem die X.org-Version (7.5) aktualisiert
> wurde. Zudem benutze ich die aktuelle Version aus dem SVN-Depot (r2147).
> 
> Kann mir da jemand weiterhelfen?
> 
> 
> Liebe Grüße,
> 
> Paul
> 
> 
> [1] http://wiki.neo-layout.org/wiki/Neo unter Linux einrichten/xmodmap

Change History (8)

comment:1 by helminger@…, 16 years ago

Component: Treiber: Linux – XmodmapTreiber: Linux – Xkbmap

Hi, ich hab das gleiche Problem: System: Ubuntu lucid [code]m:~$ setxkbmap lv && xmodmap neo_de.xmodmap X Error of failed request: BadValue (integer parameter out of range for operation)

Major opcode of failed request: 118 (X_SetModifierMapping) Value in failed request: 0x17 Serial number of failed request: 86 Current serial number in output stream: 86

comment:2 by stephan, 16 years ago

Component: Treiber: Linux – XkbmapTreiber: Linux – Xmodmap

Soweit ich das sehen kann, liegt das nicht am xkb-Treiber. Dieser wird schließlich nirgends in der Problembeschreibung eingesetzt …

comment:3 by tkilian, 16 years ago

Type: Fehler/DefektVerbesserung

Das lässt sich lösen, indem man in der Datei den letzten Eintrag:

add Mod5 = ISO_Level3_Shift

mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen, ein Unterschied ist mir aber bisher nicht damit aufgefallen.

Viele Grüße, Kilian

in reply to:  3 comment:4 by anonymous, 16 years ago

Owner: set to Erik Streb del Toro
Type: VerbesserungFehler/Defekt

Replying to tkilian:

Das lässt sich lösen, indem man in der Datei den letzten Eintrag:

add Mod5 = ISO_Level3_Shift

mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen, ein Unterschied ist mir aber bisher nicht damit aufgefallen.

Vielleicht sollte das ins Skript mit eingebaut werden. Wenn Fedora 13, oder Ubuntu Lucid verwendet wird (oder die dort enthaltenen Versionen von xkeyboard-config), dann muss diese Zeile vom Skript automatisch auskommentiert werden. Oder umformuliert.

Solange dieser Fehler auftritt, ist es ein Fehler. Keine Verbesserung, denn die Xmodmap ist auf solchen Systemen unbenutzbar.

comment:5 by petere, 16 years ago

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.

in reply to:  5 comment:6 by paulepanter@…, 16 years ago

Replying to petere:

Fix: ersetze

add Mod3 = ISO_Group_Shift

durch:

add Mod3 = ISO_First_Group

Vielen Dank! Ich bestätige, dass die Fehlermeldung nicht mehr auftritt.

[…]

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

Leider habe ich zu Hause keinen Zugriff auf einen älteren X-Server. Wenn ich aber die Möglichkeit haben sollte, an ein solches System zu kommen, werde ich es testen.

comment:7 by petere, 16 years ago

Ich hab mal schnell mein altes Suse 10.3 entstaubt (X.org-Server 1.2). Klappt auch dort alles wie gewünscht mit der Änderung.

Würde den Fix auch selbst durchführen, hab aber keine Schreibrechte im SVN (oder bin zu blöd…). Wenn das also jemand mit erledigen könnte…

comment:8 by pascal, 16 years ago

Resolution: fixed
Status: newclosed

Umgesetzt.

Note: See TracTickets for help on using tickets.