Die Staden-Anwendungen unter macOS X anklickbar machen

Zuletzt verändert am 24. Juli 2026 • 3 Min. Lesezeit • 486 Wörter
Ich habe Staden unter Mac OS X installiert und ein wenig damit herumprobiert.

Ich habe Staden unter Mac OS X installiert und ein wenig damit herumprobiert. Für die Installation habe ich das von Anders Nisters erstellte ebiotools-Paket verwendet, das in Ausgabe 10/1 des embnet.news  beschrieben wird. Es funktioniert, wenn auch nicht ganz im Sinne der Mac-Philosophie:

  1. Zunächst muss man Apples eigene X-Windows-Implementierung (X11) starten.
  2. Dann muss man Apples Terminal-Anwendung öffnen (da Shell-Skripte nicht per Klick über die grafische Benutzeroberfläche gestartet werden können).
  3. Anschließend muss man den Befehl zum Starten eines der Staden-Programme eingeben.

Nachdem mir klar wurde, dass z. B. /usr/local/staden-linux-rel-1-4/linux-bin/trev eigentlich ein Shell-Skript ist, habe ich am Anfang zwei Zeilen hinzugefügt, um Apples X11 zu starten und die DISPLAY-Variable korrekt zu setzen. Das spart einen Schritt beim Starten. Dann habe ich versucht, dieses Shell-Skript in Cocoa zu verpacken (das ist notwendig, damit es über die Benutzeroberfläche funktioniert), aber genau hier ist es schiefgelaufen. Es gibt einige kostenlose Anwendungen, die Shell-Skripte in Cocoa einbinden (z. B. Platypus  ), aber mit keiner davon hatte ich Erfolg. Theoretisch erstellen sie aus Skripten (einschließlich Shell- und TCL-Skripten) eine anklickbare und sogar per Drag & Drop verschiebbare Cocoa-Anwendung, aber bisher haben sie ihre Versprechen noch nicht eingehalten. Ich arbeite jedoch weiter daran, da fünf Kollegen in meinem Labor darauf warten …

Ich habe zwei Probleme identifiziert: Die aus dem Shell-Skript erstellte Wrapper-Anwendung enthält die unveränderte Version des Skripts als Ressource. Diese befindet sich jedoch in einem anderen Verzeichnis als das Originalskript. Das bedeutet, dass der Wrapper nicht mehr funktioniert, wenn das Originalskript relative Pfade verwendet. Ich habe das Shell-Skript /usr/ebiotools/staden/macosx-bin/trev angepasst und im selben Verzeichnis einen Platypus-Wrapper namens trev_wrapper.app erstellt. Um das Problem mit den relativen Pfaden zu beheben, habe ich einfach „trev_wrapper.app/Contents/Resources/script“ durch einen symbolischen Link zum Originalskript ersetzt: ln -s ../../../trev. Zweitens müssen die Umgebungsvariablen zu Beginn des Skripts explizit gesetzt werden. Die Umgebungsvariable PATH wird korrekt gesetzt, wenn man ein Terminal unter macOS X startet, jedoch nicht, wenn die Wrapper-Anwendung gestartet wird (vielleicht, weil das Shell-Skript „sh“ verwendet und nicht „tcsh“, wie es die Terminal.app von macOS X standardmäßig tut?). Deshalb habe ich die PATH-Variable am Anfang des trev-Skripts explizit gesetzt. Das ist keine gute Idee, dient aber nur als Prinzipnachweis, dass es funktioniert, wenn die PATH-Einträge korrekt sind. Und tatsächlich funktionierte der Wrapper. Ich habe versucht, die Option „make dropable“ von Platypus zu verwenden, aber Platypus stürzt immer ab, wenn diese Option ausgewählt ist, selbst bei sehr einfachen Shell-Skripten. Ich habe eine andere Anwendung ausprobiert, um einen „dropable“ Wrapper zu erstellen: DropScript  . Diese Anwendung erstellt tatsächlich ein per Drag & Drop verschiebbares Cocoa-Skript! Wenn man jedoch auf das Cocoa-Symbol klickt, wird die Anwendung nicht ohne Datei gestartet, sondern es öffnet sich lediglich eine Cocoa-Anwendung, über die man Dateien öffnen kann (und nachdem man dies getan hat, wird die eigentliche Anwendung gestartet). Vielleicht finde ich heraus, wie sich der von DropScript erstellte Cocoa-Wrapper selbst per Drag & Drop bedienbar macht, und man könnte diese Funktion auf den Platypus-Wrapper übertragen.