使用“setxkbmap”交换 esc,但工作不一致

使用“setxkbmap”交换 esc,但工作不一致

~/.bashrc我目前在我的to swapcaps lockesc:中有以下行/usr/bin/setkbmap -option "caps:swapescape"。有时,当我启动计算机时,它可以完美运行。其他时间caps lock仍按 和caps lock一样esc工作esc

这里可能发生了什么?这条线是否会在每次启动时恢复映射,因此它会交替工作和不工作?

谢谢你!如果您有更好的选择,请告诉我。我正在运行 Debian (Pop!_os)。

答案1

~/.bashrc仅当您打开终端模拟器时才会运行。要让它在登录时自动运行,您需要将其放在其他地方(取决于您的登录方式)。对我来说,这将是在~/.xinitrc.

根据Debian 维基:Graphical logins do not read a shell's startup files (/etc/profile and ~/.profile and so on) by default, but you as a user may choose to create a ~/.xsessionrc file which does this.

答案2

可能还有另一个问题。如果您正在使用setxkbmap并且之前设置了大写锁定如果您不重置选项,它将堆叠选项(使用-option '',请参阅man setxkbmap)。提示:使用冗长的-v显示选项的选项,又名符号设置

例子

激活映射大写锁定以转义:

$ setxkbmap -option caps:escape -v
...
symbols:    ...+capslock(escape)+...
...

不,让我们撤消映射(错误的方式)

$ setxkbmap -option caps:capslock -v
...
symbols:    ...+capslock(capslock)+capslock(escape)+...
...

如您所见,旧选项仍然存在。清除全部它使用以下命令的选项:

$ setxkbmap -option '' -v
...
symbols:    ...
...

相关内容