如何使Caps Lock键像另一个Shift键一样起作用?
关于重新分配它或让它启动自定义命令,这里有很多问题。我只希望它像另一个Shift键一样工作。我不希望任何其他键改变它们的功能,仅此而已。
键盘布局/大写锁定键行为无法实现,我不了解如何在CCSM中重新映射它。
我现在正在使用英国键盘,但是我学会了在美国键盘上打字,较小的左Shift键是“驱动螺母”。
xmodmap
不起作用。
如何使Caps Lock键像另一个Shift键一样起作用?
关于重新分配它或让它启动自定义命令,这里有很多问题。我只希望它像另一个Shift键一样工作。我不希望任何其他键改变它们的功能,仅此而已。
键盘布局/大写锁定键行为无法实现,我不了解如何在CCSM中重新映射它。
我现在正在使用英国键盘,但是我学会了在美国键盘上打字,较小的左Shift键是“驱动螺母”。
xmodmap
不起作用。
Answers:
扩展@ 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指示灯也呈薄片状,必须轻按两次才能与NumLock保持同步。两次使其恢复同步。为什么发生这种情况很可能是新问题的基础...
解决您原始问题的另一种简单方法是简单地购买便宜的美式键盘并使用美式键盘映射。
资料来源:@ Zacharee1答案和分析/usr/share/X11/xkb/symbols/pc
以及试错测试
Shift_L
就足以完全禁用capslock。
您可以通过改编如何更改CapsLock键以产生“ a”的方式到达那里。(例如)。
Lock
从Caps Lock键中删除(= Caps Lock)修饰符,并声明此键发送了Shift_L
keyym。
remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L
或者,您可以删除Lock
修饰符并添加Shift
修饰符。
remove Lock = Caps_Lock
add Shift = Caps_Lock
无论哪种方式,这些行都会进入file ~/.Xmodmap
。通过加载进行测试xmodmap ~/.Xmodmap
; 在默认环境下登录时(或至少在Gnome时代),将自动读取文件。
xmodmap -e "clear Lock" -e "keysym Caps_Lock = Shift_L"
和撤消setxkbmap -option
,该命令不会写入~/.Xmodmap
文件,但是可以在必要时使用,并添加到启动应用程序中。很好的答案!
忽略我先前尝试回答失败的尝试,我发现了使大写锁定完全变成左移的东西。无需切换,我认为它是持久的,而且非常简单。
首先,建议您进行备份,然后再介绍如何进行更改。
跑 sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak
现在有了备份,让我们开始编辑。
使用您喜欢的文本编辑器以根用户身份编辑此文件:
/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 ] };
代替。(Caps_Lock
之后Shift_L,
可能是不必要的。)
重新启动显示管理器(通常为sudo service lightdm restart
),此时大写锁定将保持左移。(注意:我的测试机使用GNOME,因此我必须重新启动gdm
。但是,这在后备TTY中引起了一些奇怪的闪烁,并且gdm
从未重新启动。我必须完全重新启动。)
我实际上可以测试这一点,并且可以确认它是否有效。
/usr/share/X11/xkb/symbols/capslock
也干扰了Num Lock。16.04有所不同,例如Num Lock灯在启动时一直保持点亮,但现在在LightDM登录时熄灭。当我测试您的解决方案时,它的确将Caps Lock更改为Shift,但是当我第一次按Caps Lock时,Num Lock会关闭,并且我必须按Num Lock两次才能将其重新打开(仅第一次)。奇怪 真的很感谢到目前为止的帮助。
xkbset nullify lock
吗?
Shift_L
投入Shift_L, Caps_Lock
。确保括号对齐。
对于14.04
单线:
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
。
Xmodmap trick no longer works and xkb handles this now.
。
xev
将它们视为不同的键。