如何更改CapsLock键以生成“a”?

键入时我经常按下CapsLock键而不是键。 (QWERTZU键盘)这很烦人,因为当我意识到我按错键时,我将不得不删除多个字符/行的文本,并以正确的forms重写它们。

我正在寻找一种方法来防止这种情况发生。

我发现有可能在键盘布局选项中 禁用 CapsLock键。 但在我的情况下,这意味着我不会写任何东西而不是写一个。

肯定 – >我不必重写整行,而只需要重写一个字符

否定 – >我碰到错误的键并不是那么明显,因为丢失的字符不能被视为大写的文本行。

因此,我更愿意将CapsLock映射到a 。 因此,当命中CapsLock时 ,将写入a字符。

肯定 – >如果我点击CapsLock而不是我得到输出我实际上想要输入。

否定 – >如果我在任何其他情况下点击CapsLock ,我会得到a角色。 因为我没有故意使用CapsLock键,所以这不会造成问题。 (我想,或者是吗?)

我的问题:

  1. 那我怎么换成一个
  2. 有没有这种情况可能会危险/引发不必要的行为?

具体来说,我不知道如何将CapsLock更改为a ,因为我不记得键码。 我会稍晚发现它。 但一般来说,您可以使用xmodmap (和.Xmodmap )来更改键映射。 GNOME第一次检测到.Xmodmap文件时,它会询问您是否要始终加载它,然后进行设置。

我也认为大写锁定是愚蠢的。 但是,关键位置很有用。 我喜欢将它映射到Control键。 我经常使用控制装置,因为我的小指经常在那个尴尬的位置上不停地向下伸展。 正如我后来发现的,历史上Control就是Caps Lock目前的地方。 无论如何。 使用以下行在主目录中创建名为.Xmodmap的文件:

 remove Lock = Caps_Lock keysym Caps_Lock = Control_L 

要使这些更改立即生效,请运行xmodmap ~/.Xmodmap

您可以使用xev自己找到xev 。 变为a的键码为38或hex0x61。 所以你的.Xmodmap可能是:

 remove Lock = Caps_Lock keysym Caps_Lock = 0x61 

我强烈建议阅读手册页,很多有趣的东西。

在查看man xmodmap ,事实certificate有一种幂等方式来定义它:

 clear Lock keysym Caps_Lock = Caps_Lock Control_L 

重新启动X后,您应该能够重复运行xmodmap ~/.Xmodmap而不会出现任何“bad keysym”错误。

更新 :不幸的是,这似乎不是可移植的和幂等的 。