xmodmap Wie kann ich die Schlüssel neu zuordnen und die ursprünglichen deaktivieren?

1220
Tomas

Ich überlege mir, eine 60% -Tastatur zu bekommen und möchte mit diesem Layout arbeiten, bevor Sie die eigentliche Tastatur kaufen.

Ich versuche, Pfeiltasten nach Caps Lock + Ijkl abzubilden und die echten Pfeiltasten zu deaktivieren. Ich habe herausgefunden, wie ich es neu zuordnen kann, aber wenn ich versuche, die echten Pfeiltasten zu deaktivieren, brechen die neu zugeordneten. Hier ist eine Arbeitskarte:

keycode 66 = Mode_switch keycode 31 = i I Up keycode 44 = j J Left keycode 45 = k K Down keycode 46 = l L Right 

Um den Pfeil nach oben zu deaktivieren, füge ich hinzu

keycode 111 = 

Und sobald ich das mache, funktioniert ijkl nicht mehr als Zeichen, sondern wirkt auch als Pfeil, ohne den Modifikator zu drücken (Feststelltaste). Wie kann ich die Pfeiltasten deaktivieren, ohne meine vorherige Zuordnung zu unterbrechen?

4
Funktioniert es für Sie, wenn Sie es manuell deaktivieren? über `$ xmodmap -e 'keycode 111 ='` tukan vor 6 Jahren 0
Es funktioniert genauso wie mit der Konfigurationsdatei. Ich kann den Schlüssel entweder deaktivieren oder neu zuordnen, aber nicht beides. Tomas vor 6 Jahren 0
Hmm das ist komisch. Warum versuchen Sie trotzdem, die Pfeiltasten zu deaktivieren? Wenn Sie 60% Tastatur haben, haben Sie sie nicht. Wenn Sie sie nicht haben, müssen Sie sie nicht deaktivieren, oder? Geben Sie einfach die Arbeitszuordnung ein und es geht Ihnen gut. tukan vor 6 Jahren 0
Ich habe eine github xmodmap für solche Tastaturen gefunden. Sie können es ausprobieren. https://gist.github.com/jeffeb3/743507871082c9e1ca44 tukan vor 6 Jahren 0
Ich habe vergessen, dass ich das Remapping habe und die Pfeiltasten aus Gewohnheit weiter benutze. Ich möchte die Pfeiltasten deaktivieren, um mich daran zu erinnern, dass Remapping existiert und ich sollte es verwenden. Ich habe die Konfiguration auf Github überprüft, es scheint keine Schlüssel zu deaktivieren, also bezweifle ich, dass es nützlich wäre. Tomas vor 6 Jahren 0
Ah, ich habe es jetzt verstanden. Ja, der Github ist für weitere Inspiration da, nicht um das Problem zu lösen. Ich werde den Quellcode von xmodmap überprüfen, wenn ich etwas finde. tukan vor 6 Jahren 0
Könntest du mir dein Mapping geben, nachdem du alle angewendet hast? Über `xmodmap -pke | egrep -e '(Up | Down | Left | Right)' ` tukan vor 6 Jahren 0
https://pastebin.com/wQPiRVTQ Tomas vor 6 Jahren 0
siehe meine Antwort In den Mappings scheint es, als hätten Sie den ursprünglichen Schlüsselcode 111 nicht gelöscht. tukan vor 6 Jahren 0
Ich glaube, ich habe es herausgefunden. Sie können es testen und mich wissen lassen :). tukan vor 6 Jahren 0

2 Antworten auf die Frage

2
tukan

Nach dem Einlesen und Informationen. Es scheint, dass das Problem darin besteht, dass Sie die Modifikatoren löschen müssen, bevor Sie das Remapping durchführen.

Zur antwort:

Nach dem Ändern der Einstellungen xmodmapsieht mein aus:

xmodmap: bis zu 4 Schlüssel pro Modifikator (Schlüsselcodes in Klammern):

shift Shift_L (0x32), Shift_R (0x3e) lock  control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Alt_L (0xcc), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 Mode_switch (0x42), Mode_switch (0xcb) mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce) mod5  

Die Untersuchung von Mode_switchbringt uns zu der Schlussfolgerung, Caps_Lockdie erfolgreich kartiert wurde:

[smalltalk@localhost ~]$ xmodmap -pke | egrep -e '(Mode_switch)' keycode 66 = Mode_switch NoSymbol Mode_switch keycode 203 = Mode_switch NoSymbol Mode_switch 

Nun xmodmap der Auszug aus den Manpages:

 keycode NUMBER = KEYSYMNAME ... The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. 

Die folgende Konfiguration funktioniert, aber Sie müssen Caps_Lock gedrückt halten, während Sie i, j, k, l verwenden (genau wie in den Manpages beschrieben):

Bearbeiten vim ~/.Xmodmap:

