Openbox

如何在 Openbox 中製作涉及 xdotool 的鍵綁定?

  • October 1, 2014

我通過登錄 Openbox 會話執行 Openbox 3.5.2(在 Lubuntu 13.10 上)。

在 Openbox 會話中,如果我xdotool mousemove 1000 5 click 3從終端執行,滑鼠游標會移動到桌面上指定的空白位置;然後執行滑鼠右鍵點擊,打開 Openbox 的右鍵菜單。

所以我做了以下鍵綁定~/.config/openbox/rc.xml

<keybind key="W-space">
 <action name="Execute">
   <command>xdotool mousemove 1000 5 click 3</command>
 </action>
</keybind>

並重新配置 Openbox。但是當我按下super+時,spacebar我看到的只是滑鼠游標移動到指定位置;沒有出現右鍵菜單。

如何使右鍵菜單出現?

你應該試著等到mousemove完成,如果你的系統很慢,有時事情會不同步。您可以延遲(使用sleepxdotool自己的--delay。這總是會延遲和減慢速度。因此,您應該首先嘗試:

xdotool mousemove --sync 1000 5 click 3

如果--sync不需要做任何事情,就不會等待。如果這沒有幫助,您總是可以額外延遲sleep

xdotool mousemove --sync 1000 5
sleep 0.2
xdotool click 3

問題是 click 在你 release 之前執行super,Openbox 區分 click 和modifier+click。最乾淨的解決方案是用於xdotool發送 keyup 事件:

xdotool mousemove 1000 5 keyup Super_L click 3

sleep只要您在返回super之前釋放,按照 Timo 的建議使用也可以使用sleep(因此命中或未命中成功與較低的睡眠值)。

雖然可能與您的情況無關,但如果您想在返回super後立即執行另一個擊鍵xdotool,而不釋放和重新按下鍵,您可以稍後在命令中放置一個 keydown 事件。在我的測試中,我無法比xdotool執行更快地釋放密鑰,而 keydown 事件有助於確保預期的行為。

引用自:https://unix.stackexchange.com/questions/110092