xdotool 和 xbindkeys

xdotool 和 xbindkeys

我有一个 Acrobat 阅读器,它不会在 Control+plus 上缩放,而是在 Control+acute 上缩放(Control-plus 会烦人地旋转文档)。

我想使用 xbindkeys 和 xdotool 修复此问题,但复杂的是 Control-plus 也被其他应用程序使用。

所以想法是拦截 Control-plus,检查 Acrobat 是否是活动窗口。如果是,则向 Acrobat 发送 Control-acute,否则发送 Control-plus。

这是我当前对 xbindkeys 在 Control+plus 上启动的脚本的尝试:

WM_CLASS=$(xprop -id `xdotool getactivewindow` WM_CLASS |awk '{print $4}')

if [ "$WM_CLASS" = "\"Acroread"\" ];
then
   sleep 0.1s;
   xdotool key --clearmodifiers ctrl+acute
else
   killall xbindkeys
   xdotool key --clearmodifiers ctrl+plus
   xbindkeys
fi

这实际上有效,但问题是,如果我不杀死 xbindkeys,那么 xdotool 发送 ctrl-plus 将再次触发 xbindkeys 等等。

但这当然意味着每次我在非 acrobat 窗口中按下 Control+plus 时,xbindkeys 都需要被终止并重新启动...

有一个更好的方法吗?

非常感谢!

答案1

基于这个答案在 Ask Ubuntu 上,似乎没有必要杀死然后重新启动 xbindkeys。

相关内容