qed*_*qed 5 bash user-interface automation
我有时使用qt creator和vim进行c ++编程.当文件在vim中更改,焦点重新回到qt creator时,它会提示我接受或拒绝vim所做的更改,我一直选择yes.
据我所知,没有选项可以在qt creator中接受而不提示用户,所以我创建了一个bash脚本来解决这个问题:
#!/bin/bash
while true
do
myw=$(xdotool getactivewindow)
mywinprop=$(xprop -id ${myw})
if [[ \
$(echo "$mywinprop" | egrep 'NET_WM_NAME.*File Changed') && \
$(echo "$mywinprop" | egrep 'WM_CLASS.*qtcreator') \
]]
then
xvkbd -xsendevent -text "\r" >/dev/null 2>&1
else
sleep 0.5
fi
done
Run Code Online (Sandbox Code Playgroud)
它工作正常,出现提示对话然后很快消失,但它仍然很烦人.我想知道是否有更好的方法来做到这一点.(我已经提交了一个功能请求,但不确定他们是否会实现此功能.)
该解决方案可能适用于许多类似的情况.
从表面上看,您已经完成了几乎最大的工作 - Qt Creator 是开源的,您可以为您想要的行为开发自己的补丁(然后您可以将其提交给上游,他们可能会更容易接受开发良好的补丁)然后建议他们开发一个补丁)并构建 Qt Creator 供您自己使用,并具有自定义的修补行为。
假设这工作量太大(对我来说听起来像是这样),我只能建议对您的工作流程进行一个小的改进 - 让窗口管理器不显示“文件已更改”对话框。Plasma 上的 Kwin 有一个专门针对此类事情的规则系统,或者您可以在 X11 上的 GNOME 上使用 Devilspie(atm,Wayland 上的 GNOME 没有这样的功能)。