Como alguém pode "congelar" programaticamente o Teclado e o Mouse temporariamente, para que ninguém possa mexer com o sistema?
Existem várias possibilidades onde isso é útil. Por exemplo, eu tenho um laptop e quero garantir que ninguém o use enquanto eu for embora, mesmo que alguém saiba a senha ou possa adivinhar (como esposa ou filhos), além de diminuir o apetite dos ladrões (como parece desanimador). -funcionando). ou estou fazendo algo remotamente, para garantir que o usuário no computador não perturbe.
Respostas:
Supondo que sua GUI seja baseada em X (como quase todas as GUIs do UNIX), use
xinput
.Primeiro, liste seus dispositivos:
Liste os detalhes do seu mouse (id = 6 em nosso exemplo):
Agora desative-o:
Para habilitá-lo, faça:
O mesmo vale para o teclado, basta substituir o número int-prop pelo id apropriado.
Testado e trabalhado em cygwin.
Obviamente, você precisa planejar com antecedência como habilitará seus dispositivos novamente. como agendá-lo no cron, reativá-lo remotamente ou desativar apenas um deles em primeiro lugar.
fonte
xinput set-int-prop 9 "Device Enabled" 8 0
- apenas 1) eu também gostaria de ocultar o ponteiro do mouse e 2) se passar de X para um tty (console Linux / VTs) e Depois, de volta ao X, isso é redefinido (xinput list-props 9
confirma isso).xinput --set-int-prop
está obsoleto. Você deve usar em seu--set-prop
lugar. Além disso,xinput --enable [device]
exinput --disable [device]
pode ser usado para ativar e desativar dispositivos, respectivamente.Aqui está um script de shell que eu uso para ativar, desativar e alternar o touchpad do meu laptop:
fonte
xinput --disable 9
.A pergunta respondida usando o xinput é a correta, mas aqui está uma pergunta rápida, se tudo o que você procura é um bloqueio simples do tipo protetor de tela. Eu escrevi isso nos anos 90, e tudo o que faz é comer os eventos de teclado e mouse do servidor X, até você digitar a senha. Nenhum feedback além de sair quando você o digita corretamente.
http://ishiboo.com/~danny/Projects/xl/
Eu o uso como um bloqueio de tela, exatamente como você deseja usá-lo.
fonte
Sua resposta provavelmente é melhor para o seu segundo caso de uso (fazendo algo remotamente), mas provavelmente não para o seu primeiro (estar longe do teclado). Como você executaria o xinput novamente para restaurar o acesso ao retornar?
A solução padrão para bloquear o sistema enquanto ele está fora é o XScreenSaver , que é instalado por padrão na maioria das distros. Se configurado para bloquear o teclado, ele solicitará sua senha antes de desbloqueá-lo.
fonte
Pelo menos em sistemas baseados no Debian, como o Ubuntu, existe um utilitário chamado
xtrlock (1)
disponível nos repositórios de pacotes.Este utilitário bloqueia o teclado e o mouse até que a senha seja digitada, deixando as janelas visíveis. Acho útil para computadores executando telas de informações e similares.
fonte
Dependendo do seu hardware, você pode remover os módulos, controlando seu hardware. Eu tenho esse script,,
touchpadtoggle
para ativar e desativar meu touchpad.Mas o teclado não parece ter um módulo associado e o módulo psmouse funciona apenas ocasionalmente.
fonte
Se você estiver usando um ambiente de área de trabalho ou gerenciador de login (GNOME, KDE, XFCE, LXDE), quase todos eles têm uma função de tela de bloqueio, na qual é necessário digitar sua senha para voltar aos seus programas.
No entanto, como isso é realmente simples, sinto que seu problema é mais complexo / diferente.
fonte
Eu escrevi isso (em
.zshrc
, mas também deve funcionar.bashrc
) para fazer isso, com a ajuda das respostas acima. Para fazer o correspondente com o teclado, altere o parâmetro emgrep Mouse
.fonte