Koupil jsem si herní myš s 8200 dpi. Nicméně, když to používám v Linuxu, mám problém. Když nepoužívám počítač nebo nesleduji video, myš někdy generuje krátké pohyby v reakci na dotyk stolu nebo dokonce lidí, kteří jdou v místnosti. Tyto odpovědi ukončí spořič obrazovky a způsobí zobrazení grafického uživatelského rozhraní přehrávače videa. To je nepříjemné.
Co mohu udělat, abych tomu zabránil?
Přijatá odpověď:
Možným řešením je níže uvedený skript na pozadí.
Co to dělá
- Po (libovolné) době nečinnosti skript deaktivuje myš, takže nebude citlivá na to, co s ní uděláte. Nastavil bych to relativně krátce, takže mezi tím je malá pravděpodobnost rušení.
- Jednoduchý stisk klávesy (jakýkoli) znovu aktivuje myš.
Od xprintidle
je spouštěn buď událostmi myši nebo klávesnice (ne tím, co se děje na obrazovce), skript nebude rušen např. přehrávání filmu.
Díky tomu se nebudete muset bát, že nechtěná akce myši cokoli naruší, a přitom budete mít stále snadný přístup k ovládacím prvkům a počítači.
Jako vždy (a jak by to mělo být u skriptů na pozadí) je skript napsán tak, že nespotřebovává prakticky žádné zdroje.
Skript
#!/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
Jak používat
-
Skript potřebuje
xprintidle
:sudo apt-get install xprintidle
-
Zkopírujte skript do prázdného souboru a uložte jej jako
mouse_toosensitive.py
-
Zjistěte zařízení (číslo, celé číslo) vaší myši spuštěním v terminálu:
xinput list
V sekci head skriptu nastavte jak číslo zařízení, tak požadovanou dobu nečinnosti (viz vysvětlení ve skriptu).
-
Test - spusťte jej spuštěním z okna terminálu pomocí příkazu:
python3 /path/to/mouse_toosensitive.py
-
Pokud vše funguje dobře, přidejte jej do spouštěcích aplikací:Dash> Startup Applications> Přidat příkaz:
/bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"