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
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