On Linux and UNIX systems in particular, there might be some advantage to being able to start ADTPro without an X11 GUI for daemon usage and for operation on low-resource SBCs such as the older and low-end Raspberry Pis.
One way this might be accomplished perhaps without too much fuss would be a command line argument which causes ADTPro to use a stdio-based menu system in place of any GUI. I suggest stdio because in my opinion this does not need to be a particularly complex interface. For example, when started without (other) arguments, an ADTPro session might look something like this:
ADTPro Server <version> (disconnected)
Main Menu
1. Connect serial (/dev/ttyUSB0, 115200)
2. Connect ethernet
3. Connect audio
6. Configuration
7. About and getting help
0. Exit ADTPro Server
Your selection: 7
Apple Disk Transfer ProDOS (ADTPro) <version>
ADTPro is a communications program to transfer disk images and even bootstrap Apple ][ and Apple /// computers.
ADTPro was written by David Schmidt, and is based in part on works by Paul Guertin and many others.
Visit ADTPro on the web at:
http://adtpro.sourceforge.net
ADTPro is licensed under the GNU General Public License (GPL) Version 2.
Press return to continue:
Note the lack of wrapping--and there may be reason to update this about text slightly to make it more helpful. Other main menu choices disabled here at the moment are Disconnect and Bootstrap
ADTPro Server <version> (disconnected)
Main Menu
1. Connect serial (/dev/ttyUSB0, 115200)
2. Connect ethernet
3. Connect audio
6. Configuration
7. About and getting help
0. Exit ADTPro Server
Your selection: 7
Configuration Menu
1. Serial port (/dev/ttyUSB0)
2. Serial speed (115200)
3. IIc Imagewriter Cable (off)
4. Bootstrap pacing (250)
5. Bootstrap speed (2400)
6. Working directory (/usr/local/adtpro/disks)
7. Activate Trace (off)
0. Return to Main Menu
Your selection:
I think you've got the idea I'm going for here.
An argument to start the server with no UI whatsoever might be useful for daemonization. It might be useful to have it write out its PID and everything but it's java, so ... aside from a band-aid like org.apache.commons.daemon there's just not much to be done there, and it's beyond the scope of my thinking here.