永久更改 xkb 键绑定?

mil*_*ast 6 keyboard x11 xkb keyboard-layout

我有一个自定义键盘布局位于/usr/share/X11/xkb/symbols/us. 每次更新时,该文件都会更新为标准键盘布局。有没有一种方法可以永久更改此设置,或者可以在用户空间中更改此设置而不是发行版级别的配置?

如果有更好的方法来处理自定义键盘布局,请告诉我。据我所知,解决这个问题的最佳方法是使用 xkb 符号文件,并且没有太多关于这些的文档。

谢谢。

Gui*_*ern 3

建立一个目录树,/home/<user>/其下的结构与/usr/share/X11/xkb/. 换句话说:

\n\n
$ tree -L 1\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 compat\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 geometry\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keycodes\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rules\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 symbols\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 types\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,将相关文件放入compatsymbols等中。显然您不需要\xe2\x80\x99 不需要创建空目录,只需创建您需要的文件的目录。

\n\n

然后考虑将符号文件重命名为不同于us. 可能有一种方法可以消除您自己的us符号文件与 下的符号文件的/usr/share/X11/xkb/歧义,但选择一个不会出现在 中的新名称会更容易/usr/share/X11/xkb/symbols/mine会做得很好。

\n\n

让\xe2\x80\x99s 表示您将自定义 Xkb 目录放在 处,/home/<user>/my-xkb并且您的自定义符号文件名为mine.

\n\n

如果您使用setxkbmap(1)设置布局,则只需更改它即可打印其输出并将其通过管道传输到xkbcomp(1). 因此,如果这是您的setxkbmap调用:

\n\n
setxkbmap mine\n
Run Code Online (Sandbox Code Playgroud)\n\n

您需要将其更改为:

\n\n
setxkbmap mine -print |\n    xkbcomp -I"/home/<user>/my-xkb" - "$DISPLAY"\n
Run Code Online (Sandbox Code Playgroud)\n