A modern, elegant timer application designed for deep work and productivity.
Built with JavaFX and featuring a warm, coffee-themed design.
- ✨ Features
- ⬇️ Installation
- 🏗️ Build from Source (Optional)
- 📦 Dependencies
- 🤝 Contributing
- 🙏 Acknowledgements
- 📝 License
- ⏲️ Smart Timer: Configurable work (1–900 min) and break sessions with visual circular countdown.
- 🔁 Auto-Cycling: Automatic Pomodoro rounds with configurable cycles before a long break. Includes a
LONG_BREAKsession type and round progress indicator with coffee bean icons. - 📌 Mini Mode: Compact always-on-top floating widget showing only the circular timer, time display, and play/pause button. Expand back with a button, double-click, or right-click menu.
- 📊 Progress Tracking: Daily goal tracking, streak monitor, and "yesterday vs. today" comparison.
- 🎉 Goal Celebration: Confetti animation with congratulations message when you reach your daily goal.
- 📜 Session History: Detailed logs of all work sessions featuring both table and chart views.
- 🔔 Notifications: Custom sound support (MP3/WAV) and system tray alerts for session transitions.
- 🌙 Dark Mode: Toggle between a light or dark theme for comfortable viewing. All UI elements — including tooltips, hover effects, and the Mini Mode widget — respect the selected theme.
- ℹ️ About Tab: A dedicated panel containing application metadata, licensing information, technology stack details, local data paths, and an interactive keyboard shortcuts guide.
- 🖥️ Modern UI: Clean, coffee-themed design with custom window controls.
- ⌨️ Shortcuts: Space (Start/Pause), R (Reset), S (Settings), H (Toggle History), M (Mini Mode).
- 🗂️ Local Data: All data is stored locally:
- Windows:
%APPDATA%/FocusBean/ - Linux:
~/.local/share/FocusBean/
- Windows:
- Download: Get
FocusBean-{version}-Windows.zipfrom the Releases page. - Extract: Unzip the archive (e.g., to your Downloads folder).
- Install: Double-click
install_shortcut.batinside theFocusBean-{version}directory. This will:- Create or update your Desktop shortcut to point to the new version.
- Automatically clean up older
FocusBean-*folders from your Downloads.
- Run: Double-click the Focus Bean icon on your Desktop or
FocusBean.exein the folder.
Focus Bean allows for a clean, user-local installation in your home directory.
Before running the application, ensure you have the standard JavaFX dependencies installed (GTK3, ALSA, GStreamer). Most desktop systems have these, but you can verify:
AlmaLinux / RHEL:
sudo dnf install -y gtk3 alsa-lib gstreamer1-plugins-base gstreamer1openSUSE:
sudo zypper install -y libgtk-3-0 libasound2 gstreamer-plugins-base gstreamer-plugins-good-
Download: Get
FocusBean-{version}-Linux.zipfrom the Releases page. -
Extract: Unzip the archive:
unzip FocusBean-{version}-Linux.zip -
Install: Run the installer. It will automatically remove any previous version from
~/.focusbeanand install the new one:sh FocusBean-{version}/install.sh -
Run:
sh ~/.focusbean/FocusBean-{version}/bin/FocusBean -
Add to Desktop (Optional): To add Focus Bean to your system menu and launcher, run:
sh ~/.focusbean/FocusBean-{version}/install_shortcut.sh
If you prefer to build the application yourself:
Prerequisites: Java 25 JDK, Gradle 9.1.
git clone https://github.com/kullik01/Focus-Bean.git
cd Focus-Bean
./gradlew runFocus Bean is built with the following technologies:
| Dependency | Version | Purpose |
|---|---|---|
| JavaFX | 25 | UI components and core graphics |
| Gson | 2.11.0 | JSON serialization for user data |
| JUnit 5 | 5.10.2 | Unit testing framework |
Note: The application bundle includes the necessary Java runtime, so you do not need to install Java globally.
Contributions are welcome! Please feel free to submit a Pull Request or open an issue for bugs and feature requests.
BSD 3-Clause License – see LICENSE.
Made with ❤️ and ☕ for productivity.
