如何使 Caps Lock 键成为第三个 Shift 键?

Tom*_*man 19 keyboard capslock 16.04

如何让 Caps Lock 键像另一个 Shift 键一样工作?

这里有很多关于重新分配它或让它启动自定义命令的问题。我只是想让它像另一个 Shift 键一样工作。我不希望任何其他键改变它们的作用,只有那一个。

键盘布局/大写锁定键行为不会这样做,我不明白如何在 CCSM 中重新映射它。

我现在使用英式键盘,但我学会了在美式键盘上打字,较小的左 Shift 键是 DRIVING ME NUTS。

Eld*_*eek 14

扩展@Zacharee1 答案:

做一个备份 cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

然后使用gksu gedit /usr/share/X11/xkb/symbols/pc或您最喜欢的编辑器进行编辑。

找到第 (22) 行,它说:

key <CAPS> { [ Caps_Lock ] };

并将其更改为

key <CAPS> { [ Shift_L ] };

和第 (36) 行说:

modifier_map Lock { Caps_Lock };

并将其更改为

//modifier_map Lock { Caps_Lock }; (应该将其注释掉,实际上禁用锁定)

测试表明Num Lock仍然按预期工作。进一步的测试表明,即使在未经修改的系统上,16.04 中的键盘指示灯也会出现阅读障碍。登录时 Scroll Lock 指示灯亮起,但 Scroll lock 熄灭,Num Lock 灯熄灭,但 Num Lock 亮起。点击左键Ctrl似乎解决了这个问题,我不确定它是否与我使用 KVM 切换器有关(这是可能的)

注意:进一步的测试表明,即使没有 KVM 开关,NumLock 指示灯也会呈片状,必须轻按两次才能与 NumLock 同步。两次以使其恢复同步。为什么会发生这种情况可能是一个新问题的基础......

解决原始问题的另一个简单方法是简单地获得一个便宜的美式键盘并使用美式键盘映射。

来源:@Zacharee1 对/usr/share/X11/xkb/symbols/pc试错测试的回答和分析


Gil*_*il' 10

您可以通过调整如何更改 CapsLock 键来生成“a”?(例如)。

LockCaps Lock键中删除(= Caps Lock) 修饰符,并声明此键发送键Shift_L符。

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L
Run Code Online (Sandbox Code Playgroud)

或者,您可以删除Lock修饰符并添加Shift修饰符。

remove Lock = Caps_Lock
add Shift = Caps_Lock
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,这些行都会进入文件~/.Xmodmap. 通过加载它进行测试xmodmap ~/.Xmodmap;当您在默认环境下(或至少在 Gnome 时代)登录时,会自动读取该文件。

  • 完美,这奏效了。我在我的主目录中创建了一个名为“.Xmodmap”的新空文档,并将您的第一个示例粘贴到其中。然后我在终端输入'xmodmap ~/.Xmodmap',让它立即生效。这些都在链接的答案中进行了解释。谢谢你。 (2认同)

The*_*rer 7

忽略我之前尝试回答失败的尝试,我发现了一些将大写锁定完全变成左移的东西。没有切换,我认为它是持久的,而且非常简单。

首先,我建议先备份,然后再介绍如何更改它。

sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

现在有了备份,让我们开始编辑。

使用您喜欢的文本编辑器以 root 身份编辑此文件:

/usr/share/X11/xkb/symbols/pc
Run Code Online (Sandbox Code Playgroud)

找到看起来像这样的部分(它靠近顶部,对我来说是第 22 行):

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };
Run Code Online (Sandbox Code Playgroud)

编辑

key <CAPS>  {   [ Caps_lock             ]   };
Run Code Online (Sandbox Code Playgroud)

成为

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };
Run Code Online (Sandbox Code Playgroud)

反而。(Caps_Lock之后Shift_L,可能是不必要的。)

重新启动您的显示管理器(通常sudo service lightdm restart),大写锁定现在将左移。(注意:我的测试机器使用 GNOME,所以我不得不重新启动gdm。但是,这导致了后备 TTY 中出现了一些奇怪的闪烁,并且gdm从未重新启动。我不得不完全重新启动。)

这个我实际上能够测试,并且可以确认它有效。

改编自Ubuntu 13.04 中的永久 xmodmap