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
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

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} {/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} {/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} {/if} {#if rangeIndex > 0} {/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