linux禁用笔记本键盘,禁用笔记本键盘 Linux

  • Post author:
  • Post category:linux


禁用笔记本键盘 & 使用外设键盘

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

使用步骤:

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

查找外设键盘名

未插入外设键盘,终端输入xinput

插入外设键盘,终端输入 xinput

对比输出文本中多出的部分,就是外设键盘名。如下面的SEMICO USB Keyboard

↳ SEMICO USB Keyboard id=17 [slave keyboard (3)]

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

新建脚本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

最后授予keyboard.sh脚本执行权限chmod +x keyboard.sh,使用时,点开脚本执行即可。

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

欢迎在下方留言,该随笔为原创,转载请声明来处 好好学习,天天向上

原文出处:https://www.cnblogs.com/whiteHand/p/10714759.html