有条件地交换键盘上的按键(Debian、X11、KDE ​​Plasma)

有条件地交换键盘上的按键(Debian、X11、KDE ​​Plasma)

我的 Dell Latitude 上有这种键盘布局

键盘布局

HomeEnd键映射到复合键确实让我很苦恼Fn。所以我设法通过添加这个来交换PageUpwithHomePageDownwith (实际上,这是一个德语变体)End/usr/share/X11/xkb/symbols/de

xkb_symbols "basic" {
  ...
  key <HOME> {    [  Prior        ]   };
  key <PGUP> {    [  Home         ]   };
  key  <END> {    [  Next         ]   };
  key <PGDN> {    [  End          ]   };
  ...
}

它按预期工作。然而,我经常在笔记本电脑和办公桌之间切换,使用扩展坞和完整的键盘,这种黑客行为很烦人。

操作此 xkb 符号文件需要重新启动(或至少重新启动桌面环境)。是否有可能在运行时切换行为?甚至可能是自动化的,就像 udev 钩子看到 USB-C 底座一样?

答案1

您可以使用 在布局之间切换setxkbmap。例如,我使用 Dvorak 布局,我将您的更改应用到我的本地 /usr/share/X11/xkb/symbols/de并切换到德语布局:

setxkbmap de

我检查了 PGUP 是否作为 Home 工作,确实如此。然后我又切换回德沃夏克:

setxkbmap dvorak

如果您想在原始布局和自定义布局之间切换,我认为最好的方法是从原始布局文件中删除您在问题中显示的 4 行de并创建一个新的自定义布局文件,例如 /usr/share/X11/ xkb/symbols/de-modified 添加了修改。在两种布局之间切换无需重新启动,也无需重新启动 X:

setxkbmap de # PGUP wouldn't work as home
setxkbmap de-modified # PGUP would work as home

相关内容