¿Cómo se puede "congelar" mediante programación el teclado y el mouse temporalmente, para que nadie pueda meterse con el sistema?
Hay varias posibilidades donde esto es útil. Por ejemplo, tengo una computadora portátil y quiero asegurarme de que nadie la use mientras me voy, incluso si alguien conoce la contraseña o puede adivinarla (como esposa o hijos), así como deprimir el apetito de los ladrones (como parece -marcha). o estoy haciendo algo de forma remota, así que quiero asegurarme de que el usuario de la computadora no moleste.
Respuestas:
Suponiendo que su GUI está basada en X (como casi todas las GUI de UNIX), use
xinput
.Primero, enumere sus dispositivos:
Enumere los detalles de su mouse (id = 6 en nuestro ejemplo):
Ahora deshabilítelo:
Para habilitarlo haz:
Lo mismo ocurre con el teclado, solo reemplace el número int-prop con la identificación adecuada.
Probado y trabajado en cygwin.
Por supuesto, debe planificar de antemano cómo volverá a habilitar sus dispositivos. como programarlo en cron, volver a habilitarlo de forma remota o deshabilitar solo uno de ellos en primer lugar.
fuente
xinput set-int-prop 9 "Device Enabled" 8 0
- solo, 1) Me gustaría ocultar el puntero del mouse también, y 2) si voy de X a tty (consola Linux / VTs), y luego de vuelta a X, esto se restablece (xinput list-props 9
confirma esto).xinput --set-int-prop
es obsoleto. Deberías usar--set-prop
en su lugar. Además,xinput --enable [device]
yxinput --disable [device]
se puede usar para habilitar y deshabilitar dispositivos respectivamente.Aquí hay un script de shell que uso para habilitar, deshabilitar y alternar el panel táctil de mi computadora portátil:
fuente
xinput --disable 9
.La pregunta respondida usando xinput es la correcta, pero aquí hay una rápida si todo lo que está buscando es un simple bloqueo de tipo de protector de pantalla. Escribí esto en los años 90, y todo lo que hace es comer los eventos de teclado y mouse del servidor X, hasta que escriba la contraseña. No hay comentarios en absoluto más que salir cuando lo escribe correctamente.
http://ishiboo.com/~danny/Projects/xl/
Lo uso como un bloqueo de pantalla, exactamente como quieres usarlo.
fuente
Su respuesta es probablemente la mejor para su segundo caso de uso (hacer algo de forma remota), pero probablemente no para la primera (estar lejos del teclado). ¿Cómo volvería a ejecutar xinput para restaurar el acceso cuando regrese?
La solución estándar para bloquear el sistema mientras está lejos de él es XScreenSaver , que se instala por defecto en la mayoría de las distribuciones. Si está configurado para bloquear el teclado, le pedirá su contraseña antes de desbloquearla.
fuente
Al menos en los sistemas basados en Debian como Ubuntu, hay una utilidad llamada
xtrlock (1)
disponible a través de los repositorios de paquetes.Esta utilidad bloquea el teclado y el mouse hasta que se ingresa la contraseña y deja las ventanas visibles. Me resulta útil para las computadoras que ejecutan pantallas de información y similares.
fuente
Dependiendo de su hardware, puede quitar los módulos, controlando su hardware. Tengo una secuencia de comandos
touchpadtoggle
para habilitar y deshabilitar mi panel táctil.Pero el teclado no parece tener un módulo asociado, y el módulo psmouse solo funcionará ocasionalmente.
fuente
Si está utilizando un entorno de escritorio o un administrador de inicio de sesión (GNOME, KDE, XFCE, LXDE), casi todos tienen una función de bloqueo de pantalla en la que debe escribir su contraseña para volver a sus programas.
Sin embargo, dado que es realmente simple, siento que su problema es más complejo / diferente.
fuente
Escribí esto (en
.zshrc
, pero debería funcionar.bashrc
también) para hacer esto, con la ayuda de las respuestas anteriores. Para hacer lo correspondiente con el teclado, cambie el parámetro engrep Mouse
.fuente