Wie kann man zulassen, dass Akkorde von Tastaturtasten die Tastaturbelegung vorübergehend ändern?


9

Ich habe die „Simultaneous Vi - Modus“ Funktionalität wirklich daran gewöhnt KeyRemap4MacBook , die Sie drücken und halten Sie die können sund dgleichzeitig die Tasten und verwenden Sie dann die h, j, kund lTasten wie die Pfeiltasten. Wenn sund dzusammen gedrückt werden, wird kein soder dEreignis ausgelöst, aber wenn ich normal tippe, bemerke ich keine Verzögerungsprobleme beim Schlagen soder deinzeln.

Wie kann ich diese Funktionalität unter Linux (speziell RHEL 6.4) neu erstellen?

Ein paar Ideen, die ich hatte:

  1. Wenn s+ dzu einem Modifikator neu zugeordnet werden könnte, dann die Tasten h, j, k, l+ Modifikator könnten entsprechend abgebildet werden. (Auf der Tastatur, die ich jetzt verwende, stehen anstelle von s+ keine zusätzlichen Modifizierertasten zur Verfügung d. CapsLockAußerdem besteht der Punkt im Simultan-Vi-Modus darin, alle Finger in der Startzeile zu halten. Sie sind bereits neu zugeordnet Controlund Escape).

  2. Im Idealfall würde ich einen Weg finden, dies mithilfe von Systemeinstellungen oder einer XKB-Tastatur zu tun, die ich bereits verwende. Wenn dies nicht möglich ist, könnte möglicherweise etwas Ähnliches wie das xcape- Programm (das ich verwende und mit dem Tasten verschiedenen Tastendruck- und Modifizierertastensymbolen zugeordnet werden können) geschrieben werden. xcapeAuslöser weg von Schlüsselhilfsentriegelung obwohl, so hätte es gezwickt werden die halten sund dTasten nicht zu langsam.


Auf RHEL 6.4? Verwenden Sie vim von X oder über das Terminal?
Otheus

Oh, und wie ordnet man CapsLock Control AND Escape zu?
Otheus

Ordnen Sie CapsLock der Steuerung zu und verwenden Sie dann xcape (oben verlinkt), um Escape kurze Steuerdrücke zuzuordnen. In der Frage beziehe ich mich auf einen Vi-ähnlichen Modus von KeyRemap4MacBook, nicht auf sich selbst. Die bisher vielversprechendste Option, nach der ich gesucht habe, ist die Verwendung des Python Xlib-Moduls auf ähnliche Weise wie bei Plover. Bisher hatte ich nicht viel Zeit, daran zu arbeiten.
ws_e_c421

Antworten:


2

Sie können dies nicht mit den Standardtools tun, Sie müssten etwas schreiben (wahrscheinlich ist ein Großteil des xservers betroffen, und wenn dies außerhalb von X funktionieren soll, werden Kerneländerungen vorgenommen).

Der Grund dafür ist, dass die Ideen, auf denen das Design basiert (und für die es optimiert ist), nicht das Aufzeichnen regulärer Schlüssel oder das Aussenden von Zeichen von Modifikatoren beinhalten.


Ich beschäftige mich immer noch damit (brauche mehr Zeit). Ich habe das Plover-Projekt gefunden, das eine Vorlage für eine X-basierte Lösung zu bieten schien, aber ich möchte zu Wayland wechseln, also habe ich aufgehört, mich damit zu befassen. Kürzlich habe ich caps2esc entdeckt , das libevdev und libudev verwendet, um Geräte dynamisch zu erfassen und neu zuzuordnen. Ich denke, ein solcher Ansatz könnte neben der Neuzuordnung auch für die Aufnahme funktionieren, muss aber weiter untersucht werden (ich würde auch eine Libinput-Lösung bevorzugen).
ws_e_c421

Mein libinput Kommentar war falsch informiert. Ich dachte, caps2esc funktioniert mit dem xf86-input-evdev-Treiber, der eine Alternative zu libinput darstellt, aber er funktioniert tatsächlich auf libevdev-Ebene, einer Bibliothek auf niedrigerer Ebene, die von beiden Projekten verwendet wird. Das Tooling für caps2esc wurde in das Projekt Interception Tools überarbeitet . Ich glaube, ein gut geschriebenes Plugin für Interception-Tools könnte die von mir beschriebene Funktion bieten. Es ist auf meiner Liste zu untersuchen.
ws_e_c421

2

Nach vier Jahren habe ich endlich einen groben Entwurf einer Antwort auf diese Frage. Die Antwort besteht darin, Interception Tools zu verwenden, die libevdev verwenden, um Tastatureingaben zu erfassen und diese zu verarbeiten, bevor sie erneut ausgegeben werden. Im Hinblick auf die gleichzeitige Tastenbelegung, ich habe eine grobe Plugin für Interception Werkzeuge genannt gemacht chorded Keymap , die ermöglicht h, j, k, lwirken wie die Pfeiltasten , wenn sund dgleichzeitig gedrückt werden.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.