使用xdotool查找单击并应用适当的操作

问题描述 投票:3回答:2

我想让xdotool检测是否在特定窗口上进行了右键单击(我可以毫无问题地捕获窗口ID),然后运行相应的shell命令/函数,如果单击位于所需的窗口上。

实际上,这意味着我希望xdotool获取VLC视频播放窗口的窗口ID,然后如果我右键单击该窗口则运行特定命令。

我使用BASH 4.2.0(1)-release和Xdotool 2.20101012.3049

编辑:这是我所拥有的,但它不起作用:

xdotool search --name "VLC" behave %@ mouse-click exec 'myscript'

但是,这些命令可以工作,但实际上并不是我需要的:

xdotool search --name "VLC" behave %@ mouse-enter exec 'myscript'

xdotool search --name "VLC" behave %@ mouse-leave exec 'myscript'

干杯..

linux bash x11
2个回答
0
投票

以下内容可能有效:

xdotool behave 18893317 mouse-click exec '/usr/bin/bash -c "echo hi"'

但是xdotool不适用于任意应用程序。您可以尝试直接使用:evdev.py读取鼠标事件

ls -l /dev/input/by-id/usb-062a_0000-event-mouse 
lrwxrwxrwx 1 root root 9 2011-12-21 18:05 /dev/input/by-id/usb-062a_0000-event-mouse -> ../event4
evdev.py /dev/input/event4

当您单击时,您可以使用坐标来确定它是否在VLC窗口内(通过与xdotool返回的坐标进行比较)。


0
投票

我意识到这是一个非常古老的线程,但是人xdotool SENDEVENT NOTES(隐含地)解释了为什么'鼠标点击'可能无效。 或者,使用“焦点”代替“鼠标单击”确实适用于用户鼠标单击。 注意该命令 xdotool search --name "VLC" behave %@ focus exec 'myscript' 可能不会终止,但仍保持活跃状态​​。至少对于我尝试使用它的方式来说,在imagemagic中设置裁剪位置至关重要 xdotool search --name "imagemagic" behave %@ focus getmouselocation

© www.soinside.com 2019 - 2024. All rights reserved.