Как можно программно «временно заморозить» клавиатуру и мышь, чтобы никто не мог связываться с системой?
Есть несколько возможностей, где это полезно. Например, у меня есть ноутбук, и я хочу убедиться, что никто не использует его, пока я ухожу, даже если кто-то знает пароль или может его угадать (как жена или дети), а также подавляет аппетит воров (как это кажется -functioning). или я делаю что-то удаленно, поэтому хочу убедиться, что пользователь за компьютером не мешает.
Ответы:
Предполагая, что ваш графический интерфейс основан на X (как почти все графические интерфейсы UNIX), используйте
xinput
.Сначала перечислите ваши устройства:
Перечислите детали для вашей мыши (id = 6 в нашем примере):
Теперь отключите это:
Чтобы включить это, сделайте:
То же самое касается клавиатуры, просто замените номер int-prop на правильный id.
Проверено и работает на Cygwin.
Конечно, вам нужно заранее спланировать, как вы снова включите свои устройства. например, запланировать его на cron, повторно включить его удаленно или отключить только один из них.
источник
xinput set-int-prop 9 "Device Enabled" 8 0
- только: 1) я бы тоже хотел скрыть указатель мыши и 2) если я перейду с X на tty (консоль Linux / VT), и затем возвращается к X, это сбрасывается (xinput list-props 9
подтверждает это).xinput --set-int-prop
не рекомендуется. Вы должны использовать--set-prop
вместо этого. Такжеxinput --enable [device]
иxinput --disable [device]
может использоваться для включения и отключения устройств соответственно.Вот сценарий оболочки, который я использую для включения, отключения и переключения сенсорной панели моего ноутбука:
источник
xinput --disable 9
.Ответ на вопрос с использованием xinput является правильным, но вот быстрый, если все, что вам нужно, это простая блокировка типа заставки. Я написал это еще в 90-х годах, и все, что он делает, это использует события клавиатуры и мыши X-сервера, пока вы не введете пароль. Нет обратной связи вообще, кроме выхода, когда вы вводите его правильно.
http://ishiboo.com/~danny/Projects/xl/
Я использую его как блокировку экрана, именно так, как вы хотите его использовать.
источник
Ваш ответ, вероятно, лучше всего подходит для вашего второго варианта использования (что-то делать удаленно), но, вероятно, не для вашего первого (если вы находитесь вдали от клавиатуры). Как бы вы снова запустили xinput для восстановления доступа после возвращения?
Стандартное решение для блокировки системы вдали от нее - XScreenSaver , который устанавливается по умолчанию в большинстве дистрибутивов. Если он настроен на блокировку клавиатуры, он запросит ваш пароль, прежде чем разблокировать его.
источник
По крайней мере, в системах на основе Debian, таких как Ubuntu, есть утилита,
xtrlock (1)
доступная через репозитории пакетов.Эта утилита блокирует клавиатуру и мышь до тех пор, пока пароль не будет введен, оставляя видимыми окна. Я считаю это полезным для компьютеров, на которых работают информационные дисплеи и тому подобное.
источник
В зависимости от вашего оборудования вы можете удалять модули, контролируя ваше оборудование. У меня есть такой скрипт,
touchpadtoggle
чтобы включить и отключить сенсорную панель.Но с клавиатурой, похоже, не связан модуль, а модуль psmouse будет работать только изредка.
источник
Если вы используете среду рабочего стола или менеджер входа в систему (GNOME, KDE, XFCE, LXDE), почти все из них имеют функцию блокировки экрана, где вам нужно ввести пароль, чтобы вернуться к своим программам.
Однако, поскольку это действительно просто, я чувствую, что ваша проблема более сложная / другая.
источник
Я написал это (в
.zshrc
, но должен работать в.bashrc
), чтобы сделать это, с помощью ответов выше. Чтобы сделать соответствующее с клавиатуры, измените параметр вgrep Mouse
.источник