如何阻止 Gnome 覆盖 XKB 布局

Xen*_*Xen 5 gnome keyboard keyboard-layout xkb 18.04

我创建了一个 udev 规则来设置 USB 键盘的布局:

ACTION=="add", ATTRS{idVendor}=="0e6a", ATTRS{idProduct}=="030c", ENV{XKBMODEL}="pc105", ENV{XKBLAYOUT}="us", ENV{XKBVARIANT}="dvorak", ENV{XKBOPTIONS}=""
Run Code Online (Sandbox Code Playgroud)

它适用于仅启动终端的 X 调试会话。USB 键盘获得布局,笔记本电脑键盘没有。

它在 Gnome(非 Unity)会话中不起作用。外部键盘的dk布局与笔记本电脑键盘相同。

我都试过了

gsettings set org.gnome.settings-daemon.plugins.keyboard active false
Run Code Online (Sandbox Code Playgroud)

gsettings set org.gnome.desktop.input-sources sources '[]'
Run Code Online (Sandbox Code Playgroud)

正如各种人所建议的那样,但没有运气。

use*_*.dz 2

更新,这仅适用于 Xorg 会话,不适用于 Wayland 会话)

它与Unity 的设置守护程序版本 1相同,现在更改为 Gnome(设置守护程序版本 3)

有时,我认为开发人员只是在与不想更改或需要低级定制的用户作斗争。Gnome 创建了额外的层。

禁用 Gnome 设置守护程序的键盘插件

  1. 只需移动/usr/lib/gnome-settings-daemon/gsd-keyboard或(在较新版本中)/usr/libexec/gsd-keyboard其他地方即可禁用它。

    如果有人寻找其他插件,请检查:

    dpkg -L gnome-settings-daemon
    
    Run Code Online (Sandbox Code Playgroud)
  2. gnome-settings-daemon需要重新启动或只是重新启动。

副作用: Gnome 布局 GUI/快捷方式将不起作用。也许,最好使用较旧的 X switch 应用程序或setxkbmap ...命令快捷方式。