Answers:
您可以执行第一个操作(映射Caps Lock到Esc),但不能执行第二个操作。
简单说明: Caps Lock并非设计为在按下时会执行某些操作。
Caps Lock是一个锁定键,而键,如Ctrl,Alt和Shift是修饰键。
从其名称可以明显看出,修饰键可修改下一个按下的键的功能,而锁定键则用作切换开关以打开或关闭某些特定功能。
现在,由于它 Caps Lock 是一个锁键,因此如果不将其映射到一个修改键,就无法像修改键一样工作。 Caps Lock本身不能用作修改键。
我在Mac上安装了此设置,并且试图找到一种没有运气的Ubuntu方法。
好吧,现在正在工作。感谢Tungd向我致谢xcape。我所做的确实很简单明了。
在“系统偏好设置”>“键盘布局”>“选项...”>“ Ctrl键位置”下,我选中了“ Caps Lock as Ctrl”。
xcape -e'Control_L =转义'
完成后,大写锁定在用作修饰符时用作Ctrl,而在单独按下时则用作Esc(如xcape README文件中所述,有几百毫秒的轻微延迟,因此它仍然不如使用Mac的Mac解决方案最佳KeyRemap4MacBook。)
gnome-tweak-tool
映射Caps Lock
到Ctrl
,因为没有Keyboard layout
在System Settings
在Ubuntu 14.04。后来xcape -e 'Control_L=Escape'
没有用,但是在使用后,xcape -d
我发现Caps Lock
生成键码66并分别重新映射它:xcape -e '#66=Escape'
。
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
我也在寻找这个。截至一周前,我发现自己的局部解决方案是xmodmap
:
add Control = Caps_Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
这当然不能完美运行,当我按下CapsLock时,它可以同时有效地发送Escape和Ctrl,但是我对此感到满意。
最后,我发现了这个小实用程序https://github.com/alols/xcape。因此,现在我可以简单地将CapsLock重新映射为Ctrl,然后让xcape完成它的工作。
编辑:修复了此问题对于大多数智能(较新)的显示管理器。
根据Per Louis和Sergiy的评论,我想出了这个解决方案,该解决方案在具有LightDM和Unity的Ubuntu 16.04(Xenial)上适用于我。
我将以下代码行放入.xprofile
主目录中的文件中。
setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Caps_Lock=Escape' &
尾部的&将xcape命令放到后台,这样它就不会阻塞您的会话。setxkbmap立即进行更改。
Sergiy:
我已经使用gnome-tweak-tool将Caps Lock映射到Ctrl,因为Ubuntu 14.04上的“系统设置”中没有键盘布局。然后xcape -e'Control_L = Escape'不起作用,但是在使用xcape -d之后,我发现Caps Lock生成键码66并分别重新映射它:xcape -e'#66 = Escape'。– Sergiy Byelozyorov 14年9月4日在10:08
路易斯:
根据此博客文章,可以单独使用xcape来做到这一点:setxkbmap -option'caps:ctrl_modifier'xcape -e'Caps_Lock = Escape'setxkbmap -option'caps:ctrl_modifier'xcape -e'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape'– Louis Simoneau 15年8月4日在10:06
安装 xcape
sudo apt-get install xcape
将两行添加到 ~/.bashrc
/usr/bin/setxkbmap -option 'caps:ctrl_modifier'⏎
/usr/bin/xcape -e 'Caps_Lock=Escape' -t 100
注意该部分-t 100
,如果您未设置它,则在使用vim时可能会注意到Esc的延迟。
sudo apt-get install xcape
(typo)
我专门为此目的在C中构建了一个工具,它克服了xcape / xmodmap解决方案的许多问题: