Linux下禁用笔记本键盘

匿名 (未验证) 提交于 2019-12-02 21:56:30

使用方式:手动执行
执行效果:执行一次脚本,插入外设键盘时,禁用笔记本键盘;未插入外设键盘时,使用笔记本键盘
所需软件包:xinput
所需变量:外设键盘名,笔记本键盘名

使用步骤

  1. 安装xinput 软件
    ubuntu终端输入 sudo apt-get install xinput
    centos终端输入sudo yum install xinput
    其他linux系统自行百度安装xinput

  2. 查找外设键盘名

    1. 未插入外设键盘,终端输入xinput
    2. 插入外设键盘,终端输入 xinput
    3. 对比输出文本中多出的部分,就是外设键盘名。如下面的SEMICO USB Keyboard

    ps:外设键盘名可能有多个id,无需担心,它们的名称都一样的

  3. 新建脚本keyboard.sh,内容如下,必须在步骤2中手动查找外设键盘名,并在keyboard.sh中修改外设键盘名

    ps:若想多场景使用,可以参照扩展脚本 外设键盘B的方式修改

#!/bin/bash  # 笔记本键盘名     #默认是这个,如果不是,使用xinput中判断您的笔记本键盘名 KEYBOARD_DEV='AT Translated Set 2 keyboard'  # 外设键盘名  #通过步骤2获取外设键盘名,该变量必须修改 USB_KEYBOARD_DEV='SEMICO USB Keyboard'  #扩展脚本 #在A场合使用外设键盘A,在B场合使用外设键盘B #实现不同场合脚本均适用 #外设键盘B名仍然通过步骤2获得 USB_KEYBOARD_DEV_B='HID 04f3:0103'   #设置设备状态函数 #使用格式:函数名 使用参数 设备名 function setStatus(){     #获取传入设备名的id值的字符串。字符串格式:每行一个id,全部id在一个字符串     ID_Str=`xinput list | grep "$2" | awk  -F 'id=' '{print $2}' | awk '{print $1}' `     #设置分隔符为换行     IFS=$'\n';     #每行一个存进数组中     IDS=($ID_Str)      #遍历ID 并设置设备状态     for elem in ${IDS[@]}      do          xinput $1 $elem     done }   #外设键盘是否插入 #有插入字符串值不为空 #没插入字符串值为空 EXIST_USB_KEYBOARD=`xinput list | grep "$USB_KEYBOARD_DEV"`  #扩展脚本 #如果外设键盘B存在,则 EXIST_USB_KEYBOARD_B 的值不为空 if [ "" != "$USB_KEYBOARD_DEV_B" ] then EXIST_USB_KEYBOARD_B=`xinput list | grep "$USB_KEYBOARD_DEV_B"` fi   #扩展脚本 #增添部分   -o "" != "$EXIST_USB_KEYBOARD_B" if [ "" != "$EXIST_USB_KEYBOARD" -o "" != "$EXIST_USB_KEYBOARD_B" ] then     #若外设键盘存在,则关闭笔记本键盘,并开启外接键盘     setStatus --disable $KEYBOARD_DEV     setStatus --enable $USB_KEYBOARD_DEV     #扩展脚本  开启外设键盘B     setStatus --enable USB_KEYBOARD_DEV_B     echo "操作成功,愉快地禁用了笔记本键盘" else     #若外设键盘不存在,则开启笔记本键盘,并关闭外接键盘     setStatus --enable $KEYBOARD_DEV     setStatus --disable $USB_KEYBOARD_DEV     #扩展脚本  关闭外设键盘B     setStatus --disable USB_KEYBOARD_DEV_B     echo "操作成功,开启笔记本键盘" fi
  1. 最后授予keyboard.sh脚本执行权限chmod +x keyboard.sh,使用时,点开脚本执行即可。

    ps:重启后该脚本失效,若想重新后该脚本仍然生效,请将其添加到开机脚本

欢迎在下方留言,转载请声明来处
好好学习,天天向上

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!