Temporarily disable Linux keyboard, touchpad, mouses input with libinput scripts.
暫時停用/禁用Linux的輸入裝置。
考慮以下二種情況:
你將筆電接到外接顯示器,又外接了鍵盤,如何將內部鍵盤停用呢?能不能讓Linux不要收到特定裝置的輸出訊號。
你拿的是兼具觸控螢幕的Linux平板,如何在使用觸控螢幕的時候停用鍵盤輸入防止誤觸?
過去常聽人說用xinput
指令攔截,但是那僅限X11環境使用,現在是Wayland的時代了,需要用新的方法做事,那就是「libinput」
現在許多Linux系統都依賴這個玩意來控制輸入裝置,舉凡鍵盤,滑鼠,觸控板,觸控螢幕都是由它負責。
根據
libinput官方文件,只要設定udev規則,傳入LIBINPUT_IGNORE_DEVICE
的數值,我們就能達成停用裝置的目的。
不過,手動設定規則停用很麻煩呢,所以我使用Gitlab開發者林博仁製作的指令稿 Linux input device management utilites來開關輸入裝置。
- 將指令稿安裝到
/usr/local/bin
git clone https://gitlab.com/brlin/linux-input-utils.git
sudo mv linux-input-utils/bin/* /usr/local/bin
- 然後我們就可以用這個指令稿列舉Linux上的所有libinput裝置:
sudo enumerate-input-devices
- 所有的裝置都以一個數字顯示,像我的平板就顯示了觸控螢幕、觸控板、鍵盤裝置
/sys/class/input/input1:
Goodix Capacitive TouchScreen
/sys/class/input/input5:
HID 1018:1006
/sys/class/input/input10:
HID 1018:1006 Mouse
/sys/class/input/input11:
HID 1018:1006 Touchpad
- 要停用鍵盤,就是將數字傳過去:
sudo disable-input-devices 5
- 這樣鍵盤就無法打字輸入了!啊…那我要怎麼還原…?幸好我還有觸控螢幕可以輸入!再不濟還有SSH。只要輸入以下指令就可以解除停用:
sudo enable-input-devices 5