A machine's definition is a JSON file you can read directly, and every
individual setting has a dotted key.
1vm config dev # the whole definition
1vm get dev # list every available key
1vm get dev network.mode # read one
1vm set dev network.mode nat
Settings are validated when you set them, not when the machine boots — so an
invalid value fails immediately with a reason rather than at 3am during a
start. Where an engine supports changing a setting on a running machine it
applies live; otherwise it takes effect at next boot. Hardware changes on a
running machine are refused unless the setting explicitly says otherwise.
Machine
| Key | Notes |
|---|
cpuCount | Virtual CPUs |
memory | e.g. 8GiB |
diskSize | A ceiling; the disk is sparse |
macAddress | The guest's MAC |
clipboardSharing | Both directions. Linux needs spice-vdagent; macOS guests cannot |
rosetta | x86 translation in a Linux guest, Virtualization.framework only |
Network
| Key | Notes |
|---|
network.mode | nat, host-only, or bridged:en0 |
portForwards.add | e.g. tcp:2222:22 |
portForwards.remove | Same form |
Shared folders
| Key | Notes |
|---|
sharedFolders.add | tag=projects path=~/Projects |
sharedFolders.remove | By tag |
Graphics
| Key | Notes |
|---|
graphics.resolution | Guest display size |
graphics.displays | Number of heads |
graphics.hiDPI | Retina scaling |
graphics.acceleration | Where the engine and guest support it |
Input
| Key | Notes |
|---|
input.commandKey | What ⌘ sends to the guest |
input.optionKey | What ⌥ sends |
input.translateMacShortcuts | Map Mac shortcuts to guest equivalents |
input.translateOptionArrows | Word-wise cursor movement |
input.captureSystemShortcuts | Let the guest take system shortcuts |
input.matchHostKeyboardLayout | Follow the Mac's layout |
input.keyboardProfile | Keyboard model presented to the guest |
input.mouse | Pointer device type |
input.releaseChord | The keys that release keyboard capture |
SSH
| Key | Notes |
|---|
ssh.access | Enable or disable Mac-to-guest SSH |
ssh.disable | Turn it off |
ssh.users | Which guest users are reachable |
ssh.hostPort | Host-side port |
ssh.alias | Name used in ~/.ssh/config |
ssh.identity / ssh.identityFile | Key selection |
ssh.passwordAuthentication | Allow password auth |
A note on unavailable settings
Options your Mac or the chosen engine cannot support stay visible and
disabled with a reason rather than disappearing. An option that vanishes
teaches you nothing; one that explains itself tells you whether a different
engine or a newer Mac would change the answer.