1

LinuxプログラミングとXWindowsを具体的に始めたばかりです。象限ビューで4つの異なるプログラム(VLC、Webブラウザーなど)を起動するアプリケーションを作成しようとしています。今のところ、ウィンドウマネージャーを上に置く必要はありません(または必要ありません)。必要最低限​​のアプリケーションを実行するだけです。

-geometryコマンドを使用して、x utils(時計など)でこれを行うことができます。

私の質問は、これらの他のアプリケーションの配置をどのように制御するかです。

4

1 に答える 1

1

解決策1

devilspieはこれに最適なツールです。例として:

+--------+------------------------+
| Pidgin |                        |
| Buddy  |        Pidgin          |
| List   |     Conversation       |
|        |                        |
|        +------------------------+
|        |                        |
|        |        Xchat           |
|        |                        |
|        |                        |
+--------+------------------------+

次の構成で実行できます。

(if (is (application_name) "Pidgin")
        (begin
                (if (is (window_role) "buddy_list")
                        (begin
                                (undecorate)
                                (skip_tasklist)
                                (geometry "199x767+0+0")
                        )
                )
                (if (is (window_role) "conversation")
                        (begin
                                (undecorate)
                                (geometry "822x400+201+0")
                        )
                )
        )
)

解決策2

目的のアプリケーションを起動し、wmctrlを使用して、ウィンドウを目的の位置に移動およびサイズ変更します。これを実現するには、-r引数を使用できます。

  -r <WIN> -e <MVARG>  Resize and move the window around the desktop.

Devilspieエクスペリエンス(更新)

コメントで要求されたように。私はいつもdevilspieを使用しています。これは本当に素晴らしく、gnome、xfce、kde、fvwmを使用したすべてのウィンドウマネージャーで動作します。私はあなたが望むことの一部を行う実用的なdevilspie設定をまとめました。このファイルはに配置できます~/.devilspie/devilspie.ds。この構成ファイルの結果を示すスクリーンショットも添付されています。devilspieについて私が見つけた最高のドキュメントはfoosel.orgにあります。それを使用することを強くお勧めします。devilspieをテストするときは、ターミナルのフォアグラウンドで実行します。実行中の他の悪魔のプロセスがないことを確認してください。そうであれば、それらを殺してください。構成を変更して結果を確認するたびに、devilspieでCTRL + Cを実行し、それを再実行します。vlcが閉じられたときに最大化されたかどうかに注意する他のいくつかの事柄は、再び最大化されて開き、サイズ変更と移動の悪魔の要求を無視します。したがって、vlcを閉じるときにvlcが最大化されていないことを確認してください。unmaximizeまたは、電話をかけてから電話をかけることもできgeometryます。

(debug)
(if
    (is (application_name) "VLC media player")
    (geometry "500x300+0+0")
)
(if
    (is (application_name) "xterm")
    (geometry "300x300+510+0")
)
(focus)

screetshot ここに画像の説明を入力してください

于 2012-11-22T18:18:02.760 に答える