caps lock
Ich möchte die Taste auf meiner Tastatur als verwenden können, shift key
wenn ich sie gedrückt halte, und als, backspace
wenn ich die Taste loslasse (vorausgesetzt, ich habe in diesem Zeitraum keine anderen Tasten gedrückt). Ich bevorzuge eine native Lösung (wie xmodmap
), bin mir aber nicht sicher, ob es möglich ist, das Drücken KEYUP
und KEYDOWN
Drücken nur mit den grundlegenden Systemtools zu regulieren.
Antwort1
Ich kenne keine nativen Möglichkeiten, das zu tun, aberxcapedosieren Sie was Sie wollen:
#!/usr/bin/env bash
# Remap the key to it's default behavior
# assuming `keycode 66` is your `caps lock`
# check using `xmodmap -pke | grep Caps_Lock`
xmodmap -e 'keycode 66 = Shift_L Shift_L Shift_L Shift_L Shift_L Shift_L'
# if you remaped your standard backspace key (skip
# this line if you didn't) it will no longer be
# available in the keymap but xcape needs it to be there.
# To fix this, pick a keycode that's
# not on your physical keyboard (find one using
# `xmodmap -pke`) and remap it to `BackSpace`. I will
# assume that `keycode 248` is unused:
xmodmap -e 'keycode 248 = BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace '
# kill `xcape` if it's already running so you don't
# get two competing instances
pidof xcape | xargs kill -1
# actually start xcape
xcape -e 'Shift_L=BackSpace'
Fügen Sie dies in ein Skript ein und führen Sie es beim Start aus (natürlich nach dem Testen).
Mögliche Probleme:
Leider ist dies nicht 100 % zuverlässig (zumindest auf meinem System). Manchmal funktioniert es einfach zufällig nicht mehr. Das erneute Ausführen des Skripts behebt dies jedoch zuverlässig. Ich habe eine Tastenkombination eingerichtet (die von Tastaturneubelegungen nicht betroffen ist), um das Skript auszuführen, sodass es nicht allzu schmerzhaft ist, es ab und zu erneut ausführen zu müssen.
Dadurch wird dieRücktaste beim LoslassenVerhalten für alle
Shift_L
Tasten. Wenn es welche gibt (finden Sie sie mit herausxmodmap -pke | grep Shift_L
), möchten Sie diese möglicherweise auf neu zuordnenShift_R
.Es gibt Anwendungen, die davon nicht betroffen zu sein scheinen. Diese sind allerdings sehr selten. Die einzige, die ich gefunden habe, ist der Signal Messenger. Es könnte auch einige Videospiele geben, die über ein eigenes integriertes Eingabesystem verfügen und daher keine Änderungen auf Systemebene vornehmen müssen.
PS: Ich verwende dies, um sowohl control
als auch escape
meinem cabslock
Schlüssel zuzuordnen. Als vim
und- kakoune
Benutzer finde ich dies sehr nützlich.
PPS: Entschuldigen Sie, wenn diese Antwort sehr spät kommt, aber dies war mein oberstes Ergebnis bei Google, also selbst wenn dies für den OP nicht mehr nützlich ist, könnten andere es trotzdem hilfreich finden.