如何在 Linux 中自动关闭对话窗口



我有时同时使用 qt creator 和 vim 进行 c++ 编程。当一个文件在 vim 中被更改,并且焦点回到 qt 创建器上时,它提示我接受或拒绝 vim 所做的更改,我一直选择是。

据我所知,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

它工作正常,提示对话框出现,然后迅速消失,但仍然很烦人。我想知道是否有更好的方法来做到这一点。(我已经提交了功能请求,但不确定他们是否会实现这一点。

该解决方案可能适用于许多类似情况。

从表面上看,你几乎已经完成了最大的工作 - Qt Creator是开源的,你可以为你想要的行为开发自己的补丁(然后你可以提交到上游,他们可能会更容易接受一个开发良好的补丁,然后建议他们应该开发一个补丁)并构建Qt Creator供你自己使用你的自定义补丁行为。

假设这是太多的工作(对我来说听起来像),我只能建议对您的工作流程进行一个小的改进 - 让窗口管理器不显示"文件已更改"对话框。Kwin on Plasma 有一个专门针对这类事情的规则系统,或者你可以在 X11 上的 GNOME 上使用 Devilspie(atm 在 Wayland 上的 GNOME 没有这样的功能)。

相关内容

  • 没有找到相关文章

最新更新