Wenn ein Benutzer mein C++-Programm lädt, möchte ich, dass Terminal auf eine bestimmte Weise aussieht. Ich habe dies gelöst, indem ich mein Programm in eine AppleScript .app gepackt habe, die überschreibt ~/Library/Preferences/com.apple.Terminal.plist
(zuerst eine Sicherungskopie erstellt), bevor das Programm geöffnet wird. Mit einem nachfolgenden killall cfprefsd
funktioniert das (wenn Terminal nicht von vornherein geöffnet war!), aber ich möchte nicht die eigenen Terminal-Einstellungen des Benutzers durcheinander bringen. Also überschreibe ich nach Aufruf meines Programms ...Terminal.plist
wieder mit der Sicherung der Originaleinstellungen.
Das Problem ist, dass, wenn mein Programm fertig ist und Terminal geschlossen wird, seine Einstellungen automatisch mit denen des aktuellen Fensters überschrieben werden, was bedeutet, dass der Benutzer bei dem Aussehen bleibt, das ich für mein Programm festgelegt habe. Ich habe versucht, dem entgegenzuwirken, indem ich das AppleScript warten ließ, bis Terminal geschlossen wurde, und dann die Plist erneut mit dem Backup überschrieb, was funktioniert, aber wenn meine App vor dem Terminal geschlossen werden sollte, schlägt dies natürlich fehl. Und der ganze Prozess scheint zunächst ziemlich hacky zu sein.
Kann ich verhindern, dass Terminal seine Einstellungen beim Schließen überschreibt? Oder noch besser, kann ich meinen Code in einem Terminal ausführen lassen, das so aussieht, wie ich es möchte, ohne die Einstellungen des Benutzers zu verändern? Vorzugsweise würde ich Terminal überhaupt nicht verwenden, um meinen Code auszuführen (damit es auch nicht fehlschlägt, wenn Terminal bereits geöffnet war), aber ich denke, die einzige Alternative besteht darin, mein eigenes zu schreiben ...
Geschichtsstempel
CosmoM
mmmmmm