我决定将 caps-lock 键用作 ctrl 键,因此我将其添加XKBOPTIONS="caps:ctrl_modifier"
到我的/etc/defaults/keyboard
文件中。该文件目前包含以下内容:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="nodeadkeys"
XKBOPTIONS="caps:ctrl_modifier"
BACKSPACE="guess"
此外,重启后$ setxkbmap -query
返回
rules: evdev
model: pc105
layout: us
variant: nodeadkeys
options: caps:ctrl_modifier
正如预期的那样(pc105
因为它最初是德语键盘)。
但是,无论出于什么原因,这都无法按照我的意愿设置大写字母的行为...如果我尝试手动运行,$ setxkbmap -option "caps:ctrl_modifier"
我会得到
Error loading new keyboard description
;无论我写什么选项,我都会得到相同的错误。我还注意到,如果我$ setxkbmap -layout us
之后自己运行,然后$ setxkbmap -option "caps:ctrl_modifier"
再次运行,大写字母现在按预期工作。
问题:我做错了什么?我该如何做对?
答案1
好的,我找到了问题的根源:它使用了一个额外的键盘(也许这与它是无线的有关,不确定)。
如果我按照说明手动修复问题后重新插入键盘,我又会遇到同样的情况,$ setxkbmap -option
键盘不工作,大写字母不起作用。
显然,在检测到键盘之前会读取配置或类似情况。现在的问题是如何修复此问题,但我想谷歌搜索会有所帮助。
现在我可以用它写一个小脚本
setxkbmap -layout us -option caps:ctrl_modifier
里面,并在重启后运行它(或者甚至把它放进去.bashrc
)。