如何启用 Shift 锁定? (粘滞Shift键)

如何启用 Shift 锁定? (粘滞Shift键)

我想将我的一把钥匙映射为 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:shiftshift:both_shiftlockcaps: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 应该都会亮起。

相关内容