The distinction between command line args meaningful to the VM or the .changes file can be found by defining the startup command as
SqueakVM [vmOptions] imageName [imageOptions]
In other words, the first argument NOT meaningful to the VM is interpreted as the first image option. If the first image option is not the name of a valid Squeak image, then the VM may silently insert a hidden name of an image (at least on Mac and Win32 it does) allowing starting any *.sqo file by double-clicking or dragging on the VM executable. – VM Command Line Options
Windows VM Options
Following are some of the command line options for the Squeak Windows VM (abstracted from some of Andreas's postings to the Squeak mailing list). Note that the space between an option and its argument (or between options) is required:
Tells Squeak to run without a main window. However, for allowing at least some access to Squeak, an icon is added to the system tray. If you double-click this icon, the Squeak window will show up again.
Use the named file as log file for VM messages.
For limiting or expanding the memory allocated for the VM at startup (the standard amount allocated by the Win32 VM is 16MB)
Install Squeak as Windows NT service. You will be asked for a couple of things such as if to start the service on system startup or if to run the service right now. You can modify these settings in the service control panel.
You can get Squeak into any Win32 Window you want, with the security measures turned on: the only files you can see and manipulate are those in and beyound the image directory -- everything else you can't see, touch, or destroy. (This is also true when you start the Win32 VM as a browser plugin.)
NOTE: When using the -service: option, you must give the entire command line as if you want to run the image immediately. The installation process will add a few registry settings to determine the command line during system start up.
NOTE 2: In some versions of Win32 VM you have to specify image file path in *.INI file to run Squeak as service correctly.
The "-service:" switch is fully supported on Win95 but has a little non-standard behavior. Squeak will show up in the system tray (just as when running -headless) because there is no such thing as a service control panel within Win95. If you want to remove a service from a Win95 system you'll have to remove the entry in the registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
-browserWindow <wid> run in window <wid>
-browserPipes <r> <w> run as Browser plugin using descriptors <r> <w>
-cmdmod <n> map Mod<n> to the Command key
-display <dpy> display on <dpy> (default: $DISPLAY)
-fullscreen occupy the entire screen
-headless run in headless (no window) mode
-iconic start up iconified
-lazy go to sleep when main window unmapped
-mapdelbs map Delete key onto Backspace
-nointl disable international keyboard support
-notitle disable the Squeak window title bar
-optmod <n> map Mod<n> to the Option key
-swapbtn swap yellow (middle) and blue (right) buttons
-xasync don't serialize display updates
-xshm use X shared memory extension
-encoding <enc> set the internal character encoding (default: MacRoman)
-help print this help message, then exit
-memory <size>[mk] use fixed heap size (added to image size)
-mmap <size>[mk] limit dynamic heap size (default: 1024m)
-noevents disable event-driven input support
-notimer disable interval timer for low-res clock
-pathenc <enc> set encoding for pathnames (default: UTF-8)
-plugins <path> specify alternative plugin location (see manpage)
-textenc <enc> set encoding for external text (default: UTF-8)
-version print version information, then exit
-vm-<sys>-<dev> use the <dev> driver for <sys> (see below)
-display <dpy> equivalent to '-vm-display-X11 -display <dpy>'
-headless equivalent to '-vm-display-X11 -headless'
-nodisplay equivalent to '-vm-display-null'
-nosound equivalent to '-vm-sound-null'
-quartz equivalent to '-vm-display-Quartz'
<imageName> defaults to `squeak.image'.
Using `unix:0' for <dpy> may improve local display performance.
-xshm only works when Squeak is running on the X server host.
If `-memory' is not specified then the heap will grow dynamically.
<argument>s are ignored, but are processed by the Squeak image.
The first <argument> normally names a Squeak `script' to execute.
Precede <arguments> by `–' to use default image.
Macintosh Carbon VM
Starting at 3.5.1b4 the macintosh VM takes the following attributes in the applications info.plist.
SqueakMaxHeapSize - (bytes) maximum heap size, normally 512MB
SqueakFloatingWindowGetsFocus - (yes/no) Window should get keyboard focus
SqueakWindowAttribute - <8200001e> attributes for window, see apple's documentation
SqueakWindowType - 6 (normal document window) (8 is floating window) see apple's documentation
SqueakWindowHasTitle - (yes/no) Squeak window gets image name in title bar?