如何阻止新窗口在我正在做的事情上弹出?

dig*_*txp 7 window-manager ubuntu-10.04

通常,在 Ubuntu 10.04 Netbook 中,如果我想打开一个程序,通常是这样的: 任意打开的程序
(一个开放的程序)

对此:
使用程序启动器启动另一个程序 http://a.yfrog.com/img251/3201/workspace2002thumb.png

(使用Kupfer打开另一个程序)

对此:
另一个程序启动并在当前程序之上结束

如何更改行为,以便在启动程序后,焦点重新设置(并保持在)原始程序上,或者换句话说,在后台打开所有新窗口?

我正在使用 Mutter 使用 Ubuntu 10.04 Netbook,尽管在使用 Metacity 时也会发生这种情况。

Hip*_*ppo 9

从 Ubuntu 软件中心,安装“高级桌面效果设置 (ccsm)”。

安装后,系统->首选项菜单中将出现一个名为“CompizConfig Settings Manager”的新菜单项。单击它并导航到“常规”->“常规选项”->“关注并提高行为”。将“焦点阻止级别”设置为“高”或“非常高”以防止在前台打开新窗口。


imo*_*ama 2

编辑:实际上, GNOME 中有一个错误可以让你非常简单地实现你想要的目标。您所要做的就是将一个窗口(任何窗口)设置为“始终在最前面”。随后打开的所有窗口都将在后台执行此操作,并且不会获得焦点。我建议您将终端制作得尽可能小,将其放在不碍事的地方,例如放在角落里,然后设置“始终在最上面”。

请注意,此修复很容易实现,但实际上是一个混乱的解决方案,而不是真正的解决方案,并且一旦链接的错误修复就会停止工作(尽管这可能需要 2 个以上的发布周期)。


Mutter 有一个 gconf 键可以防止应用程序窃取焦点:

启动 gconf-editor,导航到应用程序 --> metacity --> 常规并将“聚焦新窗口”设置为严格。

您可能会发现这还不够,并且某些或所有应用程序仍在重点启动。至少上述内容将阻止从终端启动的应用程序窃取焦点,因此您可以通过执行以下操作来解决此问题:

假设菜单项和面板按钮是通过修改其“命令”字段从终端启动的。

于是就firefox变成了

gnome-terminal -e firefox

某些应用程序不会立即返回提示,因此需要以脚本的形式执行进一步的步骤。

命令是gnome-terminal -e "/bin/bglaunch.sh firefox"

其中 /bin/bglaunch.sh 是以下脚本,它在后台启动应用程序:

#!/bin/bash
nohup $1 >/dev/null & 
Run Code Online (Sandbox Code Playgroud)