我想更改虚拟终端(例如tty CtrlAltF3)中的Caps Lock行为,使其充当Control修改器。理想情况下,我也希望它在单独按下时充当Escape,但事实证明,仅获得Control行为非常困难。
我正在运行Ubuntu 17.04。我已经阅读并尝试了许多方法来进行此更改,但是似乎没有一种方法适用于我所描述的系统。我觉得systemd在其中起作用,但细节尚不清楚。
我已经写了一个文件,caps_control.kmap
将大小写映射到控件,
keymaps 0-255
keycode 58 = Control
如果我loadkeys caps_control.kmap
从虚拟控制台运行,则可以运行。现在,我想让它在启动/登录/其他时自动加载...
我发现引用利用/etc/rc.local
这样做,但我的系统有没有这样的文件,但它确实有几个目录一样/etc/rc0.d/
,/etc/rc1.d/
...
听起来好像因为Ubuntu 17使用sytemd,所以我应该使用它localectl
来管理这种事情,但是我不清楚如何做到这一点。例如,
$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.
localectl
提及/etc/locale.conf
和的手册页/etc/vconsole.conf
在我的系统上都不存在。
我完全茫然。谁能指出我正确的方向?
您是否需要此更改才能对所有用户或您自己的用户都有效?
—
acer
@acer两种方式都适合我,因为我确实是这台机器上的唯一用户。
—
伊凡
嗯...您在〜/ .profile中添加一行,
—
acer
loadkeys caps_control.kmap
该行将在您登录时执行
@acer
—
伊凡(Ivan)
loadkeys
从〜/ .profile 调用似乎有问题。登录时出现错误消息“无法获取引用控制台的文件描述符”。