Settings
Timer
Break frequency
Every {$config.break_frequency}
min
Break duration
{$config.break_duration} min
Auto-start
Start timer on launch
Pomodoro Mode
Enable Pomodoro
Short breaks then a long break
{#if $config.pomodoro_enabled}
Short breaks before long
{$config.pomodoro_short_breaks} short + 1 long
Long break duration
{$config.pomodoro_long_break_duration} min
Long break title
Long break message
Reset on skip
Reset cycle when skipping a break
{/if}
Microbreaks
20-20-20 eye breaks
Quick eye rest reminders
{#if $config.microbreak_enabled}
Frequency
Every {$config.microbreak_frequency} min
Duration
{$config.microbreak_duration} seconds
Sound
Play sound on eye break
Show activity
Activity suggestion during eye break
Pause during breaks
No eye breaks during main breaks
{/if}
Break Screen
Break title
Break message
Fullscreen break
{$config.fullscreen_mode ? "Fills entire screen" : "Centered modal"}
Activity suggestions
Exercise ideas during breaks
{#if $config.fullscreen_mode}
Block all monitors
Show overlay on all screens during breaks
{/if}
{#if $config.show_break_activities}
Break Activities
{/if}
Breathing Guide
Guided breathing
Visual breathing guide during breaks
{#if $config.breathing_guide_enabled}
Breathing pattern
{#each breathingPatternMeta as bp}
{ $config.breathing_pattern = bp.id; markChanged(); }} >
{bp.label}
{bp.desc}
{/each}
{/if}
Behavior
Strict mode
Disable skip and snooze
{#if !$config.strict_mode}
Allow end early
After 50% of break
Snooze duration
{$config.snooze_duration} min
Snooze limit
{$config.snooze_limit === 0 ? "Unlimited" : `${$config.snooze_limit} per break`}
(v === 0 ? "\u221E" : String(v))} onchange={markChanged} />
{/if}
Immediate breaks
Skip pre-break warning
Alerts
Pre-break alert
Warn before breaks
{#if $config.notification_enabled}
Alert timing
{$config.notification_before_break}
s
before
{/if}
Screen dimming
Gradually dim screen before breaks
{#if $config.screen_dim_enabled}
Start dimming
{$config.screen_dim_seconds}s before break
Max dimming
{Math.round($config.screen_dim_max_opacity * 100)}%
`${Math.round(v * 100)}%`} onchange={markChanged} />
{/if}
Sound
Sound effects
Play sounds on break events
{#if $config.sound_enabled}
Volume
{$config.sound_volume}%
`${v}%`} onchange={markChanged} />
Sound preset
{#each soundPresets as preset}
{ $config.sound_preset = preset; markChanged(); playSound(preset, $config.sound_volume); }} > {preset}
{/each}
{/if}
Idle & Smart Breaks
Auto-pause when idle
Pause timer when away
{#if $config.idle_detection_enabled}
Idle timeout
{$config.idle_timeout}s of inactivity
`${v}s`} onchange={markChanged} />
{/if}
Smart breaks
Auto-reset timer when you step away
{#if $config.smart_breaks_enabled}
Minimum away time
{$config.smart_break_threshold >= 60 ? `${Math.floor($config.smart_break_threshold / 60)} min` : `${$config.smart_break_threshold}s`} to count as break
`${Math.floor(v / 60)}m`} onchange={markChanged} />
Count in statistics
Track natural breaks in stats
{/if}
Presentation Mode
Auto-detect fullscreen
Defer breaks during fullscreen apps
{#if $config.presentation_mode_enabled} {#if $config.microbreak_enabled}
Defer microbreaks
Also pause eye breaks
{/if}
Notification
Show toast when break is deferred
{/if}
Goals & Streaks
Daily goal
Track daily break target
{#if $config.daily_goal_enabled}
Target breaks
{$config.daily_goal_breaks} per day
{/if}
Celebrations
Confetti on milestones and goals
Streak notifications
Toast on streak milestones
Appearance
UI zoom
{$config.ui_zoom}%
`${v}%`} onchange={markChanged} />
Animated background
Gradient blobs with film grain
Working Hours
Working hours
Only show breaks during your configured work schedule
{#if $config.working_hours_enabled}
{#each $config.working_hours_schedule as daySchedule, dayIndex} {@const dayName = daysOfWeek[dayIndex]}
{dayName}
{#if daySchedule.enabled}
{#each daySchedule.ranges as range, rangeIndex}
updateTimeRange(dayIndex, rangeIndex, "start", v)} />
to
updateTimeRange(dayIndex, rangeIndex, "end", v)} /> {#if rangeIndex === daySchedule.ranges.length - 1}
addTimeRange(dayIndex)} aria-label="Add time range" >
{/if}
cloneTimeRange(dayIndex, rangeIndex)} aria-label="Clone time range" >
{#if rangeIndex > 0}
removeTimeRange(dayIndex, rangeIndex)} aria-label="Remove time range" >
{/if}
{/each}
{/if}
{#if dayIndex < 6}
{/if} {/each} {/if}
Mini Mode
Click-through
Mini timer ignores clicks until you hover over it
{#if $config.mini_click_through}
Hover delay
Seconds to hover before it becomes draggable
`${v}s`} onchange={markChanged} />
{/if}
General
Start on Windows login
Launch automatically at startup
Keyboard Shortcuts
Pause / Resume
Ctrl+Shift+P
Start break now
Ctrl+Shift+B
Show / Hide window
Ctrl+Shift+S
Reset
{resetConfirming ? "Tap again to confirm reset" : "Reset to defaults"}