So öffnen Sie mit einem einzigen Befehl mehrere Fenster in einer vordefinierten Anordnung

So öffnen Sie mit einem einzigen Befehl mehrere Fenster in einer vordefinierten Anordnung

Ich möchte ein einzelnes Bash-Skript/eine einzelne Bash-Konfiguration/was auch immer schreiben, um durch Ausführen eines einzelnen Befehls mehrere Fenster mit einer vordefinierten Anordnung zu öffnen.

Wenn ich beispielsweise über Probleme mit dem Mailserver benachrichtigt werde, möchte ich ausführen, connect_mailserver.shwas einen Fenster-Container öffnet, der enthält

  • ein Fenster mittail -f /var/log/mail.log
  • ein Fenster mithtop
  • ein Browserfenster, das alle E-Mail-bezogenen Prüfungen in Nagios anzeigt
  • eine Shell, um Dinge auf diesem Server zu erledigen
  • ...

Alle Fenster sollten an vordefinierten Positionen gestartet werden, ich sollte sie aber auch verschieben und ihre Größe ändern können.

Ich glaube, dafür gibt es viele elegante Lösungen, vielleicht mit screenoder emacs. Vielleicht gibt es dafür ein besseres Tool? Haben Sie eine ähnliche Lösung?

Antwort1

Wahrscheinlich nicht so elegant, wie Sie es sich wünschen, aber ich würde wmctrles hierfür verwenden.

xterm -T mail.log -e tail -f /var/log/mail.log &
until wmctrl -F -r mail.log -e0,<posx>,<posy>,<width>,<height>
do sleep .1s
done

Natürlich können Sie auch andere Apps als xterm verwenden. wmctrlkann nur Fenstertitel oder Fenster-IDs abgleichen. Wenn Sie Ihren Fenstertitel nicht festlegen können, müssen Sie seine ID finden, indem Sie grepdie Ausgabe wmctrl -lpfür die entsprechende PID mit -ing versehen.

Antwort2

Verwenden

xterm -geometry 120x50+100+100 -e 'command'

Der Geometrieparameter lautet wie folgt: LINESxCOLUMNS+XSTART+YSTART

Wenn Sie die Geometrieparameter herausfinden möchten, öffnen Sie mehrere xterms, starten Sie „xwininfo“ in einem anderen und klicken Sie dann auf das Fenster, dessen Geometrieparameter Sie erfahren möchten.

verwandte Informationen