Hey Matthias,
I'm sorry but the original problem in this thread has not been resolved with the latest version.
Here I quote the original opening post:
Totalmix and Fireface USB Settings launch on computer startup. I'd rather open these apps myself when needed but haven't figured out how to prevent autolaunch.
On the latest version, this is still the case.
Reproduction:
1) Quit every application that's open (including TotalMix and Fireface USB Settings)
2) Log out
3) Log in
4) Notice that both applications automatically appear in your dock and are running
5) Notice that Cmd+Tab also lists the applications
I understand that you are now hiding the application by default, but it is still being run on login and one has to manually quit the application each time to get it out of the way. No other Mac applications work like this and it's an important usability problem.
Daniel then said:
You shouldn't - they are required for operation. Just leave them in the dock and ignore them, they don't eat up any resources.
Ok, I understand they need to launch once to communicate with the hardware, but there are many much more elegant solutions to this problem.
Solution
Run the applications as you are now, but implement an initialisation parameter of some sort (e.g. commandname /init) which will only initialise the communication and then automatically exit (so that the apps are NOT in the dock and NOT in Cmd+Tab).
Another important point is that Fireface USB Settings really should be an interface available via System Preferences, like every other Mac driver available.
Of course you could make this behaviour optional, but I think most Mac users would opt-in to such behaviour.
Here's the technical detail of my proposal:
Currently, the FirefaceUSB.kext kernel extension is loaded via a loadctl plist in /Library/LaunchAgents:
<?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>de.rme-audio.firefaceUSBAgent</string>
<key>LimitLoadToSessionType</key>
<string>Aqua</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/System/Library/Extensions/FirefaceUSB.kext/Contents/MacOS/firefaceUSBAgent.app/Contents/MacOS/firefaceUSBAgent</string>
</array>
</dict>
</plist>
Why not implement a flag in the firefaceUSBAgent executable which will only launch the agent without Totalmix and the USB Settings window?
e.g.
firefaceUSBAgent /init
If Totalmix indeed need to be loaded for some reason, then the firefaceUSBAgent application could invoke the necessary functions required to initialise the hardware instead.
The current implementation feels very much like Windows software ported to Mac without much regard for Mac standards and usability guidelines.
I hope other Mac users will chime in here and back me on this.
Cheers