Bar*_*ino 7 mouse screensaver monitor
我买了一个 8200dpi 的游戏鼠标。但是,当我在 Linux 中使用它时,我遇到了问题。当我不使用 PC 或观看视频时,鼠标有时会响应触摸桌子甚至人在房间里走动而产生短暂的移动。这些响应结束屏幕保护程序并导致显示视频播放器 GUI。这很烦人。
我能做些什么来对抗它?
一个可能的解决方案是下面的后台脚本。
由于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)
脚本需要xprintidle:
sudo apt-get install xprintidle
Run Code Online (Sandbox Code Playgroud)将脚本复制到一个空文件中,另存为 mouse_toosensitive.py
通过在终端中运行来找出鼠标的设备(数字、整数):
xinput list
Run Code Online (Sandbox Code Playgroud)
在脚本的头部部分,设置设备编号和所需的空闲时间(请参阅脚本中的说明)。
通过使用以下命令从终端窗口运行它来测试运行它:
python3 /path/to/mouse_toosensitive.py
Run Code Online (Sandbox Code Playgroud)如果一切正常,请将其添加到您的启动应用程序中:Dash > Startup Applications > 添加命令:
/bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"
Run Code Online (Sandbox Code Playgroud)