我有一个 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。