Bash: X-/KDE- Fenster maximieren. Wie?

Hallo

Kann ein minimiertes X-/KDE-Fenster per Bash-Script maximiert werden? Wenn ja, wie geht das? Habe es mit kill - versuchen wollen, es gibt aber kein passendes Signal.

Dank und Gruss
Olli

Hallo Olli,

Kann ein minimiertes X-/KDE-Fenster per Bash-Script maximiert
werden? Wenn ja, wie geht das?

Du kannst es mal mit dem Befehl kstart probieren. Der hat u.a. eine Option --maximize.
Normalerweise werden mit kstart Programme gestartet. Ich weiss jetzt nicht genau, wie man das anwenden kann, wenn das Programm, bzw. das Fenster schon gestartet ist. Da ich Gnome benutze, kann ich es auch nicht ausprobieren.
Die Syntax von kstart lautet:

kstart [Qt-Optionen] [KDE-Optionen] [Optionen] command

Die möglichen Optionen bekommst Du mit

kstart --help-all

Ansonsten hilft auch

man kstart

oder

info kstart

Hier gibt es auch ein paar Beispiele:
http://www.dachboden-wg.de/portal/index2.php?option=…

Ist bloss ein Ansatz, aber vielleicht hilfts ja beim experimentieren.

Viel Erfolg
Klaus Bernstein

Hallo Olli.

Kann ein minimiertes X-/KDE-Fenster per Bash-Script maximiert
werden? Wenn ja, wie geht das?

Habe es mit kill- versuchen wollen, es gibt aber kein passendes Signal.

Das hast Du richtig erkannt. Signale sind der primitivste Mechanismus, um zwischen
Prozessen Daten auszutauschen. Für so etwas „kompliziertes“ wie eine Fenstermaximierung
wurden sie nicht geschaffen. Da muss man mit härteren Geschützen auffahren.

Es gibt kein Standardwerkzeug unter X, um ein Fenster per Kommandozeile zu
maximieren. Man kann das ganze in C mit Hilfe der X-Library programmatisch
lösen, was sehr „low-level“ ist. Glücklicherweise hat sich da schon jemand
die Arbeit gemacht. Das Programm nennt sich xwit. Eine Beschreibung findet sich unter http://www.slack.com/sw/xwit-man.html.

- xwit herunterladen von http://www.slack.com/sw/xwit-3.4.tar.gz
- Auspacken
- Kompilieren, auf meinem Rechner per
 # gcc -L /usr/X11R6/lib64 -o xwit xwit.c dsimple.c ClientWin.c -lX11

Mit xwit bewaffnet, kann man dann folgendermassen per Skript ein Fenster
maximieren.

(1) Bestimmen der Bildschirmgröße
$ export \_WIDTH=$(xwininfo -root | grep 'Width:' | awk '{ print $2; }')
$ export \_HEIGHT=$(xwininfo -root | grep 'Height:' | awk '{ print $2; }')

(2) Maximieren des Fensters
Bei Fenster mit gesetztem Namen (z.B. xterm -name "MeinFenster"):
$ ./xwit -names "MeinFenster" -pop -resize $\_WIDTH $\_HEIGHT

Bei Fenster mit bekannter Fenster-ID (bestimmbar über xwininfo):
$ ./xwit -id 0x1e00007 -pop -resize $\_WIDTH $\_HEIGHT

Der Knackpunkt hier ist, den Namen oder die ID des zu steuernden Fensters herauszubekommen.
Programmatisch kommst Du da am besten ran, wenn Du eine der folgenden Ausgaben
nach bekannten Schlüsselwörtern (Programmname, Fenstername, Befehlszeile etc.) filterst:

$ xlsclients -l
$ xwininfo -root -tree

Übrigens bietet KDE für das Minimieren aller Fenster über seine DCOP-Schnittstelle
eine Fertiglösung auf höherer Ebene, in dem man die Funktion „Zugriff auf Arbeitsfläche“
per Skript aufruft:

$ dcop kicker $(dcop kicker qt objects | grep ShowDesktop | head -n 1 | tr '(' ' ' | awk '{ print $1; }') toggle

Gruß,
-Andreas.

… cool, da ich teilweise dcop in meinen Scripts verwende, passt das perfekt.

Vielen Dank!
Olli