gpt4 book ai didi

linux - 在 Linux 上,如何使用 POSIX shell 禁用鼠标一秒钟,而不是等待第二个并立即做一些工作?

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:14 24 4
gpt4 key购买 nike

TL;DR:在 Linux 上,如何使用 POSIX shell 禁用鼠标一秒钟,而不是等待第二个并立即做一些工作?


操作系统:Linux Mint 18.3 64 位 Cinnamon,带有 LightDM 显示管理器和 Mutter (Muffin) 窗口管理器,X11 窗口系统。


脚本环境:dash


我需要:

  1. 做点什么(对于这个问题的目的到底是什么并不重要,但您可以阅读 the full script on Core Review )。

  2. 暂时禁用鼠标。但剧本必须继续。这非常重要。

  3. 立即运行应用程序(Lightshot 在一般打印屏幕模式下)。

理由:因为Lightshot可能包含一个错误,鼠标不能在打印屏幕之前移动,否则它通常会导致类似这样的结果:

lightshot_bug_when_mouse_moving

最佳答案

长话短说

假设,在我的系统上,鼠标设备 ID 等于 12。然后执行此操作的函数将在 POSIX shell 脚本中显示如下:

my_mouse_device_id=12

disable_mouse_for_a_second()
{
if xinput --disable "$1" 2> /dev/null
then
(
sleep 1s
xinput --enable "$1"
) &
return 0
else
return 1
fi
}

# example usage
if disable_mouse_for_a_second "$my_mouse_device_id"
then
echo "Success"
else
echo "Failure"
fi

说来话长

  1. 您需要使用以下方法找到鼠标设备 ID:

    xinput list --short
  2. This thread对我帮助很大,例如以下内容已被弃用:

    xinput --set-int-prop 
  3. 之后我们需要运行这两个命令:

    sleep 1s
    xinput --enable "$my_mouse_device_id"

    棘手的部分是我们需要:

    让它正常工作。

  4. 从实际的角度来看,我们需要做的就是将它包装在一个漂亮的函数中。

关于linux - 在 Linux 上,如何使用 POSIX shell 禁用鼠标一秒钟,而不是等待第二个并立即做一些工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com