鼠标太敏感——影响睡眠

鼠标太敏感——影响睡眠

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

答案1

一个可能的解决方案是下面的背景脚本。

它能做什么

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

由于是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

如何使用

  1. 该脚本需要xprintidle

    sudo apt-get install xprintidle
    
  2. 将脚本复制到一个空文件中,另存为mouse_toosensitive.py

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

    xinput list
    

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

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

    python3 /path/to/mouse_toosensitive.py
    
  5. 如果一切正常,请将其添加到您的启动应用程序中:Dash>启动应用程序>添加命令:

    /bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"
    

答案2

当然,我相信您已经尝试过鼠标控制,例如:

鼠标

$ xset mouse [speed] [threshold]

查找您的输入设备编号

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

如果试验可用的值没有帮助,请尝试将鼠标垫换成阻力更大的表面。换句话说,试验不同类型的鼠标垫以获得不同的灵敏度。

答案3

如果你正在使用xscreensaver,有一个配置参数非常适合 -pointerHysteresis

如果鼠标在一秒钟内移动的像素数少于这么多,则忽略它(不要将其视为“活动”。)这样屏幕就不会因为您碰到桌子而恢复空白(或无法空白)。默认值:10 像素。

我会尝试的另一个解决方案是购买一个好的硅胶鼠标垫,这可以将不必要的动作减少到最低限度。

答案4

将一支墨水笔放在鼠标背面下方,将光学传感器抬高到其对运动做出反应的距离以上,当您想再次使用鼠标时,请取出墨水笔。

相关内容