11# tumodori
22
3- A terminal-based Pomodoro timer built with [ Ratatui] ( https://ratatui.rs/ ) and Rust.
3+ [ ![ Crates.io] ( https://img.shields.io/crates/v/tumodori )] ( https://crates.io/crates/tumodori )
4+ [ ![ CI] ( https://github.com/nandomoreirame/tumodori/actions/workflows/ci.yml/badge.svg )] ( https://github.com/nandomoreirame/tumodori/actions )
5+ [ ![ License: MIT] ( https://img.shields.io/badge/license-MIT-blue.svg )] ( LICENSE )
6+ [ ![ Rust] ( https://img.shields.io/badge/rust-1.87%2B-orange.svg )] ( https://www.rust-lang.org/ )
7+ [ ![ Downloads] ( https://img.shields.io/crates/d/tumodori )] ( https://crates.io/crates/tumodori )
8+ [ ![ Docs] ( https://img.shields.io/docsrs/tumodori )] ( https://docs.rs/tumodori )
9+
10+ A terminal-based Pomodoro timer with big digit display, built with [ Ratatui] ( https://ratatui.rs/ ) and Rust.
11+
12+ ![ tumodori screenshot] ( screenshot.png )
413
514## Features
615
7- - Configurable work session duration (default: 25 minutes)
8- - Configurable short break duration (default: 5 minutes)
9- - Configurable long break duration (default: 15 minutes)
10- - Automatic long break after a configurable number of sessions (default: 4)
16+ - Big, centered digit display for easy reading from a distance
17+ - Configurable work, short break, and long break durations
18+ - Automatic long break after a configurable number of sessions
1119- Desktop notifications with alarm sound when a phase ends
12- - Big digit timer display, centered in the terminal
13- - Progress bar with color-coded phases
14- - Color-coded timer states (idle, running, paused, finished)
20+ - Color-coded phases (red for work, green for short break, blue for long break)
21+ - Color-coded timer states (gray idle, yellow paused, white finished)
22+ - Progress bar at the bottom of the terminal
1523- Session counter
1624
1725## Installation
1826
27+ ### From crates.io
28+
1929``` bash
30+ cargo install tumodori
31+ ```
32+
33+ ### From source
34+
35+ ``` bash
36+ git clone https://github.com/nandomoreirame/tumodori.git
37+ cd tumodori
2038cargo install --path .
2139```
2240
@@ -26,7 +44,7 @@ cargo install --path .
2644tumodori
2745```
2846
29- ## Keybindings
47+ ### Keybindings
3048
3149| Key | Action |
3250| -----| --------|
@@ -35,17 +53,15 @@ tumodori
3553| ` s ` | Skip to next phase |
3654| ` q ` / ` Esc ` | Quit |
3755
38- ## Configuration
39-
40- All settings are configurable via CLI flags:
56+ ### CLI options
4157
4258| Flag | Short | Default | Range | Description |
4359| ------| -------| ---------| -------| -------------|
4460| ` --work ` | ` -w ` | 25 | 1-1440 | Work session duration in minutes |
4561| ` --short-break ` | ` -s ` | 5 | 1-1440 | Short break duration in minutes |
4662| ` --long-break ` | ` -l ` | 15 | 1-1440 | Long break duration in minutes |
4763| ` --sessions ` | ` -n ` | 4 | 1-100 | Work sessions before a long break |
48- | ` --no-notify ` | | false | | Disable desktop notifications |
64+ | ` --no-notify ` | | | | Disable desktop notifications |
4965
5066### Examples
5167
@@ -55,24 +71,25 @@ tumodori -w 50 -s 10 -l 20 -n 6 # custom durations
5571tumodori --no-notify # disable notifications
5672```
5773
58- ### Audio notifications
74+ ## Audio notifications
5975
60- When a phase ends, tumodori plays an alarm sound using PipeWire (` pw-play ` ) or PulseAudio (` paplay ` ) as fallback. A terminal bell is also emitted. To disable all notifications, use ` --no-notify ` .
76+ When a phase ends, tumodori sends a desktop notification and plays an alarm sound using PipeWire (` pw-play ` ) or PulseAudio (` paplay ` ) as fallback. A terminal bell is also emitted.
6177
6278On Linux, the alarm sound file is expected at:
63- ` /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga `
6479
65- Install it with ` sound-theme-freedesktop ` (available on most distributions).
80+ ```
81+ /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
82+ ```
6683
67- ## Building from source
84+ Install it with the ` sound-theme-freedesktop ` package (available on most distributions). To disable all notifications, use ` --no-notify ` .
6885
69- ``` bash
70- git clone https://github.com/nandomoreirame/tumodori.git
71- cd tumodori
72- cargo build --release
73- ```
86+ ## Inspired by
87+
88+ - [ timr-tui ] ( https://github.com/sectore/timr-tui ) - TUI app for timers, built with Ratatui and Rust
89+
90+ ## Contributing
7491
75- The binary will be available at ` target/release/tumodori ` .
92+ See [ CONTRIBUTING.md ] ( CONTRIBUTING.md ) for guidelines .
7693
7794## License
7895
0 commit comments