Linux – Wie verwende ich die Feststelltaste sowohl als Umschalt- als auch als Rücktaste?

Linux – Wie verwende ich die Feststelltaste sowohl als Umschalt- als auch als Rücktaste?

caps lockIch möchte die Taste auf meiner Tastatur als verwenden können, shift keywenn ich sie gedrückt halte, und als, backspacewenn 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 KEYUPund KEYDOWNDrü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_LTasten. Wenn es welche gibt (finden Sie sie mit heraus xmodmap -pke | grep Shift_L), möchten Sie diese möglicherweise auf neu zuordnen Shift_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 controlals auch escapemeinem cabslockSchlüssel zuzuordnen. Als vimund- kakouneBenutzer 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.

verwandte Informationen