如何在 X.org 中自动禁用笔记本电脑的内置键盘?

如何在 X.org 中自动禁用笔记本电脑的内置键盘?

发行版和 X.org 版本信息

我正在使用 Ubuntu 12.10 和 xserver-xorg/quantal 1:7.7+1ubuntu4。

禁用 X11 中的内置键盘

我有一台带有内置键盘的笔记本电脑,该键盘不再识别某些字母。我目前通过打开终端并运行以下 shell 函数来禁用内置键盘:

disable_keyboard () {
  xinput --set-int-prop $(
    xinput --list |
    ruby -ane 'if /AT.*keyboard/ then puts $_.match(/(?<==)\d+/) end'
  ) "Device Enabled" 8 0
}

这是通过禁用内置的AT 翻译套件 2 键盘同时允许我的外部群光 USB 键盘继续工作。然而,我真的希望这在 X11 会话期间自动发生。

我尝试修改我的 X.org 配置,如下所示:

# /etc/X11/xorg.conf.d/disable_keyboard
Section "InputClass"
    Identifier      "disable built-in keyboard"
    MatchIsKeyboard "on"
    MatchProduct    "AT Translated Set 2 keyboard"
    Option          "Ignore"    "on"
EndSection

然而,这要么是 X11 启动时没有被获取,要么它不是正确的咒语。如何正确配置X11来使用仅有的USB键盘?

答案1

使用 InputClass 禁用内置键盘和触控板

人们可以通过设置来禁用内置设备忽略输入类中的选项真的或者。通常可以从 收集与设备匹配的必要信息/var/log/Xorg.0.log

我选择将禁用部分放置在已存在的 evdev 配置文件中,因为在我的系统上,两个设备都使用 evdev 驱动程序。这些部分可以很容易地转到其他地方,但我不确定匹配规则的优先级,并决定通过将规则放置在包含一行的其他设备上方的同一文件中来确保安全Driver "evdev"

# /etc/X11/xorg.conf.d/10-evdev.conf

Section "InputClass"
        Identifier      "Built-In Touchpad"
        MatchIsTouchpad "on"
        MatchProduct    "SynPS/2 Synaptics TouchPad"
        Option          "Ignore" "true"
EndSection

Section "InputClass"
    Identifier          "Built-In Keyboard"
    MatchIsKeyboard     "on"
    MatchProduct        "AT Translated Set 2 keyboard"
    Option              "Ignore" "true"
EndSection

相关内容