Warum kann ich in Unity ein Fenster nicht mit wmctrl in die obere linke Ecke verschieben?

Warum kann ich in Unity ein Fenster nicht mit wmctrl in die obere linke Ecke verschieben?

Ich habe ein bisschen herumprobiert, wmctrlum mehr Kontrolle über meine Fenster zu bekommen. Dabei ist mir ein seltsames Verhalten aufgefallen, bei dem Unity den doppelten Platz reserviert.
Sehen Sie sich diesen Screenshot an:

Bildbeschreibung hier eingeben

Ich habe das Terminal geöffnet und das Fenster mit dem Top-Befehl verschoben. Es sollte in der oberen linken Ecke sein (X=0 Y=0). Aber aus irgendeinem Grund gibt es einen gewissen Abstand zwischen dem Terminal und den Unity-Balken.

Wenn ich die Manpages richtig verstehe, könnte es etwas damit zu tun haben,WA: 65,24.

Kann mir jemand helfen, das zu beheben?

Antwort1

Wahrscheinlich nicht die Antwort, nach der Sie gesucht haben:

Probleme mit der Kombination von Unity undwmctrl

Die Kombination aus Unity und wmctrlweist leider einige Eigenheiten auf, zu denen auch das von Dir beschriebene Verhalten gehört.

Betrachten Sie Ihre Ausgabe

  • Die, die 65,24Sie erwähnen, sind dieBreitedes Unity Launcher und derHöheIhres Panels.
  • In der Schlange:

    0x03400005  0 0   24    65   1111  janw_VirtualBox unity-launcher
    

    In der Ausgabe von wmctrl -lGkönnen Sie sehen, dass der Launcherpositioniertbei x=0, y=24, während die Größe des Launchers beträgt 65 x 1111. ( 1111ist die Höhe Ihres Bildschirms abzüglich der Höhe Ihres Panels)

Streng genommen müsste der Befehl zum Platzieren des aktiven Fensters in der oberen linken Ecke daher lauten:

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

und nicht:

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

Dies wird das Problem jedoch nicht lösen, es ist einfach ein Fehler. Der von Ihnen beschriebene Rand wird weiterhin vorhanden sein. Dasselbe passiert übrigens auch bei Verwendung von xdotool(nicht standardmäßig installiert):

xdotool windowmove "$(xdotool getactivewindow)"  65 24

oder

xdotool windowmove "$(xdotool getactivewindow)"  0 0

Lesen der Ausgabe vonwmctrl -dG

Wenn Sie sich das 1792x1111in ansehen WA: 65,24 1792x1111, können Sie sehen, dass Sie eine Monitorauflösung von 1857( 65+ 1792) x 1135( 1111+ 24) haben.
In diesem Fall, entspricht genau den Werten in DG: 1857x1135, da Sie nur einen Viewport (Arbeitsbereich) haben: DGsteht für diegesamtGröße Ihres Desktops (alle Ansichtsfenster).

Zusammenfassend

Beide wmctrlfunktionieren xdotooleinwandfrei, wenn Sie ein FenstermaximiertDer von Dir beschriebene Effekt wird nicht eintreten.Ziehen umoderGrößenänderungWindows lässt jedoch einige Pixel sowohl vom Launcher als auch vom Panel übrig, wie indiese Antwort.:
„Das zu verschiebende/in der Größe zu ändernde Fenster muss mindestens einige Pixel vom Unity-Launcher und vom oberen Panel entfernt sein.“

Abgesehen von dem, was Sie beschreiben, ein weiteres Problem, auf das Sie stoßen werden, wenn Sie anfangen, damit herumzuspielen wmctrl, Unityist dasAbweichung, wie beschrieben inDieses hier.

verwandte Informationen