如何在 ubuntu 中禁用和启用键盘?
我遇到了一个大麻烦,因为我的桌子上没有足够的空间放置和my keyboard
。some other things
而且不小心按到某个键可能会导致系统出现问题。所以我正在寻找一种方法来锁定我的键盘暂时。当然我不想把键盘从电脑上拔下来,因为太不方便了。
我该怎么办?
xinput-列表
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ CHICONY HP Basic USB Keyboard id=8 [slave keyboard (3)]
↳ HP WMI hotkeys id=10 [slave keyboard (3)]
答案1
答案2
运行xinput -list
并找到所接受答案中提到的 ID AT Translated Set 2 keyboard
。您可能需要xinput
先安装。
我创建了以下脚本,并通过可以用鼠标点击的启动器运行它。每次单击它时,它都会打开或关闭键盘。13
用键盘的 ID 号替换。
#!/bin/bash
if [[ $(<~/.keyboard-status) == "enabled" ]]; then
xinput --disable 13
echo "disabled" > ~/.keyboard-status
else
xinput --enable 13
echo "enabled" > ~/.keyboard-status
fi
答案3
为了自动从命令行启用和禁用笔记本电脑的内部键盘,我编写了一个 shell 脚本供我个人使用,https://github.com/anitaggu/ikbdop。
您还可以在此处找到简短的 YouTube 教程https://youtu.be/LvoIwqFutlg
答案4
我认为这可能会更容易。
在文件末尾添加此函数.bashrc
(或 .zshrc 或 .profile 等)。
handleKeyboard() {
if [ -z "$1" ]; then
DEVICES_STRING=$(xinput --list | grep 'AT Translated Set 2 keyboard' | tr " " " " | tr " " " " | tr " " " ")
while [[ $DEVICES_STRING = *" "* ]]; do
DEVICES_STRING="${DEVICES_STRING// /}"
done
DEVICES_STRING=$(echo "$DEVICES_STRING" | cut -d" " -f 7)
DEVICES_STRING="${DEVICES_STRING//id=/}"
DEVICE_ID="$DEVICES_STRING"
else
DEVICE_ID=$1
fi
FILE_PATH=~/.keyboard-status-"$DEVICE_ID"
FILE_STATUS=$(<"$FILE_PATH")
if [ -z "$FILE_STATUS" ] || [ "$FILE_STATUS" = "enabled" ]; then
xinput --disable "$DEVICE_ID"
echo "disabled" >"$FILE_PATH"
echo "keyboard $DEVICE_ID disabled"
else
xinput --enable "$DEVICE_ID"
echo "enabled" >"$FILE_PATH"
echo "keyboard $DEVICE_ID enabled"
fi
}
使用此功能后您只需要创建一个别名,例如:
alias handle_keyboard="handleKeyboard"