it-swarm.com.de

Angeben der X-Fenster-Geometrie in den von wmctrl erhaltenen Koordinaten

In der X-Dokumentation habe ich gelesen, dass die Koordinaten Width, Height, Xposition und Yposition in Endzeichen angegeben werden müssen, wenn Folgendes verwendet wird:

gnome-terminal --geometry=WidthxHeight+Xposition+Yposition

Wenn ich als Eingabekoordinaten diejenigen verwende, die ich von einer wmctrl -lG -Ausgabe erhalte (nicht sicher, ob wmctrl Pixel, Endzeichen oder etwas anderes als geometrische Einheiten verwendet), erhalte ich nicht die erwarteten Ergebnisse. Das heißt Die von wmctrl -lG ausgegebenen Geometriekoordinaten und diejenigen, die ein Benutzer mit gnome-terminal --geometry angeben kann, sind unterschiedlich.

Was mache ich falsch? Irgendwelche Gedanken?

Vielen Dank

Die Option --geometry für gnome-terminal wird tatsächlich in Zeichen und nicht in Pixeln gemessen. Um beispielsweise ein Terminal mit 80 Spalten und einer Höhe von nur 10 Zeilen zu erhalten, können Sie gnome-terminal wie folgt starten:

gnome-terminal --geometry 80x10

Das Terminal ändert die Größe in Schritten der Schriftgröße, die es mit WM_NORMAL_HINTS an den X-Server übermittelt. Sie können diese mit dem Befehl xprop untersuchen. Zum Beispiel finde ich hier eine Terminal-Fenster-ID und frage xprop danach:

$ wmctrl -lG | tail -n1
0x06400021  0 592  314  580  338  myhostname [email protected]: ~
$ xprop -id 0x6400021
...
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified minimum size: 48 by 16
        program specified resize increment: 7 by 14
        program specified base size: 20 by 2
        window gravity: NorthWest
...

In diesem Fall beträgt die Schriftgröße 7 x 14 Pixel. Wenn ich also ein Terminal mit einer Größe von 70 x 140 Pixel haben möchte, könnte ich gnome-terminal --geometry 10x10 ausführen (obwohl es 20 x 2 Pixel größer wäre als das, das auf den Fenstermanagerdekorationen usw. basiert, wie in der obigen "spezifischen Basisgröße" zu sehen ist ).

17
Kees Cook