我想交换一些键,比如键盘上的 Home 和 End。我使用 xmodmap 实现了这个功能,但每次我的电脑进入睡眠状态时,这个功能都会恢复,而且有些应用程序(例如 VSCode)不尊重这一点。
有没有办法永久交换密钥并让每个应用程序都能正确检测?
我正在使用 Ubuntu 20.04。
答案1
事实证明,您可以在 Linux 内核中重新映射按键。
- 确定扫描代码您要重新映射的键的值为其他键。这将是一个十六进制数,您可以在中看到它
sudo showkey -s
。请注意,程序将发出按键事件和释放事件的代码。假设我想更改 0xe021 键的行为(键盘上的计算器)。 - 确定关键代码您希望按键表现为的按键。这将是一个十进制数,您可以使用获取它
sudo showkey -k
。请注意,程序将发出按键事件和释放事件的代码。假设我想要另一个“107”键(键盘上的 End)。 - 问题
sudo setkeycodes e021 107
,附上您的代码。 - 要使它永久生效,您必须在每次以 root 身份启动后运行它。您可以使用 crontab 解决它。运行
sudo crontab -e
并将上面的命令放在文件末尾(不使用 sudo 但使用绝对路径):/usr/bin/setkeycodes e021 107