获取gui对话框弹出窗口(来自bash)以保持在其他窗口的顶部

获取gui对话框弹出窗口(来自bash)以保持在其他窗口的顶部,bash,kubuntu,scripting,kde,user-interface,Bash,Kubuntu,Scripting,Kde,User Interface,我把这篇文章贴在了上,显然是启用了隐身功能(甚至没有人看过它!-通常,这个列表是非常有反应的。),所以我想我会看看你们是否有一些想法。它可能适用于使用任何gui弹出实用程序(如dialog、xdialog或带有KDE桌面的zenity)的任何bash脚本 总的来说,我喜欢yad。它将zenity吹走,开发人员通常就在那里回答问题并修复/增强内容 本质上,我有一组脚本,使用弹出式gui对话框与用户交互 它工作得很好,直到你在KDE桌面上的任何地方点击鼠标,同时显示一个弹出窗口 一旦您这样做,所有后

我把这篇文章贴在了上,显然是启用了隐身功能(甚至没有人看过它!-通常,这个列表是非常有反应的。),所以我想我会看看你们是否有一些想法。它可能适用于使用任何gui弹出实用程序(如dialog、xdialog或带有KDE桌面的zenity)的任何bash脚本

总的来说,我喜欢yad。它将zenity吹走,开发人员通常就在那里回答问题并修复/增强内容

本质上,我有一组脚本,使用弹出式gui对话框与用户交互

它工作得很好,直到你在KDE桌面上的任何地方点击鼠标,同时显示一个弹出窗口

一旦您这样做,所有后续对话框都会“显示”在所有其他对话框的后面,并且通常不可见,除了任务栏中,并且必须从任务栏中手动选择,才能再次显示/激活/聚焦

有办法解决这个问题吗?我认为这是一个桌面,而不是一个yad问题

谢谢

乔 kubuntu精确64位(KDE 4.8.5)


我的打印系统是用bash编写的,在一个(可能是嵌套的)脚本中多次调用yad。它工作得很好,但有一个主要问题

如果在脚本运行并显示带有yad的内容时,用户在yad对话框外的任何位置单击鼠标,则所有后续的yad对话框都会显示在其他对话框的后面,并且基本上是不可见的

脚本仍然显示在任务管理器中,因此这些对话框可以一个接一个地返回前台,但这确实是违反直觉和恼人的

我假设这是KDE的一个“特性”,而不是yad中的一个bug。 有没有办法解决/防止这种情况?我试着在对话框的顶部添加-,但没用

当我运行脚本时(这可能需要一段时间,或者我可能想在对话框等待输入时执行其他操作),我无法执行任何其他操作,因为我担心出现此问题。我可以切换到另一个桌面,但这是不可靠的,因为下一个对话框(但只有那一个)可能会在那里弹出,并将整个事情抛在脑后。
我使用的是kubuntu precise上ppa的最新yad。

窗口的堆叠顺序由KDE窗口管理器控制。当UI应用程序(如
yad
)创建窗口时,它可能会将首选属性(如“始终在顶部”)传递给WM。当由于某种原因无法工作时,您可以尝试调用命令行实用程序,例如
wmctrl
,该实用程序指示WM提升现有窗口:

wmctrl -a "Yad"

谢谢!我在gedit自定义外部工具(sh脚本)弹出的zenity对话框中也遇到了同样的问题。添加
wmctrl-a“CVS commit”
cmd修复了它。

你应该在stackoverflow上问这个问题——这不是Ubuntu特有的。你试过KDE窗口行为设置吗?您可以设置KDE窗口规则,使一个窗口或一组窗口高于其他窗口。@1月份,如果有人把它移到那里,我可以。如果我这么做的话,这不是交叉发布吗?@user26687我已经在现有的窗口上手动使用了这些设置,并且使用了kstart,但是我不知道如何为脚本中的yad弹出窗口等预设它们。感谢您回答一个老问题!我有两个相互关联的测试脚本:我一直在尝试你所建议的一些变体,但运气不好。如果您没有安装yad,那么其他一些对话框可能也会这样做。如果你或其他人能看出我做错了什么,我将不胜感激。Yad得到了更新,windows现在保持在顶部,但仍然失去了焦点。我在Solaris上使用GNOME/Metacity尝试了
wmctrl-a
。它按预期工作,包括获得键盘焦点。您可以使用
wmctrl-l
列出活动窗口名称。