如何强制新窗口在后台打开并且没有焦点?

我将Opera设置为我的默认浏览器,但Firefox的设置相同。 在Liferea中打开链接时,链接将在外部浏览器中打开,浏览器将获得焦点。 我想在后台打开链接(这样浏览器就无法获得焦点)。

唯一的解决方案是在CCSM的常规选项的焦点和提升行为选项卡中将焦点预防级别设置为正常。 但这会让其他东西变得混乱。 你有任何其他想法如何防止新窗口有焦点?

我在11.10上使用Unity。

我认为这是一个错误,所以我报告了它 。 这曾经与Gnome 2一起使用,它适用于Gnome Shell和Gnome 3后备。 我怀疑compiz,但我知道什么。

右键单击Liferea的窗口标题栏,然后选择“Always on Top”。 现在,您的所有链接都将在后台打开。

从破折号打开CompizConfig设置管理器(CCSM)

一般选项下
设置自动提升=非常高
延迟= 500

所有新窗口都将在后台打开!

单独的CCSM自动加注不会在ubuntu 10.04或12.04中工作..所以我不得不创建这个脚本:

#!/bin/bash delay=0.5 while true; do windowId=`xdotool getwindowfocus` xdotool getwindowname $windowId xdotool windowactivate $windowId; sleep $delay; done 

请注意,这个简单的脚本适用于所有窗口,而不仅仅适用于您的浏览器。 但从某种意义上来说,它总体上是好的,你不会为前任。 小姐点击新打开的窗户……

此脚本取决于您将“焦点预防级别”设置得足够高,以便新打开的窗口不会获得焦点。 它至少适用于Ubuntu 10.04和12.04,但应该可以在任何地方工作……如果它失败了,请说出来,我们可以一起思考!

这是一个无限循环(用ctrl + c打破它),它将“激活”具有焦点的窗口(焦点用于键盘输入)。 因此,它会使聚焦窗口每隔0.5秒“跳转”到前景(您可以根据需要降低或延迟延迟值)。

因此,所有新打开的应用程序和窗口仍将在前台打开,但会立即被具有焦点的窗口隐藏!

为了说清楚,它们不会在后台打开,但是这个脚本将提供几乎相同的效果。 “几乎”因为如果你非常不走运,你仍然可以点击新的打开的窗口,然后将焦点放在前台,什么会使新窗口成为焦点…降低延迟将有助于防止这种情况但消耗更多cpu,我认为不到0.1不好,但你必须测试看看哪个更适合你……

PS。:您的xdotool版本必须支持以下命令:getwindowfocus,getwindowname,windowactivate