Executor Pages
Executor Pages are infinite canvas surfaces where you place interactive widgets โ buttons, faders, color pickers, and more. They are the primary live control surface in phix, similar to a hardware wing.
Understanding the canvas#
Each executor page is an infinite canvas with a configurable viewport (pan and zoom). Widgets are placed at arbitrary (X, Y) positions and have explicit width and height.
You can have multiple pages and switch between them instantly:
execpage add "Main Controls"execpage add "FX Controls"execpage select 0 -- switch to page 0execpage select 1 -- switch to page 1Widget types#
| Widget | Description |
|---|---|
| Button | Triggers an action on press (or toggle) |
| Fader | Controls a value continuously (0โ100%) |
| ColorPicker | Interactive color selection pad |
| XYPad | Two-axis control pad (e.g., pan/tilt) |
| Label | Static text label |
| Group | Group container for organizing widgets |
| Region | Scope zone โ restricts changes to a fixture group |
Button behaviors#
| Behavior | Description |
|---|---|
momentary | Fires action once on press |
toggle | Press to activate; press again to deactivate |
flash | Active while held, releases on mouse-up |
toggleflash | Toggle + flash combined |
latch | Activate on press, deactivate on next press |
goback | Go back one cue on the bound sequence |
goto:<cue> | Jump to a specific cue number |
Fader types#
| Fader type | Description |
|---|---|
level | Generic level / dimmer (0โ100%) |
speed | Controls BPM of a linked speed master |
time | Controls a time master multiplier |
grand | Controls the Grand Master |
Widget bindings#
Each widget is bound to a backend object:
| Binding | Examples |
|---|---|
| Preset | Apply a preset on press |
| CueStack | Go/back/flash a sequence |
| Group | Select a fixture group |
| Master | Control a speed, time, or grand master |
| Executor | Control an executor's level and buttons |
| Command | Execute any text command |
Adding widgets via command line#
execpage widget add button preset 3.1 "Red" 0 0 2 2execpage widget add fader master 0 "Grand" 10 0 1 4execpage widget add button cuestack 0 "Go" 0 3 2 2 momentaryArguments: <widget_type> <binding_type> <binding_ref> "<label>" <x> <y> <w> <h> [options]
Moving and resizing widgets#
execpage widget move <id> <x> <y>execpage widget resize <id> <w> <h>execpage widget remove <id>Triggering widgets programmatically#
execpage trigger <widget_id> -- pressexecpage release <widget_id> -- release (for flash)execpage fader <widget_id> 0.75 -- set fader to 75%Setup mode#
Enable setup mode to move and resize widgets without accidentally triggering them:
execpage setup onexecpage setup offRegions#
A Region widget defines an area of the canvas that restricts actions to a specific fixture group. When a region is active, preset recalls and attribute changes only affect that group's fixtures rather than the full programmer selection.
This is useful for busking โ set up regions for different fixture groups and tap them to quickly switch context.
execpage widget add region group 1 "Wash Zone" 0 6 6 4Viewport control#
Adjust the current page's view:
execpage viewport 0 0 1.0 -- pan to 0,0, zoom 100%execpage viewport -100 0 0.5 -- pan left, zoom out