web-dev-qa-db-ja.com

Unityでwmctrlを使用してウィンドウを左上隅に移動できないのはなぜですか?

私はwmctrlをいじって、ウィンドウをさらに制御しました。 Unityが2倍のスペースを確保するという奇妙な動作に遭遇しました。
次のスクリーンショットをご覧ください。

enter image description here

ターミナルを開き、topコマンドを使用してウィンドウを移動しました。左上隅(X = 0 Y = 0)にあるはずです。しかし、何らかの理由で、端末とUnityバーの間にいくらかのマージンがあります。

Manページを正しく理解している場合、WA:65,24と関係がある可能性があります。

誰かがこれを修正するのを手伝ってくれますか?

6
janw

おそらくあなたが探していた答えではありません:

Unityとwmctrlの組み合わせに関する問題

Unityとwmctrlの組み合わせには、残念ながらいくつかの特性がありますが、その中にあなたが記述する動作は1つです。

出力を見る

  • 65,24は、Unityランチャーのwidthheightパネルの。
  • 行内:

    0x03400005  0 0   24    65   1111  janw_VirtualBox unity-launcher
    

    wmctrl -lGの出力では、ランチャーのサイズはx=0, y=24にあるpositionedであることがわかります。 65 x 1111。 (1111は、画面の高さからパネルの高さを引いたものです)

したがって、アクティブウィンドウを左上隅に配置するコマンドは厳密に次のようになります。

wmctrl -r :ACTIVE: -e 0,65,24,1500,550

ではなく:

wmctrl -r :ACTIVE: -e 0,0,0,1500,550

ただし、これは問題を解決するものではなく、単にバグです。あなたが説明するマージはまだあります。 xdotool(デフォルトではインストールされません)を使用する場合も同じことが起こります:

xdotool windowmove "$(xdotool getactivewindow)"  65 24

または

xdotool windowmove "$(xdotool getactivewindow)"  0 0

wmctrl -dGの出力の読み取り

1792x1111WA: 65,24 1792x1111を見ると、モニター解像度が185765 + 1792)x 11351111 + 24)。
この場合、ビューポート(ワークスペース)が1つしかないため、DG: 1857x1135の値と正確に一致します:DGは、デスクトップのtotalサイズ(すべてのビューポート)を表します。

要約する

ウィンドウmaximizedを設定すると、wmctrlxdotoolの両方が正常に機能します。説明した効果は発生しません。 Movingまたはresizingウィンドウは両方のランチャーから数ピクセル離れます この回答。 で説明されているパネル
"移動/サイズ変更するウィンドウは、Unityランチャーとトップパネルの両方から少なくとも数ピクセル必要です。"

説明とは別に、wmctrlUnityをいじり始めると、別の問題が発生しますdeviationthis one で説明されているとおり。

4
Jacob Vlijm