我有点困惑为什么这没有按预期工作。我的目标是将大写锁定键映射到控制。我正在使用debian。为此,我使用以下命令
/usr/bin/setxkbmap -layout "$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')" -option ctrl:nocaps
如果我通过终端执行它,它工作得很好。但是,我希望在启动或登录时完成此操作,并始终手动执行。我尝试将此命令添加到 XFCE 中的自动启动会话应用程序中,并将该命令放入我的~/.profile
. 但是,这两种选择似乎都不起作用。我仍然必须手动执行它(在正确映射之后)。我究竟做错了什么?
该
setxkbmap
命令在添加后没有 的原因是该文件仅在登录shell 启动~/.profile
时才由您的 shell(可能是 bash)读取。在终端仿真器中不启动登录 shell。如果您使用,则添加到您的,但系统上有更好的方法可用- 修改您的部分,例如:X
setxkbmap
~/.bashrc
Bash
debian
XKBOPTIONS
/etc/default/keyboard
现在按照以下说明运行此命令
man 7 keyboard
:您甚至不必重新启动
lightdm
。下次lightdm
启动时/etc/default/keyboard
将自动应用设置。我刚刚在我的Debian 9.4
.我认为更好的方法是在你的主目录中创建一个文件 .xsessionrc 。
每次开始会话时都会读取此文件。
这样,只有您的会话受到影响。
其他用户不明白。
在 Debian 和 NetBSD 上没问题。