小编mor*_*gon的帖子

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
Run Code Online (Sandbox Code Playgroud)

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

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

有一个更好的方法吗?

非常感谢!

xbindkeys xdotool

6
推荐指数
1
解决办法
1051
查看次数

标签 统计

xbindkeys ×1

xdotool ×1