Блокировка ввода с клавиатуры в Linux-окружении может потребоваться по самым разным причинам, от тестирования внешних периферийных устройств до устранения программных сбоев, вызывающих самопроизвольное нажатие клавиш. В отличие от Windows, где часто требуются сторонние утилиты, в Ubuntu существует несколько нативных способов решения этой задачи без необходимости установки дополнительного программного обеспечения.
Система предоставляет гибкие инструменты для управления устройствами ввода, позволяя администратору или пользователю временно или навсегда деактивировать встроенное устройство. Независимо от того, работаете ли вы в окружении GNOME, KDE или Xfce, основные принципы работы с драйверами ввода остаются схожими, хотя конкретные команды могут незначительно отличаться.
Важно понимать, что отключение клавиатуры часто применяется вместе с отключением тачпада, чтобы создать удобный режим работы с внешними периферийными устройствами или для предотвращения случайных нажатий во время чистки оборудования. Ниже мы рассмотрим методы от простого программного скрытия до глубокой настройки ядра.
Идентификация устройства ввода через терминал
Прежде чем приступить к блокировке, необходимо точно определить идентификатор вашего устройства. В Linux каждое подключенное периферийное устройство имеет уникальный номер ID, который используется системой для управления им. Без точного знания этого номера вы можете случайно отключить встроенную мышь или тачпад.
Откройте терминал, нажав комбинацию клавиш Ctrl + Alt + T, и введите команду xinput list. Эта утилита выведет полный список всех активных устройств ввода, подключенных к вашей системе. Вас интересует строка, содержащая название встроенной клавиатуры, например, AT Translated Set 2 keyboard или Power Button.
Обратите внимание на числовой идентификатор в квадратных скобках рядом с названием устройства. Для встраиваемой клавиатуры ноутбука это обычно id=3 или id=4, но в вашем случае цифра может быть другой. Запишите этот номер, так как он потребуется для всех последующих команд отключения.
⚠️ Внимание: Неправильное определение устройства может привести к потере управления курсором мыши. Убедитесь, что подключена внешняя мышь, прежде чем выполнять команды отключения.
Если вы используете окружение Wayland вместо классического X11, команда xinput может не сработать. В этом случае попробуйте использовать libinput list-devices, чтобы увидеть список устройств, хотя управление ими через эту утилиту требует более сложных скриптов.
Временное отключение через утилиту xinput
Самый быстрый способ временно отключить клавиатуру — использовать команду xinput disable. Это действие не требует перезагрузки системы и действует до тех пор, пока не будет выполнена обратная команда или пока компьютер не будет выключен. Этот метод идеален для быстрого тестирования.
Введите в терминале команду xinput disable [ID_устройства], заменив [ID_устройства] на номер, который вы узнали на предыдущем этапе. Например:
xinput disable 4 После ввода команды клавиатура мгновенно перестанет реагировать на нажатия, но тачпад и мышь продолжат работать.
Чтобы вернуть устройство в работу, используйте команду xinput enable [ID_устройства]. Это действие является полностью обратимым и безопасным для системы. Если вы ошиблись с ID, просто перезапустите терминал или переподключите устройство ввода, чтобы сбросить состояние.
Стоит отметить, что при использовании этого метода драйвер устройства остается загруженным в ядре, но просто игнорирует входящие события ввода. Это делает процесс мгновенным и не создает нагрузки на процессор.
☑️ Порядок действий для отключения
Блокировка на уровне ядра (через sysfs)
Для более глубокого отключения, которое игнорирует даже события на уровне драйверов, можно использовать интерфейс sysfs. Этот метод отключает устройство на уровне ядра Linux, что является самым надежным способом блокировки, если программные методы не работают.
Вам потребуется найти путь к устройству в директории /sys/bus/. Обычно это находится по пути, связанному с HID или input. Для ноутбуков часто используется путь /sys/bus/platform/drivers/. Это требует root-прав, поэтому используйте sudo.
Команда для отключения может выглядеть так:
echo 1 | sudo tee /sys/bus/platform/drivers/<имя_драйвера>/unbind Однако, названия драйверов специфичны для каждой модели ноутбука. Более универсальный способ — найти файл unbind для вашего конкретного HID-устройства.
Этот метод часто используется системными администраторами для полной изоляции устройств в серверных конфигурациях. Он гарантирует, что даже при перезапуске графического сервера (X11/Wayland) устройство не будет активировано до явного разрешения.
⚠️ Внимание: Ошибочное отключение системных драйверов может привести к нестабильной работе системы или невозможности ввода паролей при следующем запуске. Действуйте осторожно.
Как найти правильный путь в sysfs?
Используйте команду ls /sys/bus/platform/drivers/ для просмотра доступных драйверов. Ищите те, которые содержат ключевые слова вроде 'ps/2' или 'atkbd'.
Постоянное отключение через конфигурацию автозагрузки
Чтобы отключение клавиатуры происходило автоматически при каждом запуске Ubuntu, необходимо добавить команду в автозагрузку сессии. Это удобно для пользователей, которые постоянно работают с внешней клавиатурой и не хотят вводить команды вручную.
Создайте исполняемый скрипт или добавьте команду в настройки Startup Applications (Приложения при запуске). В поле команды пропишите полный путь к скрипту, который будет выполнять xinput disable [ID] с небольшой задержкой, чтобы графический интерфейс успел инициализироваться.
Пример скрипта для файла /usr/local/bin/disable_keyboard.sh:
#!/bin/bash
sleep 5
xinput disable 4
Не забудьте установить права на выполнение: chmod +x /usr/local/bin/disable_keyboard.sh.
В системе управления сессиями GNOME можно просто добавить этот скрипт в список приложений при запуске, указав ему небольшую задержку. Это гарантирует, что команда выполнится после полной загрузки окружения GNOME Shell.
Исключение устройства из списка автоподключения в xorg.conf
Для продвинутых пользователей доступен метод через файл конфигурации Xorg. Это позволяет полностью исключить устройство из инициализации графического сервера, что является наиболее "чистым" методом постоянного отключения.
Создайте или отредактируйте файл /etc/X11/xorg.conf.d/99-disable-keyboard.conf (создайте директорию, если её нет). В него нужно добавить секцию InputClass, которая будет идентифицировать ваше устройство и отклонять его.
Пример содержимого файла:
Section "InputClass"
Identifier "Disable Built-in Keyboard"
MatchIsKeyboard "on"
MatchProduct "AT Translated Set 2 keyboard"
Option "Ignore" "true"
EndSection
Этот файл должен быть создан с правами администратора.
После создания файла необходимо перезагрузить компьютер. Графический сервер Xorg проигнорирует устройство при загрузке, и оно не появится в списке устройств ввода. Это решение идеально подходит для стационарных ПК с ноутбуком, подключенным через dock-station.
⚠️ Внимание: Если вы ошибетесь в синтаксисе конфигурационного файла, графический сервер может не запуститься, и вы увидите черный экран или будут только консольные сообщения.
| Метод | Уровень доступа | Действие после перезагрузки | Сложность |
|---|---|---|---|
Команда xinput disable |
Пользователь | Восстанавливается | Низкая |
| Скрипт автозагрузки | Пользователь | Сохраняется (нужна задержка) | Средняя |
| Конфигурация Xorg | Root (Администратор) | Сохраняется (полное исключение) | Высокая |
| Блокировка sysfs | Root (Администратор) | Зависит от модуля ядра | Высокая |
Проверка работы и устранение неполадок
После применения любого из методов необходимо убедиться, что клавиатура действительно отключена. Попробуйте нажать произвольные клавиши, например, пробел или символы, чтобы убедиться в отсутствии реакции экрана.
Если клавиатура продолжает работать, проверьте, правильно ли указан ID устройства. Иногда система может присваивать разные ID при перезагрузке, особенно если у вас несколько подключенных устройств ввода. Используйте xinput list после каждого перезапуска для актуализации данных.
В случае, если вы отключили устройство и не можете вернуть его работу (например, забыли внешнюю мышь), вам придется использовать виртуальную клавиатуру или переключение на текстовую консоль (Ctrl + Alt + F3), где можно выполнить команду включения вручную.
Также стоит проверить, не отключено ли устройство в BIOS/UEFI вашей материнской платы. Некоторые производители ноутбуков позволяют отключать встроенную клавиатуру на уровне аппаратного обеспечения, что является самым надежным решением, но менее гибким.
Вопросы и ответы
Можно ли отключить конкретную клавишу, а не всю клавиатуру?
Да, это возможно. Для этого используется утилита xkb или конфигурационные файлы Xorg, где можно переназначить скан-коды клавиш на пустые значения, но это требует глубоких знаний структуры клавиатурных раскладок.
Что делать, если после отключения клавиатуры я не могу вернуться обратно?
Если у вас нет мыши, переключитесь на текстовую консоль, нажав Ctrl + Alt + F3 (или F4-F6). Войдите в систему под своим логином и введите команду xinput enable [ID], чтобы вернуть управление.
Влияет ли отключение клавиатуры на работу системы в целом?
Нет, отключение устройства ввода не влияет на работу операционной системы, за исключением невозможности ввода текста. Все фоновые процессы и службы продолжают работать в штатном режиме.
Работает ли этот метод в Ubuntu 24.04 с Wayland?
В Ubuntu 24.04 с графическим сервером Wayland команда xinput может не работать корректно. В этом случае используйте GNOME Extensions для блокировки ввода или настройку через gsettings и специфичные расширения для Wayland.