ウィンドウが別のウィンドウの後ろに作成されるように指示できますか?

ウィンドウが別のウィンドウの後ろに作成されるように指示できますか?

Linuxでビルドしたソフトウェアプロジェクトを再コンパイルして再起動するスクリプトがあります。しかし、私は通常、プログラムが開始された直後にプログラムウィンドウを見たくありません。なぜなら、vimウィンドウにキーボードフォーカスを維持したいからです。

通常、私のプログラムは起動し、自動的にフォーカスを取得し、ワークスペースの他のウィンドウの上に表示されます。

Linuxでプログラムを起動しましたが、フォーカスを盗むことなく他のすべてのウィンドウの上に表示されないようにすることは可能ですか?

注:重要な場合は、Fedora 13、GNOME、compizを実行してEmeraldテーマを使用しています。

答え1

一部のウィンドウマネージャには同様のタスクを実行するための多くのカスタマイズ機能がありますが、最近の多くのウィンドウマネージャ(メタシティとcompizを含む)はこれらのカスタマイズ機能を失いました。私は同様のことをするためにfvwmを使用しました。より簡単なWMに依存しないアプローチは、フォーカスを右ペインに再割り当てすることです。 xdotoolを見てくださいhttp://www.semicomplete.com/projects/xdotool/xdotool。展開ストアで利用できる必要があります。特に、特定のウィンドウにフォーカスを割り当てることができます。私はあなたが端末でスクリプトを実行しており、焦点を失いたくないと仮定します。その場合は、$WINDOWIDを使用して端末のウィンドウIDを取得し、スクリプトの最後にxdotoolを使用して端末に再度焦点を合わせることができます。

答え2

別の方法は、プログラムを別のXサーバーに接続することです。あなたはできます

  1. 異なる仮想コンソールで別々のXインスタンスを実行します。たとえば、切り替えるにはCtrl-alt-F8を使用します。
  2. Xnestを実行して、XサーバーがネイティブXserverのクライアントとして機能するようにします。

いずれにせよ、テストスクリプトはDISPLAYを設定してプログラムを別のXサーバー(名前は1にすることができます)にリダイレクトする必要があります。

関連情報