美文网首页
Linux 禁用/启用笔记本键盘

Linux 禁用/启用笔记本键盘

作者: 不落阁 | 来源:发表于2021-07-01 09:27 被阅读0次

shell脚本如下:

#!/bin/bash
echo 'xinput list' 
xinput list

if [ ! -n "$1" ]; then
    echo "用法:./disnbkb.sh [id] [switch on/off]"
    echo "  [id] : 参考列表中 id=[id]"
    echo "  [switch on/off] : 1 = switch on, 0 = switch off"
else
    echo "指定笔记本键盘id="$1
    keyboardId=$1
fi

if [ ! -n "$2" ]; then
    iswitch=0
else
    iswitch=$2
    if [ $2 -eq 1 ]; then
        echo ":启用"
    elif [ $2 -eq 0 ]; then
        echo ":禁用"    
    else
        echo ":未知"
    fi
fi

# 有参数才执行,无参数只打印列表
if [ -n "$1" ]; then
    xinput set-prop $keyboardId "Device Enabled" $iswitch
fi

上述脚本保存为 didswitch.sh

以Ubuntu为例 ,在终端执行 ./didswitch.sh,可打印出外设列表如下:

~$ ./didswitch.sh
xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Keyboard Mouse          id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=15   [slave  keyboard (3)]
    ↳ MOSART Semi. 2.4G Keyboard Mouse          id=16   [slave  keyboard (3)]
    ↳ MOSART Semi. 2.4G Keyboard Mouse          id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
用法:./disnbkb.sh [id] [switch on/off]
  [id] : 参考列表中 id=[id]
  [switch on/off] : 1 = switch on, 0 = switch off

要禁用笔记本自带键盘,从上述列表找到 AT Translated Set 2 keyboard(不同笔记本名称可能不同),对应id=13

执行 ./didswitch.sh 13 0

~$ ./didswitch.sh 13 0
xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Keyboard Mouse          id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=15   [slave  keyboard (3)]
    ↳ MOSART Semi. 2.4G Keyboard Mouse          id=16   [slave  keyboard (3)]
    ↳ MOSART Semi. 2.4G Keyboard Mouse          id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
指定笔记本键盘id=13
:禁用

执行后笔记本自带的键盘就不可用了,外接键盘再执行一次 ./didswitch.sh 13 1即可恢复使用。

注意:系统重启禁用的键盘会恢复正常,如要永久禁用则需要设置开机自动运行。

相关文章

网友评论

      本文标题:Linux 禁用/启用笔记本键盘

      本文链接:https://www.haomeiwen.com/subject/bdqjultx.html