https://github.com/sectore/timr-tui
TUI to organize your time: Pomodoro, Countdown, Timer.
https://github.com/sectore/timr-tui
ratatui rust tui
Last synced: 18 days ago
JSON representation
TUI to organize your time: Pomodoro, Countdown, Timer.
- Host: GitHub
- URL: https://github.com/sectore/timr-tui
- Owner: sectore
- License: mit
- Created: 2024-11-27T17:16:56.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-03-03T11:21:19.000Z (about 2 months ago)
- Last Synced: 2025-03-28T20:05:31.587Z (25 days ago)
- Topics: ratatui, rust, tui
- Language: Rust
- Homepage:
- Size: 769 KB
- Stars: 95
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# timr-tui
TUI to organize your time: Pomodoro, Countdown, Timer.
- `[t]imer` Check the time on anything you are you doing.
- `[c]ountdown` Use it for your workout, yoga session, meditation, handstand or whatever.
- `[p]omodoro` Organize your working time to be focused all the time by following the [Pomodoro Technique](https://en.wikipedia.org/wiki/Pomodoro_Technique).Built with [Ratatui](https://ratatui.rs/) / [Rust 🦀](https://www.rust-lang.org/).
# Features
_Side note:_ Theme colors depend on your terminal preferences.
## Pomodoro
## Timer
## Countdown
## Change style
## Toggle deciseconds
## Menu
## Local time
## Mission Elapsed Time ([MET](https://en.wikipedia.org/wiki/Mission_Elapsed_Time))
# CLI
```sh
timr-tui --helpUsage: timr-tui [OPTIONS]
Options:
-c, --countdown Countdown time to start from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
-w, --work Work time to count down from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
-p, --pause Pause time to count down from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
-d, --decis Show deciseconds.
-m, --mode Mode to start with. [possible values: countdown, timer, pomodoro]
-s, --style Style to display time with. [possible values: full, light, medium, dark, thick, cross, braille]
--menu Open the menu.
-r, --reset Reset stored values to default values.
-n, --notification <NOTIFICATION> Toggle desktop notifications. Experimental. [possible values: on, off]
--blink <BLINK> Toggle blink mode to animate a clock when it reaches its finished mode. [possible values: on, off]
--log [<LOG>] Directory to store log file. If not set, standard application log directory is used (check README for details).
-h, --help Print help
```Extra option (if `--features sound` is enabled by local build only):
```sh
--sound <SOUND> Path to sound file (.mp3 or .wav) to play as notification. Experimental.
```# Installation
## Cargo
### From [crates.io](https://crates.io/crates/timr-tui)
```sh
cargo install timr-tui
```### From GitHub repository
```sh
cargo install --git https://github.com/sectore/timr-tui
```## Arch Linux
Install [from the AUR](https://aur.archlinux.org/packages/timr/):
```sh
paru -S timr
```## Release binaries
Pre-built artifacts are available to download from [latest GitHub release](https://github.com/sectore/timr-tui/releases).
# Development
## Requirements
### Nix users (recommend)
`cd` into root directory.
If you have [`direnv`](https://direnv.net) installed, run `direnv allow` once to install dependencies. In other case run `nix develop`.
### Non Nix users
- [`Rust`](https://www.rust-lang.org/learn/get-started)
- [`Clippy`](https://github.com/rust-lang/rust-clippy)
- [`rustfmt`](https://github.com/rust-lang/rustfmt)
- [`just`](https://just.systems)### Commands
```sh
justAvailable recipes:
default # list commands[build]
build # build app [alias: b][demo]
demo-blink # build demo: blink animation [alias: db]
demo-countdown # build demo: countdown [alias: dc]
demo-countdown-met # build demo: countdown + met [alias: dcm]
demo-decis # build demo: deciseconds [alias: dd]
demo-local-time # build demo: local time [alias: dlt]
demo-menu # build demo: menu [alias: dm]
demo-pomodoro # build demo: pomodoro [alias: dp]
demo-rocket-countdown # build demo: rocket countdown [alias: drc]
demo-style # build demo: styles [alias: ds]
demo-timer # build demo: timer [alias: dt][dev]
run # run app [alias: r]
run-sound path # run app while sound feature is enabled. It expects a path to a sound file. [alias: rs][misc]
format # format files [alias: f]
lint # lint [alias: l][test]
test # run tests [alias: t]
```### Build
- Linux
```sh
nix build
# or for bulding w/ statically linked binaries
nix build .#linuxStatic
```- Windows (cross-compilation)
```sh
nix build .#windows
```# Misc.
## Persistant app state
Stored on file system:
```sh
# Linux
~/.local/state/timr-tui/data/app.data
# macOS
/Users/{user}/Library/Application Support/timr-tui/data/app.data
# Windows
C:/Users/{user}/AppData/Local/timr-tui/data/app.data
```## Logs
To get log output, start the app by passing `--log` to `timr-tui`. See [CLI](./#cli) for details.
Logs will be stored in an `app.log` file at following locations:
```sh
# Linux
~/.local/state/timr-tui/logs/app.log
# macOS
/Users/{user}/Library/Application Support/timr-tui/logs/app.log
# `Windows`
C:/Users/{user}/AppData/Local/timr-tui/logs/app.log
```Optional: You can use a custom directory by passing it via `--log` arg.