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 git
und 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.
vim
)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.
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.