Where VirtualZones stores settings (settings.json) and data
Where everything lives
Section titled “Where everything lives”| What | Location | Notes |
|---|---|---|
| Settings and layouts | %APPDATA%\VirtualZones\settings.json |
JSON, format below |
| Usage counter (About → “Used N times”) | %APPDATA%\VirtualZones\usage.dat |
Local only, never sent anywhere. Kept separate from settings.json since 1.3.15 so an older copy can’t reset it |
| License | %APPDATA%\VirtualZones\license.dat |
Encrypted with Windows DPAPI for your user on this PC, so it won’t work if copied elsewhere |
| Trial start date | %APPDATA%\VirtualZones\trial.v2.dat and registry HKCU\Software\VirtualZones |
Encrypted |
| Language files | %APPDATA%\VirtualZones\lang\<code>.lang |
Downloaded translations, used offline |
| Start with Windows | Registry HKCU\Software\Microsoft\Windows\CurrentVersion\Run, value VirtualZones |
Contains "<path to exe>" --tray |
| Diagnostic log | %TEMP%\virtualzones.log |
Plain text. Never contains your license key. Attach it to bug reports |
| Downloaded update | %TEMP%\VirtualZones-Update-Setup.exe |
Only while an update is pending |
| Program | %LOCALAPPDATA%\Programs\VirtualZones\ (or C:\Program Files\VirtualZones\ for all users) |
Tip: paste %APPDATA%\VirtualZones into the File Explorer address bar to open the folder.
settings.json
Section titled “settings.json”Example:
{ "AutoStart": true, "AccentColor": "#a855f7", "Theme": "auto", "Language": "en", "HideToTray": true, "StartMinimized": false, "UpdateAutomatically": false, "HotkeyStartStop": [3, 82], "HotkeyToggleZones": [3, 90], "HotkeyCycleLayout": [3, 67], "HotkeyMoveLeft": [3, 65], "HotkeyMoveRight": [3, 68], "HotkeyMoveUp": [3, 87], "HotkeyMoveDown": [3, 83], "HotkeyShareZone1": [3, 49], "HotkeyShareZone2": [3, 50], "HotkeyShareZone3": [3, 51], "HotkeyShareZone4": [0, 0], "Screens": [ { "Id": "MONITOR\\SAM0F9D\\{4d36e96e-e325-11ce-bfc1-08002be10318}\\0003", "Name": "C49RG9x", "Enabled": true, "CoverTaskbar": false, "ActiveLayout": "25% | 50% | 25%" } ], "ScreenLayouts": [ { "Screen": "MONITOR\\SAM0F9D\\{4d36e96e-e325-11ce-bfc1-08002be10318}\\0003", "Name": "25% | 50% | 25%", "Zones": [[0, 0, 0.25, 1], [0.25, 0, 0.75, 1], [0.75, 0, 1, 1]] }, { "Screen": "MONITOR\\SAM0F9D\\{4d36e96e-e325-11ce-bfc1-08002be10318}\\0003", "Name": "Quad", "Zones": [[0, 0, 0.5, 0.5], [0.5, 0, 1, 0.5], [0, 0.5, 0.5, 1], [0.5, 0.5, 1, 1]] } ], "SelectedScreen": "MONITOR\\SAM0F9D\\{4d36e96e-e325-11ce-bfc1-08002be10318}\\0003"}Screens and layouts
Section titled “Screens and layouts”Screensholds one entry per monitor ever seen.Idis the monitor’s hardware ID. Run--list-monitorsto see yours.ScreenLayoutsis a flat list of every layout. Each entry is tagged with theScreenit belongs to. Layouts tagged with an unknown screen ID are dropped.Zonesare[left, top, right, bottom]as fractions from 0 to 1 of the screen area.- Layout names can’t contain
"\{}[]. - Missing keys fall back to their defaults.
A hand-edited layout that doesn’t form a clean grid still works for confinement, but can’t be opened in the editor.
Hotkeys in settings.json
Section titled “Hotkeys in settings.json”Each hotkey is [modifiers, key]:
- modifiers add up: Alt = 1, Ctrl = 2, Shift = 4, Win = 8. So Ctrl+Alt =
3. - key is the Windows virtual-key code: letters A–Z are 65–90, digits 0–9 are 48–57.
[0, 0]means unbound.
The keys are HotkeyStartStop, HotkeyToggleZones, HotkeyCycleLayout, HotkeyMoveLeft, HotkeyMoveRight, HotkeyMoveUp, HotkeyMoveDown and HotkeyShareZone1 to HotkeyShareZone9. The Keyboard Shortcuts dialog is the easier way to change them.
Backing up or copying layouts
Section titled “Backing up or copying layouts”There’s no import/export button. To back up or move layouts:
- Exit VirtualZones from the tray.
- Copy
%APPDATA%\VirtualZones\settings.json. - On another PC, the
Screenvalues inScreenLayoutsmust match that PC’s monitor IDs. RunVirtualZones.exe --list-monitorsthere, then update theScreen(andScreens[].Id) values before starting VirtualZones.
Don’t copy license.dat or trial.v2.dat. They are encrypted to the original PC and won’t work. To move a license, use Deactivate.