# termato A minimal and unintrusive Pomodoro timer written in Rust for the terminal. ## Features - Supports focus sessions and break sessions. - System-level alerts to notify you when a session ends. - Define custom focus and break session durations from the command line. - Cross-platform sound notifications when a session ends. - Cross-platform audio visualizer. ## Keyboard Controls When termato is running, control the application using the following keys: | Key | Action | | -------- | ---------------------------------------------------- | | Space | Pause / Resume the timer | | S / s | Switch Mode (manually toggle between Work and Break) | | R / r | Reset current timer session | | ? | Toggle the in-app help overlay | | Q / q | Quit the application cleanly | | Ctrl + C | Force quit the application cleanly | > [!NOTE] > The in-app help overlay (`?`) requires a minimum terminal window size to be displayed. ## Installation To install `termato` using the automated installers: ### Unix Shell (macOS / Linux) ```bash curl --proto '=https' --tlsv1.2 -LsSf https://github.com/StevanFreeborn/termato/releases/latest/download/termato-installer.sh | sh ``` ### Windows PowerShell ```powershell irm https://github.com/StevanFreeborn/termato/releases/latest/download/termato-installer.ps1 | iex ``` ## Getting Started ### Running with Defaults To run termato with the default settings (25-minute focus session, 5-minute break): ```bash termato ``` ### Specifying Options and Custom Session Times By default, desktop notifications, sound alerts, and the visualizer are disabled. You can specify options and custom session durations as command-line arguments: ```bash termato [options] [work_minutes] [break_minutes] ``` For example, to enable desktop notifications and run a 50-minute focus session followed by a 10-minute break: ```bash termato -n 50 10 ``` To enable both desktop notifications and sound notifications with custom times: ```bash termato -ns 50 10 # or with long flags termato --notify -sound 50 10 ``` You can also combine short flags together (e.g. -nsz to enable notifications, sound, and the audio visualizer): ```bash termato -nsz ``` ### Help and Version To print the help message or version directly without entering the TUI: ```bash termato -h termato --help termato --version ``` ## Building and Installing from Source To install `termato` globally from source (requires Rust and Cargo): ```bash cargo install --path . ``` Alternatively, to build a standalone optimized binary manually from source (requires Rust and Cargo): ```bash cargo build --release ``` The compiled binary will be located at `./target/release/termato`. You can copy this binary to any directory in your PATH to run it globally. ## License Distributed under the MIT License. See [LICENSE.md](LICENSE.md) for details.