ウィンドウマネージャ(またはX11)はタスクバーをどのように処理しますか?

ウィンドウマネージャ(またはX11)はタスクバーをどのように処理しますか?

私はopenboxとplankを使用しています。アプリを開いて最大化するたびに、ウィンドウは自動的にボード領域との競合を防ぎます。

私の質問は、ウィンドウを「タスクバー」として指定できますか?たとえば、画面の幅の25%を占めるようにメモ帳を設定し、他のメモ帳インスタンスを含む他の項目を残りの75%まで自動的に最大化するように設定できますか?

ベストアンサー1

タスクバークライアントは通常_NET_WM_STRUT財産誰かに言うヨーロッパWMH一部の画面の実際の状態が自分だけに属すると予想される互換性のあるウィンドウマネージャです。

_NET_WM_STRUT, left, right, top, bottom, CARDINAL[4]/32

この属性は、すべての開始値が 0 で、すべての終了値が論理画面の高さまたは幅である _NET_WM_STRUT_PARTIAL 属性と同じです。

_NET_WM_STRUT_PARTIAL, left, right, top, bottom, left_start_y, left_end_y, right_start_y, right_end_y, top_start_x, top_end_x, bottom_start_x, bottom_end_x, CARDINAL[12]/32

このプロパティには、画面の各境界に予約されている領域の幅を指定する4つのベースと、4つの列のそれぞれの開始と終了を指定する追加の8つのベースが含まれています。

これにより、特定のウィンドウに対して300ピクセルの幅が予約されます。橋脚)、ラン

xprop -f _NET_WM_STRUT 32c -set _NET_WM_STRUT '300, 0, 0, 0'

次にウィンドウをクリックします。これで最大化されていても、通常のウィンドウは残りのスペースに制限する必要があります。

もちろんいいえドッキングされたウィンドウを予約済みスペースに自動的に配置します。ただし、Xdotoolを使用してプロセスを自動化できます。

xlogo  #Dock window example
xprop -id "$(xdotool search xlogo)" -f _NET_WM_STRUT 32c -set _NET_WM_STRUT '300, 0, 0, 0'
xdotool search xlogo windowmove 0 0 windowsize 300 100%

Icewmはこれをきちんと抽象化するウィンドウマネージャです。man icewm-winoptions。あなたに必要なもの

==> ~/.icewm/winoptions <==
xlogo.layer: Dock
xlogo.geometry: 300x700+0+0

これにより、各新しいXlogoウィンドウがドッキングポイントになり、作成時に正しく配置されます。

おすすめ記事