Как программно отключить клавиатуру?

  • bur80 25.05.2025
    Возникла необходимость запускать на рабочей машине приложение для мониторинга, но при этом необходимо, чтобы пользователь не тыкал никуда куда не надо, то есть требуется лишить его этой возможности (заблокировать клавиатуру/мышь). Гугление ничего не дало, к сожалению. Подскажите, может кто сталкивался с подобной задачей?
  • xKDE 25.05.2025
    X11 или W?
  • x230x230 25.05.2025
    "Киосковое" ПО Вам в помощь.
  • scorpiiscorpii 25.05.2025
    На Х11:
    # xinput -list
    # xinput disable "id_from_list_behind"

    На wayland:
    # libinput list-devices
    Далее можно создать правило udev, по примеру на arch wiki:
    https://wiki.archlinux.org/title/Libinput#Disable_device
  • xKDE 25.05.2025
    Или сразу в ядре:
    $ cat /proc/bus/input/devices
    # echo 0 > /sys/class/input/eventX/device/enable
    Bluetooth ещё можно залочить!)

    Только не забыть SSH настроить, а то понадобится зайти, а нету)
  • bur80 26.05.2025
    xKDE:
    X11 или W?
    Wayland
  • bur80 26.05.2025
    xKDE:
    # echo 0 > /sys/class/input/eventX/device/enable
    судя по выводу cat за клавиатуру отвечает event14, но вот незадача - в папке device отсутствует enable
    вот содержимое каталога:
    drwxr-xr-x 2 root root    0 May 26 04:44 capabilities
    lrwxrwxrwx 1 root root    0 May 26 04:49 device -> ../../../0003:046D:4023.0003
    drwxr-xr-x 3 root root    0 May 26 04:44 event3
    drwxr-xr-x 2 root root    0 May 26 04:44 id
    -rw-r--r-- 1 root root 4096 May 26 04:49 inhibited
    drwxr-xr-x 3 root root    0 May 26 04:44 input14::capslock
    drwxr-xr-x 3 root root    0 May 26 04:44 input14::compose
    drwxr-xr-x 3 root root    0 May 26 04:44 input14::kana
    drwxr-xr-x 3 root root    0 May 26 04:44 input14::numlock
    drwxr-xr-x 3 root root    0 May 26 04:44 input14::scrolllock
    -r--r--r-- 1 root root 4096 May 26 04:49 modalias
    -r--r--r-- 1 root root 4096 May 26 04:44 name
    -r--r--r-- 1 root root 4096 May 26 04:44 phys
    drwxr-xr-x 2 root root    0 May 26 04:49 power
    -r--r--r-- 1 root root 4096 May 26 04:44 properties
    lrwxrwxrwx 1 root root    0 May 26 04:44 subsystem -> ../../../../../../../../../../class/input
    -rw-r--r-- 1 root root 4096 May 26 04:44 uevent
    -r--r--r-- 1 root root 4096 May 26 04:49 uniq
  • bur80 26.05.2025
    забыл сказать, всё это я делаю на Arch
  • scorpiiscorpii 26.05.2025
    bur80:
    xKDE:
    # echo 0 > /sys/class/input/eventX/device/enable
    судя по выводу cat за клавиатуру отвечает event14, но вот незадача - в папке device отсутствует enable
    Вот эта конструкция сработает, только до перезапуска, потом будет установлено значение по умолчанию "0"

    # echo 1 > /sys/class/input/eventX/device/inhibit

    Но, если Вы на арче, то я давал ссылку с их вики, как сделать правило udev и все на этом
  • bur80 26.05.2025
    получилось! всем спасибо за помощь!

    вот рабочий вариант:
    # echo 1 > /sys/class/input/eventX/device/inhibited
  • scorpiiscorpii 26.05.2025
    bur80:
    inhibited
    Уже запамятовал, сейчас зашел в адрес, глянул и точно "inhibited", а не "inhibit", как я выше написал.
    Но учтите, это только до перезагрузки компа!
    Можно, при желании конечно, автоматизировать, созданием простенького скрипта, типа
    #!/usr/bin/env bash
    echo 1 > /sys/class/input/eventX/device/inhibited