ti-enxame.com

Desativar o mouse (não touchpad!) Em Xorg enquanto ocioso

Eu sou um usuário ávido do teclado, mas ainda preciso do mouse de vez em quando. Para minimizar a viagem de mão, eu tenho o mouse localizado abaixo do meu teclado. (Em uma nota lateral, usando o mouse desta maneira sente mais natural para a minha mão.)

Eu estou usando atualmente desovante para ocultar o ponteiro enquanto eu não uso o mouse. Infelizmente, estou cutucando às vezes enquanto digita, o que faz com que o ponteiro reaja. Às vezes, isso vai mover o ponteiro sobre outra janela, o que, por sua vez, leva o foco da minha janela atual. (Eu estou usando foco desleixado e mudar isso não é uma opção.)

Agora estou procurando uma possibilidade de não apenas esconder o ponteiro após uma certa quantidade de tempo ocioso, mas desative o mouse completamente. Clicar em qualquer botão do mouse ou usar a roda do mouse deve reativar o mouse.

17
igor

A primeira coisa que precisamos realizar é desligar o mouse, mas apenas em x. Para isso poderíamos usar xinput.

Precisamos descobrir dispositivos de entrada que estão conectados ao computador (para X Server):

[email protected] ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

Dispositivo que precisamos usar é A4Tech USB Mouse com id=10. Em seguida, precisamos verificar propriedades desse dispositivo:

[email protected] ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

Para desativar o dispositivo, precisamos alterar a propriedade Device Enabled:

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

Para ligar:

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

A próxima coisa é fazê-lo automaticamente ...) Neste exemplo, estaremos desabilitando o mouse por atalho de teclado e ativá-lo pressionando o botão esquerdo + direito do mouse.

Para isso, poderíamos usar ActKbd - Teclado (mas não apenas) doemon de atalho que funciona fora do X Server.

Primeiro, precisamos criar um arquivo de configuração vazio para ACTKBD: touch /etc/actkbd.conf. A próxima coisa é descobrir dispositivos conectados ao computador:

[email protected] ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

Nesta parte mais interessante para uso são nomes e manipuladores de teclado e dispositivos de mouse.

Primeiro nós lidamos desligando o mouse pelo atalho de teclado, por isso precisamos descobrir IDs principais:

[email protected] ~ $ Sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

Quando sabemos quais são os IDs de chaves, precisamos colocá-los no arquivo de configuração (/etc/actkbd.conf):

29+41+42:::Sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

Para testá-lo, precisamos executar actkbd no modo doemon:

[email protected] ~ $ Sudo actkbd -d /dev/input/event3 -D

Da mesma forma, precisamos lidar com o evento "Ligar":

  1. Verifique os manipuladores do dispositivo do mouse
  2. Verifique os códigos-chave do botão esquerdo + direito do mouse usando actkbd
  3. Coloque para actkbd.conf
  4. Execute o Daemon Actkbd para monitorar o dispositivo de entrada do mouse

Running daemons poderia ser realizado como script de inicialização ou script autorun no ambiente.

Para desligar automaticamente o mouse, poderíamos monitorar o dispositivo de entrada (cat /dev/input/event5) e desligue quando não há entrada ...

Espero que minha pequena introdução te ajude ...)

16
pbm

Você já tentou um applet "captura de ponteiro" gnome painel applet ?

O ponteiro do mouse pode ser bloqueado em uma área da tela para que o dispositivo apontador seja gratuito para outras tarefas. Por exemplo, essa capacidade permite que um usuário do Powerchair controle tanto a Powerchair quanto o ponteiro do mouse com um único joystick do Powerchair

O applet do painel de captura de ponteiro cria uma área no painel, no qual o usuário pode bloquear o ponteiro até ser liberado de uma maneira determinada.

O applet do painel de captura do ponteiro pode ser instalado clicando com o botão direito do mouse na barra/painel do menu do GNOME Desktop, selecionando Adicionar ao Painel, escolhendo a captura do ponteiro e clicando no botão Adicionar

Caso a descrição do gnome.org não esteja claro, isso criará uma área no painel onde quando o mouse entrar (ou você clic), o cursor desaparecerá e não reaparecerá até que ocorra uma ação definida, por exemplo, Segundo clique. Soa como exatamente o que você precisa?

1
Josh