1. 程式人生 > >Linux之禁用筆記本鍵盤

Linux之禁用筆記本鍵盤

操作 關閉 使用 sem 腳本文件 一次 遍歷 NPU 字符串

禁用筆記本鍵盤使用外接鍵盤

執行效果:執行一次腳本,筆記本鍵盤和外接鍵盤二存一
手動執行腳本,需要自動執行請百度

使用條件: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
4. 鼠標點擊腳本文件就可以執行 `keyboard.sh`腳本文件了

Linux之禁用筆記本鍵盤