Neuzuordnung von CapsLock für Escape and Control System Wide
18
Ist es möglich, das CapsLock-Tastensystem neu zuzuordnen, sodass beim Drücken der CapsLock-Taste diese als Escape-Taste und beim Drücken mit einer anderen Taste als Steuertaste fungiert?
Dies scheint sehr schwierig zu sein. Beispielsweise konnten keine Ereignisse zum Herunterfahren von Tasten generiert werden, da Sie nicht wissen, welche Taste gerade gedrückt wurde. Wenn es losgelassen wird, ohne dass eine andere Taste gedrückt wird, dann war es Escape, ansonsten war es Control.
cjm
Antworten:
16
Ich habe eine sehr gute Lösung namens xcape gefunden . Aus der README:
xcape wird als Daemon ausgeführt und fängt den Steuerschlüssel ab. Wenn die Steuertaste einzeln gedrückt und losgelassen wird, wird ein Escape-Tastenereignis generiert.
Dies ist sinnvoller, wenn Sie die Feststelltaste erneut Control zugewiesen haben. Zukünftige Versionen dieses Programms erledigen diese Zuordnung möglicherweise für Sie, aber für den Moment müssen Sie dies selbst tun.
Ich habe Caps Escape zugeordnet, damit ich Vim bequemer eintippen kann. Ich benutzte xmodmapund legte dies in ~/.Xmodmap.
clear Lock
keycode 0x42 = Escape
Anwenden: xmodmap ~/.Xmodmap. Sie können dies in eine Datei wie ~ / .bash_profile schreiben (ich schreibe in ~ / .xinitrc, weil ich keinen Login-Manager benutze).
Verwenden Sie zum Zuordnen von Feststelltaste + [eine andere Taste] xbindkeys.
Eine Linux-Lösung für die systemweite Neuzuordnung von Schlüsseln besteht darin, eine einfache udev-Regel zu schreiben. Es hängt nicht von X ab, funktioniert auf jedem Terminal oder jeder App und ist zwischen den letzten Linux-Installationen portierbar, indem einfach zwei Dateien kopiert werden.
Sie müssen 2 Dateien schreiben: eine, die die udev-Regel enthält, die den Kernel anweist, die Schlüssel neu zuzuordnen, und eine, die die tatsächlichen Zuordnungen enthält, die Sie benötigen.
Mit dieser Methode habe ich meine gesamte Tastatur neu zugeordnet, vielleicht ist der Code als Inspiration nützlich http://git.adirat.com/carpalx-keyboard
Auf AskUbuntu stieß ich auf eine Frage mit einem anderen Wortlaut, die eine gute Antwort bot, die ich jedoch leicht ändern musste, damit sie auf meinen Systemen funktioniert.
Per Louis und Sergiy haben sich dort eine Lösung ausgedacht, die auf Ubuntu 16.04 (Xenial) funktioniert und die ich auf die anderen von mir verwendeten Linux-Systeme mitnehmen werde.
Da sich die verschiedenen Display-Manager (gdm / kdm / sddm / etc) auf seltsame Weise verhalten und setxbmapdie Optionen nach dem Anhalten / Fortsetzen oder Sperren / Entsperren zurücksetzen , habe ich herausgefunden, wie die Optionen so festgelegt werden, dass sie sie erben und nicht mehr angezeigt werden. ' t Setzen Sie es die ganze Zeit zurück. Da ich eine Menge suspendiere und wieder aufnehme, musste ich sicherstellen, dass ich nicht viele Kopien von xcaperunning bekommen habe, was im neuen Skript unten behoben ist.
Ändern Sie zuerst die Tastaturkonfiguration mit sudo gedit /etc/default/keyboardund setzen XKBOPTIONS="ctrl:nocaps"und tragen Sie dann ~/.xprofiledie einzelne Zeile darunter ein.
Wir hoffen, dass die verschiedenen Abschnitte des Skripts Ihnen Zeit und Ärger ersparen und blockierte Anmeldungen verhindern. Zuerst wird geprüft, ob bereits eine Instanz ausgeführt wird, und sie wird beendet, da das Einzige, was getan xcapewird, die Zuordnung von Strg zu Esc ist. Dies ist sicher. Der hashTeil stellt dann sicher, dass Sie die Instanz xcape
installiert haben. Andernfalls kann Ihr System hängen bleiben, wenn Sie versuchen, sich anzumelden Es wird erwartet, dass Skripte ordnungsgemäß beendet werden.
Ich habe Gnome-Tweak-Tool verwendet, um die Feststelltaste auf Strg abzubilden, da in den Systemeinstellungen unter Ubuntu 14.04 kein Tastaturlayout vorhanden ist. Dann hat xcape -e 'Control_L = Escape' nicht funktioniert, aber nachdem ich xcape -d verwendet habe, habe ich festgestellt, dass die Feststelltaste den Schlüsselcode 66 generiert und diesen neu zugeordnet hat: xcape -e '# 66 = Escape'. - Sergiy Byelozyorov 4. September 14 um 10.08 Uhr
Louis:
Wie in diesem Blog-Beitrag beschrieben, ist dies nur mit xcape möglich: setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape' - Louis Simoneau 4. August 15 um 10.06 Uhr
Antworten:
Ich habe eine sehr gute Lösung namens xcape gefunden . Aus der README:
quelle
Ich habe Caps Escape zugeordnet, damit ich Vim bequemer eintippen kann. Ich benutzte
xmodmap
und legte dies in~/.Xmodmap
.Anwenden:
xmodmap ~/.Xmodmap
. Sie können dies in eine Datei wie ~ / .bash_profile schreiben (ich schreibe in ~ / .xinitrc, weil ich keinen Login-Manager benutze).Verwenden Sie zum Zuordnen von Feststelltaste + [eine andere Taste]
xbindkeys
.quelle
Eine Linux-Lösung für die systemweite Neuzuordnung von Schlüsseln besteht darin, eine einfache udev-Regel zu schreiben. Es hängt nicht von X ab, funktioniert auf jedem Terminal oder jeder App und ist zwischen den letzten Linux-Installationen portierbar, indem einfach zwei Dateien kopiert werden.
Sie müssen 2 Dateien schreiben: eine, die die udev-Regel enthält, die den Kernel anweist, die Schlüssel neu zuzuordnen, und eine, die die tatsächlichen Zuordnungen enthält, die Sie benötigen.
Mit dieser Methode habe ich meine gesamte Tastatur neu zugeordnet, vielleicht ist der Code als Inspiration nützlich http://git.adirat.com/carpalx-keyboard
quelle
Ich habe speziell für diesen Zweck ein Tool in C erstellt, das viele der Probleme mit der xcape / xmodmap-Lösung löst :
quelle
Auf AskUbuntu stieß ich auf eine Frage mit einem anderen Wortlaut, die eine gute Antwort bot, die ich jedoch leicht ändern musste, damit sie auf meinen Systemen funktioniert.
Per Louis und Sergiy haben sich dort eine Lösung ausgedacht, die auf Ubuntu 16.04 (Xenial) funktioniert und die ich auf die anderen von mir verwendeten Linux-Systeme mitnehmen werde.
Ich habe xcape installiert und die folgenden Codezeilen in meine
.profile
Datei in meinem Ausgangsverzeichnis eingefügt .AKTUALISIERTE METHODE:
Da sich die verschiedenen Display-Manager (gdm / kdm / sddm / etc) auf seltsame Weise verhalten und
setxbmap
die Optionen nach dem Anhalten / Fortsetzen oder Sperren / Entsperren zurücksetzen , habe ich herausgefunden, wie die Optionen so festgelegt werden, dass sie sie erben und nicht mehr angezeigt werden. ' t Setzen Sie es die ganze Zeit zurück. Da ich eine Menge suspendiere und wieder aufnehme, musste ich sicherstellen, dass ich nicht viele Kopien vonxcape
running bekommen habe, was im neuen Skript unten behoben ist.Ändern Sie zuerst die Tastaturkonfiguration mit
sudo gedit /etc/default/keyboard
und setzenXKBOPTIONS="ctrl:nocaps"
und tragen Sie dann~/.xprofile
die einzelne Zeile darunter ein.Wir hoffen, dass die verschiedenen Abschnitte des Skripts Ihnen Zeit und Ärger ersparen und blockierte Anmeldungen verhindern. Zuerst wird geprüft, ob bereits eine Instanz ausgeführt wird, und sie wird beendet, da das Einzige, was getan
xcape
wird, die Zuordnung von Strg zu Esc ist. Dies ist sicher. Derhash
Teil stellt dann sicher, dass Sie die Instanzxcape
installiert haben. Andernfalls kann Ihr System hängen bleiben, wenn Sie versuchen, sich anzumelden Es wird erwartet, dass Skripte ordnungsgemäß beendet werden.Alter Weg:
Sergiy:
Louis:
quelle