Ich habe einige Anwendungen mit gemischten Bewertungen gesehen, die es einem Benutzer ermöglichen, die Reihenfolge der Startelemente zu ändern. Ich würde einfach die "Bare-Metal"-Methode bevorzugen und dazu die Shell oder den Open Directory / Netinfo-Editor verwenden. Mir ist klar, dass dies nicht gesteuert wird launchd
, also was ist der Mechanismus und wo ist der bevorzugte Ort für die Definition des App-Starts?
Ich habe festgestellt, dass der App-/Fensterwiederherstellungsprozess von OS X weniger als glanzlos ist, und ich muss sicherstellen, dass bestimmte Apps zuerst vor anderen gestartet werden (z. B. ScreenRecycler, da ich Anwendungen auf dem anderen Display öffnen muss, wenn sie gestartet werden).
Wenn Sie ein Shell-Skript zum Öffnen von Anwendungen verwenden, versuchen Sie Folgendes:
osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission
Sie können das Skript bei der Anmeldung ausführen, indem Sie beispielsweise die folgende plist als ~/Library/LaunchAgents/some.label.plist
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.label</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
osascript -e 'launch app "AppName"
und osascript -e 'activate app "AppName"
werden blockiert, bis die Anwendung das Öffnen beendet. launch
macht keine Bewerbung an erster Stelle, tut es activate
aber. Wenn eine Anwendung wie TextEdit oder Mail nicht ausgeführt wird, launch
öffnen Sie activate
ein neues sichtbares Standardfenster. osascript -e 'tell app "TextEdit"' -e reopen -e activate -e end
öffnet auch ein Standardfenster, wenn TextEdit läuft, aber keine offenen Fenster hat.
open -jg
öffnet eine Anwendung normalerweise versteckt ( -j
) und ohne sie in den Vordergrund zu stellen ( -g
). Bei einigen Anwendungen wie TextEdit und Mail wird ein neues sichtbares Fenster geöffnet, wenn die Anwendung ausgeführt wird, aber keine geöffneten Fenster hat. Um dies zu vermeiden, überprüfen Sie, ob die Anwendung bereits ausgeführt wird, z. B. mit pgrep
. Die -j
Option für open
wurde in 10.8 hinzugefügt und wird nur in der Hilfenachricht und nicht auf der Manpage angezeigt.
lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app
öffnet TextEdit auch immer versteckt und ohne es in den Vordergrund zu stellen. lsappinfo
wurde in 10.9 hinzugefügt. Ich weiß nicht, wie ich lsappinfo
warten soll, bis eine Anwendung vollständig geöffnet ist.
Die Einstellungen für Anmeldeobjekte werden in gespeichert ~/Library/Preferences/com.apple.loginitems.plist
. Sie können ein Anmeldeobjekt mit AppleScript hinzufügen:
osascript -e 'tell application "System Events" to make new login item at end with properties {path:"/Applications/TextEdit.app", name:"TextEdit", hidden:true}'
Einige Anwendungen und Prozesse werden über Eigenschaftslisten in ~/Library/LaunchAgents/
, /Library/LaunchAgents/
, oder gestartet /Library/LaunchDaemons/
. _com.apple.SMLoginItemBookmarks
in /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
wird verwendet, um Anmeldeelemente für Hilfsanwendungen zu konfigurieren, die von Sandbox-Anwendungen wie ScreenFlow, DayOne und TuneUp verwendet werden.
Seit 10.7 gibt es eine relativ lange Verzögerung, bevor einige Login-Items oder Launchd-Jobs gestartet werden. Ich kenne keine Möglichkeit, es zu reduzieren, aber die FAQ von KeyRemap4MacBook sagt, dass es durch Resume verursacht wird:
KeyRemap4MacBook funktioniert nach dem Booten unter OS X 10.7 nicht. Was soll ich machen?
Die von Lion eingeführte „Fortsetzen“-Funktion verzögert das Starten von Apps bei der Anmeldung.
Bis KeyRemap4MacBook.app bei der Anmeldung gestartet wird, wird das Tastaturlayout nicht geändert. Bitte warten Sie eine Minute, bis das Menü von KeyRemap4MacBook angezeigt wird.
Da ich also keine Empfehlungen gesehen habe, werde ich fortfahren und die Antwort vorbringen, mit der ich bisher fortgefahren bin.
Die Lösung war bisher für mich Startupizer . Es ist offensichtlich nicht optimal, da es sowohl eine kostenpflichtige Lösung als auch keine Methode ist, die direkt vom Betriebssystem aus verfügbar ist, aber es funktioniert und hat es mir ermöglicht, Abhängigkeitsbedingungen und verschiedene andere Verzögerungen für die hilfreiche und erfüllte Bestellung zu erstellen meine Bedürfnisse.
Ich hoffe, das hilft jemandem und ich hoffe, dass jemand bald eine OS-integriertere Lösung empfiehlt.
leuchten
Fahrrad