鼠标太敏感 - 扰乱睡眠

Bar*_*ino 7 mouse screensaver monitor

我买了一个 8200dpi 的游戏鼠标。但是,当我在 Linux 中使用它时,我遇到了问题。当我不使用 PC 或观看视频时,鼠标有时会响应触摸桌子甚至人在房间里走动而产生短暂的移动。这些响应结束屏幕保护程序并导致显示视频播放器 GUI。这很烦人。
我能做些什么来对抗它?

Jac*_*ijm 5

一个可能的解决方案是下面的后台脚本。

它能做什么

  • 在(任意)空闲时间之后,脚本将禁用鼠标,使其对您使用鼠标执行的任何操作都不敏感。我会把这个设置得相对较短,所以中间几乎没有干扰的可能性。
  • 然而,一个简单的击键(任何)将再次启用鼠标。

由于xprintidle由鼠标或键盘事件触发(不是由屏幕上发生的事情),因此脚本不会被例如播放电影所干扰。

这样,您就不必担心不需要的鼠标操作会破坏任何东西,同时您仍然可以轻松访问控件和计算机。

与往常一样(并且应该与后台脚本一样)脚本的编写方式几乎不消耗资源。

剧本

#!/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
Run Code Online (Sandbox Code Playgroud)

如何使用

  1. 脚本需要xprintidle

    sudo apt-get install xprintidle
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将脚本复制到一个空文件中,另存为 mouse_toosensitive.py

  3. 通过在终端中运行来找出鼠标的设备(数字、整数):

    xinput list
    
    Run Code Online (Sandbox Code Playgroud)

    在脚本的头部部分,设置设备编号和所需的空闲时间(请参阅脚本中的说明)。

  4. 通过使用以下命令从终端窗口运行它来测试运行它:

    python3 /path/to/mouse_toosensitive.py
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果一切正常,请将其添加到您的启动应用程序中:Dash > Startup Applications > 添加命令:

    /bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"
    
    Run Code Online (Sandbox Code Playgroud)