! make Capslock the "Mode_switch" key clear Lock  ! All Mod must be cleared clear Mod1 clear Mod2 clear Mod3 clear Mod4 clear Mod5  ! clearning current Caps_Lock assigment and assigning it new one keycode 66 = keycode 66 = Mode_switch  ! setting all the modification keys add Mod1 = Alt_L Alt_R Meta_L add Mod2 = Num_Lock add Mod3 = Mode_switch add Mod4 = Super_L Super_R Hyper_R  ! Clear must be done before configuring it keycode 31 = keycode 44 = keycode 45 = keycode 46 =  ! Configuration (first column normal type, second with shift and second with Mod_switch) keycode 31 = i I Up keycode 44 = j J Left keycode 45 = k K Down keycode 46 = l L Right  ! Clearing the arrow keys and some functional keys like home keycode 111 = keycode 113 = keycode 114 = keycode 116 = keycode 112 = keycode 117 = 

Nun zur großen Frage:

Wie lassen sich die Tasten i, j, k, l aktivieren, während Caps_Lock eingeschaltet ist? Sie werden wahrscheinlich Änderungen vornehmen xkbmüssen, über die ich nachdenken muss.

Bearbeiten

Ja, du kannst. Ich habe es herausgefunden.

Hinweis: Dies gilt für alle Tastaturen, alle Layouts, und eignet sich daher zum Testen. Wenn Sie es xkbrichtig machen möchten, müssen Sie ein eigenes Layout erstellen und eine Zuordnung von Gruppe1 und Gruppe2 + vornehmen.

Das unten genannte ist ein Hack ideal zum Testen Ihrer Tastatur (s) (vergessen Sie nicht, Ihre ../basicDatei zu sichern !):

Warnung dies gilt für alle Tastaturen, alle Varianten.

Bearbeiten Sie die Datei: sudo vim / usr / share / X11 / xkb / compat / basic

# Add Caps_Lock to virtual modifiers virtual_modifiers NumLock,AltGr,Caps_Lock;  # change FROM: interpret Mode_switch { useModMapMods= level1; virtualModifier= AltGr; action= SetGroup(group=+1); };  # TO: interpret Mode_switch { useModMapMods= level1; virtualModifier= Caps_Lock; action= LockGroup(group=+1); };  # change from group 2 = AltGr; TO: group 2 = Caps_Lock; 

Hinweis: Wenn Sie über mehrere Layouts verfügen, kann dies zu Störungen führen.

0
The Edge Of Rage

Tut mir leid, dass ich eine Antwort geschrieben habe, anstatt zu kommentieren, aber ich habe immer noch nicht genug Ruf dafür. Ich weiß, dass dies Ihre Frage nicht beantwortet, aber es könnte Ihr Problem lösen.

Anstatt die Tasten des Betriebssystems neu zuzuordnen, möchten Sie möglicherweise eine Tastatur kaufen, die die Neuzuordnung der Tasten in sich unterstützt. Insbesondere eine Tastatur, die von der QMK-Firmware unterstützt wird . Eine Liste aller kompatiblen Tastaturen finden Sie hier .

Mit dieser Firmware können Sie jeder Aktion einen beliebigen Schlüssel zuordnen, z. B. indem Sie viele Ebenen hinzufügen, in denen jeder Schlüssel verschiedene Aufgaben ausführen kann. Stellen Sie sich vor, Sie drücken die Fn-Taste auf Laptops, es sei denn, es ist vollständig anpassbar. Sie können auswählen, welcher Schlüssel welche Ebene aktiviert und wie. Zum Beispiel können Sie es die Schicht ein- / ausgeschaltet, halten Sie es aktiv, während der Schlüssel usw. Auf diese Weise halten Sie könnte Caps Locksein, Caps Lockwenn angezapft und Wechseln zu einer anderen Schicht (wo die ijklTasten sind Pfeiltasten), wenn gedrückt gehalten wird.

Der einzige Nachteil ist, dass für das Zuordnen von Arrays Arrays in C-Code bearbeitet werden müssen, obwohl dies eigentlich ziemlich einfach ist und keine Programmierkenntnisse erforderlich sind. Die Dokumentation ist recht umfangreich und erklärt alles, was Sie benötigen, um loszulegen.

Es gibt viele 60% Tastaturoptionen, obwohl die meisten Kits sind, die Sie selbst zusammenbauen müssen. Wenn Sie damit kein Problem haben, schauen Sie sich die GH60-, Satan- oder XD60-Platinen an. Sie finden alle diese Informationen auf Wenn Sie es nicht selbst zusammenbauen möchten, können Sie die Whitefox- Tastatur oder das KBDFans-Geschäft durchsuchen, da sie Assembling-Services für die meisten ihrer Kits bieten.

Wie ich bereits in der Frage erwähnt habe, bin ich mir nicht sicher, ob ich ohne Pfeiltasten leben könnte, "also möchte ich mit diesem Layout arbeiten, bevor Sie die eigentliche Tastatur kaufen." Tomas vor 6 Jahren 0