web-dev-qa-db-ja.com

バックグラウンドでフォーカスなしで新しいウィンドウを強制的に開くにはどうすればよいですか?

Operaはデフォルトのブラウザとして設定されていますが、Firefoxでも同じです。Lifereaでリンクを開くと、外部ブラウザでリンクが開き、ブラウザがフォーカスを取得します。バックグラウンドでのリンク(ブラウザがフォーカスを取得しないようにするため)。

唯一の解決策は、CCSMの[全般]オプションの[フォーカスと上げ動作]タブでフォーカス防止レベルを[標準]に設定することです。しかし、これは他のもののために物事を台無しにします。新しいウィンドウにフォーカスが移るのを防ぐ方法はありますか?

11.10でUnityを使用しています。

3
sup

これはバグだと思うので、 it と報告しました。これはGnome 2で機能していましたが、Gnome ShellおよびGnome 3フォールバックでも機能します。 compizを疑いますが、何を知っていますか。

2
sup

Lifereaのウィンドウタイトルバーを右クリックして、[常に手前に表示]を選択します。これで、すべてのリンクがバックグラウンドで開きます。

1
martin

ここでは、ubuntu 10.04または12.04でCCSMの自動レイズが機能しないので、このスクリプトを作成する必要がありました。

#!/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のコマンドをサポートする必要があります

0
Aquarius Power

ダッシュボードからCompizConfig Settings manager(CCSM)を開きます

一般オプションの下で、
set オートレイズ=非常に高い
and Delay = 5

すべての新しいウィンドウがバックグラウンドで開きます!

0