如何在 ubuntu 中禁用和启用键盘?

如何在 ubuntu 中禁用和启用键盘?

如何在 ubuntu 中禁用和启用键盘?

我遇到了一个大麻烦,因为我的桌子上没有足够的空间放置和my keyboardsome 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

要禁用/启用键盘,只需按键盘上的Ctrl+ Alt+T打开终端。打开后,运行以下命令:

xinput -list

在此处输入图片描述

找到你的身份证后,

sleep 0.1 ; xinput set-prop 9 'Device Enabled' 0 ; sleep 5 ; xinput set-prop 9 'Device Enabled' 1

睡 5是您希望禁用键盘的秒数(我猜)。

有关 xinput 命令的更多信息,请参阅手册页

或者你可以使用锁定键盘公用事业。

答案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"

相关内容