Quiero poder usar la caps lock
tecla en mi teclado cuando shift key
la mantengo presionada y cuando backspace
la suelto (dado que no presioné ninguna otra tecla en ese intervalo). Prefiero una solución nativa (como xmodmap
), pero no estoy seguro de si es posible regular KEYUP
y KEYDOWN
presionar usando solo las herramientas básicas del sistema.
Respuesta1
No conozco ninguna forma nativa de hacer eso, peroxcapedosifica lo que quieras:
#!/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'
Coloque esto en un script y ejecútelo al inicio (después de probarlo, por supuesto).
Problemas potenciales:
Desafortunadamente, esto no es 100% confiable (al menos en mi sistema). A veces simplemente deja de funcionar aleatoriamente. Sin embargo, volver a ejecutar el script soluciona este problema de manera confiable. Configuré un método abreviado de teclado (que no se ve afectado por ninguna reasignación de teclado) para ejecutar el script, por lo que tener que volver a ejecutarlo de vez en cuando no es demasiado doloroso.
Esto agregará elRetroceso al soltarcomportamiento a todas
Shift_L
las claves. Si hay alguno (descúbralo usandoxmodmap -pke | grep Shift_L
), es posible que desee reasignarlos aShift_R
.Hay aplicaciones que no parecen verse afectadas por esto. Aunque son realmente raros. El único que encontré es el mensajero Signal. También puede haber algunos videojuegos que vienen con su propio sistema de entrada integrado y, por lo tanto, eliminan cualquier modificación a nivel del sistema.
PD: estoy usando esto para asignar ambos control
y escape
mi cabslock
clave. Como usuario vim
y kakoune
, esto me resulta muy útil.
PPS, lo siento si esta respuesta llega muy tarde, pero este fue mi resultado principal en Google, por lo que incluso si ya no es útil para el OP, es posible que otros lo encuentren útil.