Timers
Each timer lives in a named section such as [timers.focus-block].
Required fields
trigger
Required inline table:
trigger = { tap = "top" }or:
trigger = { swipe = "l-to-r" }pattern
Required non-empty array of inline tables:
pattern = [
{ name = "focus", time = "00:25:00" },
{ name = "break", time = "00:05:00", vibrate = "low" },
]Optional fields
name
Overrides the display name derived from the timer key.
name = "Long Break"repeat
Controls repetition:
- omitted or
false: run once true: repeat forever- positive integer: repeat that many times
repeat = 4repeat = true cannot be combined with on-finished.
vibrate
Optional default vibration for every segment in the timer.
vibrate = "mid"Any segment with its own vibrate value overrides this default.
on-finished
Optional finish vibration. Both of these are valid:
on-finished = { vibrate = "low-low-high" }on-press-up and on-long-press-up
Optional up-button actions:
skiphide
on-press-up = "skip"
on-long-press-up = "hide"must-acknowledge
Boolean flag that forces acknowledgement before the timer fully clears.
must-acknowledge = truerepeat-pattern-delay
Delay in milliseconds inserted before the next repetition starts. Defaults to 500.
repeat-pattern-delay = 500acknowledgment-alert-duration
Per-timer override in milliseconds for acknowledgement reminder vibration duration. Defaults to the root [vibration] value, or 12 when that table is omitted.
