当前位置: 首页>>技术教程>>正文


如何将 Caps Lock 键变为第三个 Shift 键?

, ,

问题描述

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

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

键盘布局/大写锁定键行为不起作用,我不明白如何在 CCSM 中重新映射它。

我现在使用的是英国键盘,但我学会了在美国键盘上打字,较小的左 Shift 键让我抓狂。

最佳回答

扩展@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 中的键盘指示灯似乎也有点阅读障碍。登录时滚动锁定指示灯亮起,但滚动锁定指示灯熄灭,数字锁定指示灯熄灭,但数字锁定指示灯亮起。点击左侧的 Ctrl 键似乎可以解决此问题,我不确定这是否与我使用 KVM 切换器有关(这是可能的)

注意:进一步的测试表明,即使没有 KVM 开关,NumLock indicator light is flaky 也必须轻按两次才能与 NumLock 重新同步。如果您一直开着它,您可以忽略灯光,或者如果它打扰您,您可以轻按两次以使其重新同步。为什么会发生这种情况可能是新问题的基础…

解决原始问题的另一个简单的方法是简单地获取 inexpensive US keyboard 并使用美国键盘映射。

资料来源:@Zacharee1 对 /usr/share/X11/xkb/symbols/pc 的回答和分析以及反复试验

次佳回答

您可以通过调整 How to change CapsLock key to produce \u201ca\u201d? 来达到目的(例如)。

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

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

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

remove Lock = Caps_Lock
add Shift = Caps_Lock

不管怎样,这些行都会进入文件 ~/.Xmodmap 。通过使用 xmodmap ~/.Xmodmap 加载它进行测试;在默认环境下登录时会自动读取该文件(至少在 Gnome 时代是这样)。

第三种回答

忽略我之前失败的回答尝试,我发现了一些东西可以将大写锁定完全转换为左移。无需切换,我认为它很持久,而且非常简单。

首先,在介绍如何更改它之前,我建议先进行备份。

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

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

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

/usr/share/X11/xkb/symbols/pc

找到如下所示的片段(它位于顶部附近,对我来说是第 22 行):

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

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

编辑

key <CAPS>  {   [ Caps_lock             ]   };

成为

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

(Shift_L, 后面的 Caps_Lock 可能是不必要的。)

重新启动显示管理器(通常是 sudo service lightdm restart ),此时 capslock 键将变为左移键。(注意:我的测试机使用 GNOME,因此我必须重新启动 gdm 。但是,这导致后备 TTY 出现一些奇怪的闪烁,并且 gdm 从未重新启动。我不得不完全重新启动。)

我实际上已经测试过这个,并且可以确认它有效。

改编自 Permanent xmodmap in Ubuntu 13.04

第四种回答

对于 14.04

one-liner:

xmodmap -e 'keycode 66=Shift_L'

但是,在意外情况下 66 不是正确的键码,首先在控制台中运行 xev 并按 CapsLock 。然后你会看到类似以下内容:

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

正确的键码是 XX 中指示的键码。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14579.html,未经允许,请勿转载。