Merged
Conversation
Rewrites the project using Tauri, Rust, and Svelte, aiming for increase performance and reliability.
Add GitHub Actions jobs for macOS (universal binary: Intel + Apple Silicon) and Windows (NSIS installer) alongside the existing Linux job. Also update push triggers to include claude/** branches. https://claude.ai/code/session_01PLBp3X8raT8KcKDTDoHXDH
…KovJ ci: add macOS and Windows build targets
- Add support for window resizing. Users can either maximize/restore the window using window controls, or resize the window using handles. At a small size, the window size is constrained and a minimal UI is shown. - Introduce a dedicated settings window to support the resizing change, and to provide space for future settings.
- Allow users to select custom audio files to use for Work, Short Break, and Long Break audio alerts.
- Allow the current round to be reset without resetting all rounds.
with keyboard shortcut.
- Calculate toggle track and button color based on theme colors for better contrast.
- Allow users to select between Auto, Light, and Dark theme modes. Auto (default) determines if a dark or light theme should be used, depending on the user's current system mode. - Migrate legacy "theme" value to default Pomotroid theme for backward compatability. - Add openspec files for project documentation.
- Adds localization support via Paraglide for 5 initial languages (English, French, Spanish, German, Japanese). - Default Auto option attempts to derive locale from system configuration.
feat: Add localization support.
- Adds support for logging application runtime information to files for enhanced debugging. - Adds option for setting verbose log level.
Feat/log to file
- Update theme document reference in README.
- Create version string during compile, CI/CD.
Feat/build version
- Attempt to detect Accessibility permissions on macOS. Provide user message with link if false. - Seed macOS specific shortcut defaults.
- Remove migrations--not yet needed.
- Add dedicated statistics window for statistics visualization. - Visualize stats for daily, weekly, and yearly ranges. - Add DB queries for stats. - Add localizations for stats.
- Update contributing doc with various instructions. - Update default branch name in GitHub workflows.
- Move localization files and update inlang config.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Complete Rewrite — Electron → Tauri 2 + Rust + Svelte 5
Pomotroid has been rebuilt from the ground up. The Electron + Vue.js stack has been replaced with a fully native Tauri 2 application backed by Rust and a Svelte 5 frontend, resulting in a drastically smaller footprint, faster startup, and no Chromium dependency.
Timer
std::time::Instantwith a fixed tick schedule; eliminates the cumulative drift that plagued the web-worker approachStatistics
Themes & Appearance
prefers-color-schemepreference automatically; separate theme pickers for light and darkLocalization
Audio
rodio; playback is guaranteed even when the window is hidden to the traySystem Tray
tiny-skiasweeps clockwise from 12 o'clock, coloured by round type (work / short break / long break)Global Shortcuts
Control+F1–F4on Windows and Linux;Command+Shift+1–4on macOSmacOS
Desktop Notifications
tauri-plugin-notificationnotify-send(libnotify) to avoid D-Bus session bus conflictsWebSocket Integration
ws://127.0.0.1:<port>(localhost only); default port 1314roundChangeevents with full timer state; clients can query current state withgetStateDiagnostics & Logging
Settings
26 configurable values across seven sections — Timer, Appearance, Notifications, Audio, Shortcuts, Advanced, and About. All settings are persisted to SQLite and take effect immediately without a restart (except WebSocket port).
Breaking Changes
user-preferences.json. All preferences reset to defaults on first launch after upgrading from v0.x.