113 lines
3.0 KiB
Markdown
113 lines
3.0 KiB
Markdown
# 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.
|