Config file
All TesseraSnap settings live in one plain-text file, config.toml. Settings edits it for you; you can also edit it by hand.
Where it is
%APPDATA%\TesseraSnap\config.toml
- Usually
C:\Users\you\AppData\Roaming\TesseraSnap\config.toml. - To open it, click Open config file in Settings → App Settings. If Windows asks for an app, pick Notepad.
Edit it by hand
- Open the file, change a value and save it.
- Open Settings and click Save, or run
tesserasnap.exe --reload. It applies at once.
- Every key is optional; a missing one uses its default.
- The first run writes every default, plus a comment listing all action and key names.
- If the file has a mistake, TesseraSnap uses the defaults and logs it to
tesserasnap.log. Your file is kept. - Save in Settings rewrites the file, so save hand edits before using Settings.
- To start over, click Restore all defaults…, or quit TesseraSnap, delete
config.tomland start it again. config_version(now8) records the format. An update that changes a default only changes values still at the old one.
Sections
| Section | Holds | In the Settings window |
|---|---|---|
[general] | Behavior and App Settings options | Behavior, App Settings |
[hotkeys] | One line per shortcut | Keyboard Shortcuts |
[snap], [snap.zones] | Drag-to-snap and what each area does | Snap Areas |
[gesture], [gesture.directions], [gesture.long_directions] | Window Throw and its targets | Cursor Movement |
[quick_throw], [quick_throw.directions] | Quick Throw | Quick Throw |
[move_resize] | Move & Resize keys | Cursor Movement |
[[custom]] | One block per custom size | Custom Sizes |
[[layouts]] | One block per saved layout, with its windows | Layouts |
[pin] | Pin Mode side, width, reflow, the app to keep pinned, menu | Pin Mode |
[stash] | Stash sliver size, tabs, show and hide behavior, menu | Stash |
Each guide page lists the config key beside each setting.
Shortcut syntax
In [hotkeys], each line is action = "keys". Delete a line to remove that shortcut.
[hotkeys]
left_half = "ctrl+alt+left"
custom_1 = "ctrl+alt+n"
layout_1 = "ctrl+alt+1"
show_menu = "ctrl+alt+m"
- Write the modifiers, then exactly one key, joined with
+. - Modifiers:
ctrl,alt,shift,win. You can also writecontrol,optionoroptfor Alt, andsuper,cmdormetafor Win. - Keys:
a–z,0–9,f1–f24,left,right,up,down,enter,backspace,space,tab,escape,delete,insert,home,end,pageup,pagedown,minus,equals,comma,period,slash,semicolon,quote,lbracket,rbracket,backslash,grave,numpad0–numpad9,numpadadd,numpadsubtract,numpadmultiply,numpaddivide,printscreen,pause.
Modifier-only settings
Keys such as gesture.modifiers or move_resize.move_modifiers take modifiers plus at most one key to hold.
- For example
"ctrl+alt"or"ctrl+alt+capslock", as recorded by Record key. - Key names as above, plus
capslock,scrolllock,numlockandapps. ""turns Move or Resize off. Window Throw is off whengesture.modifiersis empty andgesture.mouse_buttonis"none".
Examples
Quick Throw targets
[quick_throw.directions] gives Quick Throw its own targets instead of Window Throw's.
- Directions:
left,right,up,down,up_left,up_right,down_leftanddown_right. Values are action names. - A direction you leave out uses its Window Throw target. Delete the table to use the Throw targets everywhere.
[quick_throw.directions]
left = "first_third"
right = "last_third"
up = "maximize"
down = "stash_down"
Some defaults
The file stores fractions where Settings shows percent: 0.9 is 90 %, 0.25 is 25 %.
[general]
config_version = 8
launch_at_login = true
theme = "system"
gap = 0
cycle_sizes = true
resize_step = 40
almost_maximize_fraction = 0.9
native_maximize = true
ignored_processes = []
[snap]
enabled = true
disable_windows_snap = true
edge_margin = 48
corner_size = 150
[gesture]
modifiers = "ctrl+alt"
deadzone = 40
target = "under_cursor"
long_distance = 220
mouse_button = "none"
[quick_throw]
enabled = false
modifiers = "ctrl+shift"
[move_resize]
move_modifiers = ""
resize_modifiers = ""
[[custom]]
name = "Near maximum"
x = 0.06
y = 0.06
width = 0.88
height = 0.88
repeat = "none"
[pin]
side = "right"
width = 0.25
reflow_on_pin = true
[stash]
peek = 10