Skip to content

TUI to organize your time: Pomodoro, Countdown, Timer.

License

Notifications You must be signed in to change notification settings

sectore/timr-tui

Repository files navigation

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.

Built with Ratatui / Rust 🦀.

Features

Side note: Theme colors depend on your terminal preferences.

Pomodoro

pomodoro

Timer

pomodoro

Countdown

countdown

Change style

style

Toggle deciseconds

deciseconds

Menu

menu

Local time

menu

Mission Elapsed Time (MET)

menu

CLI

timr-tui --help

Usage: timr-tui [OPTIONS]

Options:
  -c, --countdown <COUNTDOWN>        Countdown time to start from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
  -w, --work <WORK>                  Work time to count down from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
  -p, --pause <PAUSE>                Pause time to count down from. Formats: 'ss', 'mm:ss', or 'hh:mm:ss'
  -d, --decis                        Show deciseconds.
  -m, --mode <MODE>                  Mode to start with. [possible values: countdown, timer, pomodoro]
  -s, --style <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):

      --sound <SOUND>                Path to sound file (.mp3 or .wav) to play as notification. Experimental.

Installation

Cargo

cargo install timr-tui

From GitHub repository

cargo install --git https://github.com/sectore/timr-tui

Arch Linux

Install from the AUR:

paru -S timr

Release binaries

Pre-built artifacts are available to download from latest GitHub release.

Development

Requirements

Nix users (recommend)

cd into root directory.

If you have direnv installed, run direnv allow once to install dependencies. In other case run nix develop.

Non Nix users

Commands

just --list

Available recipes:
    build   # build app
    b       # alias for `build`
    default
    format  # format files
    f       # alias for `format`
    lint    # lint
    l       # alias for `lint`
    run     # run app
    r       # alias for `run`
    test    # run tests
    t       # alias for `test`

Build

  • Linux
nix build
  • Windows (cross-compilation)
nix build .#windows

Misc.

Persistant app state

Stored on file system:

# 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 for details.

Logs will be stored in an app.log file at following locations:

# 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.