Problem beim Festlegen von Terminalfenstergrenzen mit AppleScript

Problem versucht zu lösen

Ich verwende mehrere Terminalfenster, um Webanwendungen zu entwickeln. Ich habe ein offenes Terminal für vim, ein offenes Terminal für gitund ein offenes Terminal für grundlegende Datei-/Verzeichnisbefehle. Die Terminalanwendung merkt sich die Fenstereinstellungen nicht. Wenn ich also das Terminal beende oder neu starten muss, muss ich die Größe und Position meiner Terminalfenster manuell ändern. Ich möchte diesen Prozess mit AppleScript automatisieren.

  • 1 Fenster, groß, füllt die linke Bildschirmhälfte aus ( vim)
  • 2 Fenster, kleiner, übereinander gestapelt, füllen die andere Hälfte des Bildschirms aus

Mein Lösungsversuch

tell application "Terminal"

    activate
    set the bounds of the front window to {5, 0, 1000, 950}
    do script "clear" -- opens up the second window
    set the bounds of the front window to {1105, 0, 400, 500}
    -- haven't gotten to third window yet   

end tell

Das Problem

Das zweite Fenster, das von erstellt wird do script "clear", ist seltsam positioniert. Links, oben und Höhe verhalten sich alle wie erwartet. Das Fenster wird jedoch auf seine minimale Breite gesetzt, unabhängig vom Wert, der im Breitenparameter übergeben wird. Es könnte 1000 sein und es ist immer noch auf Minimum eingestellt. Ich habe erfolglos bei Google, SO, Super User und Ask Different gesucht.

Irgendwelche Ratschläge, was ich falsch mache oder was dieses Problem mit der seltsamen Breite des von erstellten Fensters verursachen könnte do script "clear"?

Haftungsausschluss

Ich bin ein AppleScript-Anfänger. Die Syntax ist anders als alles, womit ich je gearbeitet habe (PHP, VBA, JavaScript) und ich bin mir fast sicher, dass dies nicht der beste oder nicht einmal richtige Weg ist, das zu tun, was ich tun möchte. Ich kenne AppleScript jedoch nicht genug, um es wirklich zu sagen, außer dem Bauchgefühl.

Antworten (1)

Die Fenstergrenzen sind eine Liste von Koordinaten {links, oben, rechts, unten}. Sie haben wahrscheinlich beabsichtigt, dass "400" die Breite ist, aber es ist die Position der rechten Kante des Fensters und 400 befindet sich links von 1105, sodass Sie ein Fenster mit minimaler Breite erhalten. Ändern Sie 400 in 1105 plus die gewünschte Breite, z. B. 1505.

Aber bevor Sie dies weiter verfolgen, hat Terminal eine bessere Lösung dafür: Fenstergruppen. Wenn Sie eine Gruppe von Fenstern einrichten und als Fenstergruppe speichern, werden jedes Mal, wenn Sie diese Gruppe öffnen, Fenster mit demselben Layout und Aussehen erstellt.

Fenster > Fenster als Gruppe speichern…

Sie können Terminal sogar anweisen, beim Start eine ausgewählte Fenstergruppe zu öffnen:

Terminal > Einstellungen > Start > Öffnen Sie beim Start: > Fenstergruppe:

(Als Abkürzung gibt es beim Erstellen einer Fenstergruppe ein Kontrollkästchen, um sie zur Startgruppe zu machen.)

Um bestimmte Befehle in diesen Fenstern automatisch auszuführen, können Sie benutzerdefinierte Einstellungsprofile erstellen und den Befehl mit angeben

Terminal > Einstellungen > Einstellungen > [Profil] > Shell > Start > Befehl ausführen:

Erstellen Sie dann jedes Fenster mit dem entsprechenden Profil.

Darüber hinaus können Sie in Mac OS X Lion 10.7 Fenstergruppen Befehle automatisch wiederherstellen lassen, ohne benutzerdefinierte Profile zu erstellen, indem Sie die Terminals mit erstellen

Shell > Neuer Befehl

anstatt den Befehl in der Terminal-Shell auszuführen. Beim Erstellen der Fenstergruppe können Sie "Alle Befehle wiederherstellen" aktivieren. (Standardmäßig stellt es einen kleinen Satz "sicherer" Befehle wieder her, aber Sie müssen es explizit angeben, wenn Sie möchten, dass es beim Öffnen der Gruppe alle Befehle erneut ausführt.)

Darüber hinaus unterstützt Lion Terminal Resume und stellt jedes Mal, wenn Sie Terminal öffnen, automatisch alle Ihre Fenster wieder her. Es stellt sogar "sichere" Befehle für Terminals wieder her, die mit New Command erstellt wurden.