Skip to content

yabsp/pomotimo

Repository files navigation

Pomotimo Pomotimo Logo

Java Version Build Tool License

Pomotimo is a simple pomodoro timer for people preferring an offline GUI alternative. It is a cross-platform desktop application built with Java 21 and JavaFX.

Features

  • Cross-Platform: Runs natively on Windows, Linux, and macOS. (JVM)
  • Modern UI: Built using JavaFX 22 with modular architecture.
  • Persistence: Reliable local data storage using Gson serialization.
  • Zero-Dependency Run: Can be bundled into a native installer (EXE, DEB, DMG) that includes its own Java runtime.

Tech Stack

Component Technology Version License
Language Java 21 GPLv2+CE
GUI Framework JavaFX 22.0.1 GPLv2+CE
Icons Ikonli (FontAwesome) 12.3.1 Apache 2.0
Native Access JNA 5.17.0 Apache 2.0
JSON/Data Gson 2.13.1 Apache 2.0
Logging SLF4J + Logback 2.0.17 MIT / EPL

Prerequisites for Building

To build this project from source, ensure you have the following installed:

  1. JDK 21 (Java Development Kit)
  2. Git

Native Installer Requirements (jpackage)

This project uses jlink and jpackage to build native installers. Depending on your OS, you must install specific tools for this task to succeed:

Windows

To build .exe installers:

  • WiX Toolset (v3.14 or later): Download WiX.
  • Ensure the WiX bin directory is added to your system PATH.

Linux

To build .deb (Debian/Ubuntu) or .rpm (RedHat/Fedora) installers:

  • Debian/Ubuntu: sudo apt-get install fakeroot dpkg-dev
  • Fedora/RedHat: sudo dnf install rpm-build

macOS

To build .dmg or .pkg installers:

  • Xcode Command Line Tools: Run xcode-select --install in your terminal.
  • Note: Application signing requires a valid Apple Developer ID.

Getting Started

1. Clone the repository

git clone https://github.com/yabsp/pomotimo.git
cd pomotimo

Run in Development Mode

You can launch the application directly using Gradle without installing it:

Linux / macOS

./gradlew run

Windows

gradlew.bat run

Building & Distribution

Create a "Fat Jar"

Creates a single JAR file containing all dependencies (useful for quick sharing with other Java users).

./gradlew shadowJar

Output location: build/libs/pomotimo-1.1.jar

Create a Custom Runtime Image (JLink)

Creates a minimized folder containing the app and only the specific Java modules required to run it. This does not require Java to be installed on the target machine.

./gradlew jlink

Output location: build/image/

Create Native Installers (JPackage)

Generates an installer file specific to the OS you are building on. This can be run standalone and all needed tasks will be executed.

./gradlew jpackage

Output location: build/jpackage/

License

This project is licensed under the Apache License 2.0. See the LICENSE file for the full text.

Third-Party Notices

This software includes third-party open-source components. See the NOTICE file.

Impressions

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors