Commands reference
A command binds one launchable thing to one monitor. This page is the field-by-field reference for the command editor.
Fields
Section titled “Fields”| Field | Notes |
|---|---|
| Name | Label for the command. |
| Preset | Chrome kiosk, Edge kiosk, or Generic application — see below. |
| Executable path | The app to launch (generic preset). Must be an absolute path. Kiosk presets take a URL instead. |
| Arguments | Passed to the app. Supports {{monitor.*}} template vars. Quotes are honoured when splitting. |
| Working directory | Optional. Hidden for the Chromium kiosk presets. |
| Placement | Where the window goes — see Placement modes. |
| Launch at startup | Start this command on boot / apply. |
| Restart if it exits | The watchdog. Off = launch once, don’t restart. |
| Max restarts | Crash-loop threshold (default 5). More exits than this within ~60s → crash-looping. |
| Launch delay (s) | Wait before launching — for apps that need the desktop to settle. |
| Enabled | Disabled commands are kept but never launched or watched. |
Presets
Section titled “Presets”| Preset | Use for |
|---|---|
| Chrome kiosk | A URL in fullscreen Chrome. |
| Edge kiosk | A URL in fullscreen Edge. |
| Generic application | Any executable; arguments passed through untouched (template vars still rendered). |
The Chromium kiosk presets encode the reliable “signage recipe” for you:
- A separate per-monitor browser profile (
--user-data-dir) so a second Chrome window doesn’t hand its URL to the first and exit. - Your URL is launched as an app window (
--app=), positioned and sized to the resolved placement rect. - Noise is suppressed (no first-run bubble, no “restore session” prompt, no translate bar, autoplay allowed).
Placement modes
Section titled “Placement modes”| Mode | Result |
|---|---|
| Fullscreen | The whole monitor. |
| Maximized | Maximized within the work area (respects the taskbar). |
| Left / Right / Top / Bottom half | Half the work area, so tiled windows avoid the taskbar. |
| Custom rect | X / Y / Width / Height as percentages of the monitor. |
Template variables
Section titled “Template variables”Use these in Arguments (and generic executable args). They expand to the command’s resolved placement rect — a left-half command gets left-half geometry, not the whole monitor. The set is fixed; unknown placeholders are left as-is.
| Variable | Value |
|---|---|
{{monitor.x}} |
Left edge (virtual-desktop pixels). |
{{monitor.y}} |
Top edge. |
{{monitor.width}} |
Width of the placement rect. |
{{monitor.height}} |
Height of the placement rect. |
{{monitor.index}} |
Monitor’s position in detection order. |
{{monitor.label}} |
The label you gave the monitor. |
Example — a generic app told to size itself to its monitor:
--window-position={{monitor.x}},{{monitor.y}} --window-size={{monitor.width}}x{{monitor.height}}Run controls
Section titled “Run controls”Once a command is saved, its panel shows a status strip: Run, Stop, Restart, the current PID, and the live process state. If a window is launched but Panes can’t find it (some apps never show one where expected), the command reports “launched, but its window was never found” rather than failing outright.