Ich versuche, meine Tastatur neu zuzuordnen, um Emacs nutzbar zu machen. Meine ergonomische Tastatur steckt die einzelne Steuertaste in einer isolierten Insel mit 4 Tasten ganz links.
Das Betriebssystem ist Debian Squeeze.
Hier sind die Zeilen, auf die ich füttern xmodmap
möchte. Ich platziere sie in einer Datei ~ / .Xmodmap:
klare Kontrolle Mod1 löschen ! Die Alt-Tasten sind auf meiner Tastatur mit 'Option' beschriftet. ! Mit xev können Sie Alt_L- und Alt_R-Keysyms senden keysym Alt_L = Control_L keysym Alt_R = Control_R ! Die Tasten Super_L und Super_R sind die Windows-Tasten keysym Super_L = Alt_L keysym Super_R = Alt_R addiere Control = Control_L Control_R addiere Mod1 = Alt_L Alt_R
Mein Ziel ist es, dass sich meine Wahltasten (aka Alt) wie die Steuertasten verhalten und dass sich meine Windows-Tasten (aka Super) so verhalten, wie sie sind Alt.
Hier sind die von xev ausgegebenen Schlüsselcodes und Schlüsselms für die betreffenden Schlüssel. Beachten Sie, dass meine Tastatur (eine ergonomische Goldtouch-Tastatur) nur eine Bedientaste hat.
Schlüsselcode 37 (keysym 0xffe3, Control_L) keycode 64 (keysym 0xffe9, Alt_L) Schlüsselcode 133 (keysym 0xffeb, Super_L) Schlüsselcode 134 (keysym 0xffec, Super_R) keycode 108 (keysym 0xffea, Alt_R)
Hier ist, was xev beim Laufen anzeigt xmodmap .Xmodmap
MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 204, Anzahl 1 MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 64, Anzahl 1 MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 108, Anzahl 1 MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 206, Anzahl 1 MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 133, Anzahl 1 MappingNotify-Ereignis, Seriennummer 34, synthetisches NO, Fenster 0x0, Anfrage MappingKeyboard, first_keycode 134, Anzahl 1
Und hier ist der Fehler, der zurückgegeben wird von xmodmap
:
X Fehler bei fehlgeschlagener Anforderung: BadValue (Integer-Parameter außerhalb des Bereichs für den Betrieb) Hauptoperationscode der fehlgeschlagenen Anforderung: 118 (X_SetModifierMapping) Wert in fehlgeschlagener Anforderung: 0x17 Seriennummer der fehlgeschlagenen Anfrage: 17 Aktuelle Seriennummer im Ausgabestream: 17
Irgendwelche Vorschläge, wie ich das beheben kann?
xev
in einem Terminal und dannxmodmap
in einem anderen Terminal zu rennen . Sie sollten einigeMappingNotify
Strophen von sehenxev
, fügen Sie sie Ihrer Frage hinzu.xev
Drücken Sie im Fenster auch die verschiedenen beteiligten Tasten und teilen Sie uns mit, welchem Keycode und welchem Keysym sie entsprechen (der Teil „Keycode 37 (keysym 0xffe3, Control_L)“ der xev-Ausgabe).Antworten:
Dies wurde bereits als Debian-Fehler # 564327 , Debian-Fehler # 565279 , Ubuntu-Fehler # 524774 und FreeDesktop-Fehler 20145 gemeldet . Der FreeDesktop-Fehlerdiskussion ist ein Quell-Patch beigefügt. In der Ubuntu-Fehlerdiskussion gibt es mehrere Vorschläge zur Problemumgehung, insbesondere eine
.Xmodmap
Problemumgehung .quelle
In Anbetracht der von Giles verknüpften Problemumgehung hat Folgendes für mich funktioniert:
Meine Wahltasten funktionieren jetzt wie Steuertasten und meine Windows-Tasten wie Alt-Tasten.
quelle
Das Problem tritt auf, wenn Sie versuchen, einem Modifikator, der bereits einem anderen Modifikator-Schlüssel hinzugefügt wurde, einen Keysym hinzuzufügen. Es ist wichtig zu wissen, dass, wenn Sie einem Modifikator einen Schlüssel hinzufügen, alle anderen Schlüssel, die den Schlüssel für den Fall begleiten, auch zu diesem Modifikator hinzugefügt werden.
Beispielsweise:
kann dazu führen
weil du sowas hast
in Ihrer ~ / .Xmodmap (Den aktuellen Keycode für das Keysym-Mapping sehen Sie über
xmodmap -pke
)Das wird den fraglichen BadValue-Fehler erzeugen, wenn Sie auch versuchen, etwas wie zu tun
weil Caps_Lock bereits zum Modifikator mod5 hinzugefügt wurde.
quelle
Dies ist eine weitere Lösung für Ihr Problem, obwohl sie Ihre Frage nicht wirklich beantwortet. Bearbeiten Sie die Datei xorg.conf und fügen Sie Folgendes in den Abschnitt "InputDevice" ein:
quelle