29°

Linux之禁用笔记本键盘

禁用笔记本键盘使用外接键盘

执行效果:执行一次脚本,笔记本键盘和外接键盘二存一
手动执行脚本,需要自动执行请百度

使用条件:xinput, 获悉外接键盘名字

  • 步骤

    1. 安装xinput 软件
      ubuntu系列的命令 sudo apt-get install xinput
      centos系统的命令sudo yum install xinput
      其他的请百度安装xinput

    2. 查找外接键盘名字

      插入外接键盘,终端输入 xinput
      拔出外接键盘,终端输入xinput
      对比多出的部分,就是外接键盘的名字

    3. 新建脚本keyboard.sh,内容如下,需要修改外接键盘的名字为你自己的,然后赋予脚本执行权限chmod +x keyboard.sh

#!/bin/bash
# 笔记本键盘名字   
#一般默认是这个,如果不是,请修改
KEYBOARD_DEV='AT Translated Set 2 keyboard'

# 外接键盘名字    
#使用xinput获悉外接键盘名字,必须修改成自己的外接键盘名字
USB_KEYBOARD_DEV='SEMICO USB Keyboard'


#关闭设备函数
#使用格式:函数名 关闭设备的名字
function setDisable(){
    #获取设备的id值,每行一个id,全部id在一个字符串上
    ID_Str=`xinput list | grep "$1" | awk  -F 'id=' '{print $2}' | awk '{print $1}' `
    #设置分隔符为换行
    IFS=$'\n';
    #每行一个存进数组中
    IDS=($ID_Str) 
    #遍历ID 设置关闭设备
    for elem in ${IDS[@]} 
    do 
        xinput --disable $elem
    done
}

#开启设备函数
#使用格式:函数名 开启设备的名字
function setEnable(){
    #获取设备的id值,每行一个id,全部id在一个字符串上
    ID_Str=`xinput list | grep "$1" | awk  -F 'id=' '{print $2}' | awk '{print $1}' `
    #设置分隔符为换行
    IFS=$'\n';
    #每行一个存进数组中
    IDS=($ID_Str) 
    #遍历ID 设置开启设备
    for elem in ${IDS[@]} 
    do 
        xinput --enable $elem
    done
}



#usb键盘是否插入,有插入字符串就有内容
EXIST_USB_KEYBOARD=`xinput list | grep "$USB_KEYBOARD_DEV"`

if [ "" != "$EXIST_USB_KEYBOARD" ]
then
    #如果外接键盘存在,那就关闭笔记本键盘,并开启外接键盘
    setDisable $KEYBOARD_DEV
    setEnable $USB_KEYBOARD_DEV
    echo "操作成功,愉快地禁用了笔记本键盘"
else
    #如果外接键盘不存在,那就开启笔记本键盘,并关闭外接键盘
    setDisable $USB_KEYBOARD_DEV
    setEnable $KEYBOARD_DEV
    echo "操作成功,开启笔记本键盘"
fi

原文链接:https://www.cnblogs.com/whiteHand/p/10714216.html

全部评论: 0

    我有话说: