TL;DR:在Linux上,如何使用POSIX shell禁用鼠标一秒钟,而不必等待第二秒钟并立即执行某些操作?
操作系统:Linux Mint 18.3 64位肉桂色,带LightDM显示管理器和Mutter(松饼)窗口管理器,X11窗口系统。
脚本环境:dash
。
我需要:
做点什么(不管这个问题的具体目的是什么,但你可以阅读the full script on Core Review)。
禁用鼠标一秒钟。但剧本必须继续。这很重要。
立即运行应用程序(Lightshot在常规打印屏幕模式下)。
理由:由于Lightshot可能包含一个错误,鼠标不能在打印屏幕前移动,否则通常会导致以下情况:
最佳答案
TL;博士
假设,在我的系统中,鼠标设备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
长话短说
您需要使用以下命令查找鼠标设备ID:
xinput list --short
This thread对我有很大帮助,例如以下内容已被弃用:
xinput --set-int-prop
之后我们需要运行这两个命令:
sleep 1s
xinput --enable "$my_mouse_device_id"
棘手的是我们需要:
asubshell
(
。。。)
背景工作
&
才能正常工作。
从实际的角度来看,我们需要做的就是将它包装成一个好的函数。
关于linux - 在Linux上,如何使用POSIX Shell禁用鼠标一秒钟,而不必等待第二秒钟并立即执行一些工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48707661/