我使用的是 Apple 键盘,与其他键盘相比,它有一些麻烦。即 Alt_L 和 Super_L 键互换了,bar 和 less 键也互换了(“|”和“<”)。
我编写了一个 Xmodmap 文件来交换密钥:
keycode 49 = less greater less greater onehalf threequarters
keycode 64 = Super_L NoSymbol Super_L
keycode 94 = bar section bar section brokenbar paragraph
keycode 108 = Super_R NoSymbol Super_R
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R Meta_R Alt_R Meta_R
xev
我通过使用默认的 modmap 来识别按键来实现这一点xmodmap -pke
并交换键码来实现这一点。xev
现在可以识别出我的所有按键都是正确的,这太棒了!我还可以使用正确的按键来输入横线和小于号。(我在 askubuntu 上遵循了这个答案:https://askubuntu.com/q/24916/52719)
但似乎变化并不大。例如,Compiz 设置管理器中的 Super 键现在已损坏。涉及 Super 键的快捷键均不起作用(但 Alt 键可以)。此外,侏儒不关注 xmodmap 中的变化,我无法打开侏儒如果我使用任何重新映射的键,窗口就会不再显示。
总而言之,一切都崩溃了。
我想要一种更深入的方式来告诉 Ubuntu(或任何其他 Linux 发行版)键盘上的哪个键是哪个。有没有办法直接编辑键盘布局?我使用的是挪威语博克马尔语键盘布局。它是否位于我可以编辑的某个文件中?
任何评论、以往的经历或相关的零散想法都将不胜感激 -
谢谢
答案1
经过几个小时的尝试,我终于让它工作了。我找到了将 evdev 扫描码转换为 X11 下的 xfree86 键码的文件,即/usr/share/X11/xkb/keycodes/evdev
。我以 root 身份打开该文件,并使用默认 xmodmap 设置作为参考移动键码(xmodmap -pke
)。我的最终编辑非常简单:
<LSGT> = 49; // This was 94
<TLDE> = 94; // This was 49
<LWIN> = 64; // This was 133
<LALT> = 133; // This was 64
<RWIN> = 108; // This was 134
<RALT> = 134; // This was 108