by Jeff1024
A Pomofocus recreation for Obsidian with system sound notifications, drift-free timer, and popout mini-window.
Fluent Pomofocus
Obsidian plugin that recreates Pomofocus inside the vault: drift-free countdown, dual focus/break alarms, system + in-app notices, optional task list, and three surfaces (sidebar, popout leaf, floating modal).
Architecture (agents): ARCHITECTURE.md.
Requirements
- Obsidian
minAppVersion1.7.2 (manifest.json) - Desktop or mobile (
isDesktopOnly: false); popout leaf and Electron window-focus need desktop - Node 18+ only if you build from source
Install (release)
- Copy the plugin folder into
<vault>/.obsidian/plugins/fluent-pomofocus/. - Required files:
manifest.json,main.js,styles.css. Optional:sounds/*.mp3(otherwise first play fetches and caches them). - Enable Fluent Pomofocus in Community Plugins.
Build from source
npm install
npm run build # esbuild production → main.js, copies main.css → styles.css
npm run dev # watch bundle
Entry: src/main.ts. Bundler: esbuild.config.mjs.
Open the timer
| Surface | How |
|---|---|
| Right sidebar | Ribbon timer, or command Open Pomofocus in Sidebar |
| Popout window | Command Open Pomofocus in Small Window (480×720); falls back to sidebar if openPopoutLeaf is missing |
| Floating modal | Command Open Pomofocus in Floating Window; also opens when a period-end notification is clicked |
Also: Start / Pause Pomofocus Timer, Reload Pomofocus Settings from Disk.
Timer
Modes: Pomodoro, Short Break, Long Break. Defaults: 50 / 10 / 20 minutes; long break every 3 completed pomodoros. START / PAUSE on the card; skip appears once the period has started. Auto-start of the next break or pomodoro is on by default.
Floating modal keys: Space start/pause (not while typing), Ctrl+Tab / Ctrl+Shift+Tab cycle modes, Esc close.
Tasks, alarms, settings
Tasks are on by default. Each task tracks actual / estimated pomodoros. Completing a pomodoro increments the active task. Optional Auto Check Tasks marks it complete when actual ≥ estimate.
Thirteen alarm sounds plus silent. Focus and break can share one set or use Separate sound for breaks. First START requests Notification permission. Period end: in-app notice (6 s) plus a silent native notification. Click focuses Obsidian and opens the floating modal.
Canonical JSON: .obsidian/fluent-pomofocus.json (not the plugin folder, so updates do not wipe tasks). Optional custom path inside the vault. Themes: Obsidian, teal, green, blue.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.