我想将我的一把钥匙映射为 Shift Lock 键。根据我的理解,Shift 锁定键是一种“粘性”Shift 键:它保持按下状态,移动布局的所有键,直到再次按下。
它与键类似Caps Lock,不同之处在于它影响所有键,包括数字行中的键。
我正在尝试用它setxkbmap -option ...
来处理这个问题。
我在以下文件中发现了这些有希望的规则/usr/local/share/X11/xkb/rules/base.lst
:
caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
caps:shift_nocancel Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
caps:capslock Caps Lock toggles normal capitalization of alphabetic characters
caps:shiftlock Caps Lock toggles ShiftLock (affects all keys)
shift:breaks_caps Shift cancels Caps Lock
shift:both_capslock Both Shift keys together toggle Caps Lock
shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
shift:both_shiftlock Both Shift keys together toggle ShiftLock
所以,
setxkbmap -option shift:both_shiftlock
我尝试按下Shift(然后松开),然后输入其他字符。没有效果。所有字符小写。如果我按住Shift并键入其他键,它会按照您通常的预期运行。
我尝试过caps:shift
,shift:both_shiftlock
但caps:shiftlock
据我所知,它们都没有任何效果。怎么了?
答案1
我找到了一种变成 Shift Lock 的方法Caps Lock,多亏了超级用户的回答:
xmodmap -e "keycode 66 = Shift_Lock"
下面将我的左键变成CtrlShift Lock:
xmodmap -e "keycode 37 = Shift_Lock"
要Shift锁定左键,请使用
xmodmap -e "keycode 50 = Shift_Lock"
右键Shift,使用
xmodmap -e "keycode 62 = Shift_Lock"
当 Shift Lock 处于活动状态时,键盘的 Caps Lock 和 Scroll Lock LED 应该都会亮起。