O mouse está muito sensível - perturba o sono

7

Comprei um mouse para jogos com 8200dpi. No entanto, quando eu uso no Linux, eu tenho um problema. Quando não uso o PC ou assisto a um vídeo, o mouse às vezes gera movimentos curtos em resposta a tocar a mesa ou até mesmo pessoas caminhando na sala. Essas respostas terminam com o protetor de tela e fazem com que a GUI do player de vídeo seja exibida. Isso é chato.
O que posso fazer para contê-lo?

    
por Barafu Albino 11.09.2015 / 09:20

4 respostas

5

Uma possível solução é o script de plano de fundo abaixo.

O que faz

  • Após um tempo inativo (arbitrário), o script desativará o mouse, tornando-o insensível a tudo o que você fizer com ele. Eu definiria isto relativamente curto, então há pouca chance de perturbação entre eles.
  • No entanto, um simples toque de tecla (qualquer) ativará o mouse novamente.

Como xprintidle é acionado por eventos de mouse ou teclado (não pelo que acontece na tela), o script não será perturbado por, e. jogando um filme.

Dessa forma, você não terá que temer que uma ação indesejada do mouse atrapalhe qualquer coisa, enquanto você ainda tem acesso fácil aos controles e ao seu computador.

Como sempre (e como deveria ser com os scripts de segundo plano), o script é escrito de tal forma que praticamente não consome recursos.

O script

#!/usr/bin/env python3
import subprocess
import time
# ---
# set your device (mouse), as found from the command: xinput list
device = 8
# set the desired idle time (in seconds) to disable the mouse
set_idletime = 5
# ---

# don't change anything below
idle1 = 0

while True:
    time.sleep(1)
    idle2 = int(int(subprocess.check_output(["xprintidle"]).decode("utf-8").strip())/1000)
    if all([idle1 <= set_idletime, idle2 > set_idletime]):
        subprocess.Popen(["xinput", "set-prop", str(device), "Device Enabled", "0"])
    elif idle2 < idle1:
        subprocess.Popen(["xinput", "set-prop", str(device), "Device Enabled", "1"])
    idle1 = idle2

Como usar

  1. O script precisa de xprintidle :

    sudo apt-get install xprintidle
    
  2. Copie o script em um arquivo vazio, salve-o como mouse_toosensitive.py

  3. Descubra o dispositivo (número, número inteiro) do seu mouse executando em um terminal:

    xinput list
    

    Na seção head do script, defina o número do dispositivo e o tempo ocioso desejado (consulte a explicação no script).

  4. Teste - execute-o executando-o a partir de uma janela de terminal com o comando:

    python3 /path/to/mouse_toosensitive.py
    
  5. Se tudo funcionar bem, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicione o comando:

    /bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"
    
por Jacob Vlijm 05.10.2015 / 18:00
2

É claro que você já experimentou os controles do mouse, como:

mouse xset

$ xset mouse [speed] [threshold]

e

Encontre o seu número de dispositivo de entrada

$ xinput
$ xinput --set-prop 9 'Device Accel Constant Deceleration' 3

Se experimentar os valores disponíveis não ajudar, tente alterar o mouse pad para uma superfície que tenha mais arrasto. Em outras palavras, experimentar com diferentes tipos de mouse pads para várias sensibilidades nessa capacidade.

    
por L. D. James 02.10.2015 / 06:46
2

Se você estiver usando xscreensaver , há um parâmetro de configuração que se encaixa corretamente - pointerHysteresis :

% bl0ck_qu0te%

Outra solução que eu tentaria é comprar um bom mousepad de silicone que pode reduzir o movimento indesejado ao mínimo.

    
por Dmitry Grigoryev 05.10.2015 / 17:18
0

Coloque uma caneta de tinta sob a parte de trás do mouse para levantar o sensor óptico acima da distância em que ele reagirá ao movimento, remova a caneta de tinta quando quiser usar o mouse novamente.

    
por Alan P. 20.08.2016 / 06:35