Ich habe mir eine Gaming Maus mit 8200dpi gekauft. Wenn ich es jedoch unter Linux verwende, habe ich ein Problem. Wenn ich den PC nicht verwende oder ein Video ansehe, erzeugt die Maus manchmal kurze Bewegungen als Reaktion auf das Berühren des Tisches oder sogar von Personen, die im Raum gehen. Diese Antworten beenden den Bildschirmschoner und führen dazu, dass die GUI des Videoplayers angezeigt wird. Das ist ärgerlich.
Was kann ich dagegen tun?
Akzeptierte Antwort:
Eine mögliche Lösung ist das folgende Hintergrundskript.
Was es tut
- Nach einer (beliebigen) Leerlaufzeit deaktiviert das Skript die Maus und macht sie unempfindlich gegenüber allem, was Sie damit tun. Ich würde dies relativ kurz einstellen, damit es zwischendurch kaum zu Störungen kommt.
- Ein einfacher Tastendruck (beliebiger) aktiviert die Maus jedoch wieder.
Seit xprintidle
entweder durch Maus- oder Tastaturereignisse ausgelöst wird (nicht durch das, was auf dem Bildschirm passiert), wird das Skript nicht durch z. einen Film abspielen.
Auf diese Weise müssen Sie nicht befürchten, dass eine unerwünschte Mausbewegung etwas stört, während Sie dennoch einfachen Zugriff auf die Steuerung und Ihren Computer haben.
Wie immer (und wie es sich bei Hintergrundskripten gehört) ist das Skript so geschrieben, dass es praktisch keine Ressourcen verbraucht.
Das 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
Verwendung
-
Das Skript benötigt
xprintidle
:sudo apt-get install xprintidle
-
Kopieren Sie das Skript in eine leere Datei und speichern Sie es als
mouse_toosensitive.py
-
Finden Sie das Gerät (Nummer, Ganzzahl) Ihrer Maus heraus, indem Sie ein Terminal ausführen:
xinput list
Stellen Sie im Kopfbereich des Skripts sowohl die Gerätenummer als auch die gewünschte Ruhezeit ein (siehe Erklärung im Skript).
-
Testen Sie es, indem Sie es von einem Terminalfenster aus mit dem Befehl:
ausführenpython3 /path/to/mouse_toosensitive.py
-
Wenn alles funktioniert, fügen Sie es Ihren Startanwendungen hinzu:Dash> Startanwendungen> Fügen Sie den Befehl hinzu:
/bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"