Build crates.io docs.rs

TOC

A simple terminal based pomodoro/productivity timer written in Rust.

Features

Example with multiple clients + display inside the left status bar of tmux

Installation

NOTE: The timer has currently only been tested on Mac and Linux, but might also work on Windows (please let me know if you tried it succesfully).

Homebrew

ignore brew tap install on3iro/zentime brew install zentime

Cargo

ignore cargo install zentime-rs

Nix

Coming soon

Configuration

The default location for the configuration file is /home/<user>/.config/zentime/zentime.toml. To get an overview of available configuration options please have a look at the example configuration.

For an overview of all available configuration keys, check out the docs. Note that each key (view, timers etc.) corresponds to the header of a toml table while clicking on the type inside the docs shows you the available configuration fields.

Logs

Logs are being written to:

The default log level is warn. You can configure the log level by running zentime with RUST_LOG=<level> zentime. Here's an overview of available log levels.

Tmux integration example

To display the current timer state inside the tmux status bar you could use zentime once which will be queried by tmux on each status bar update. Simply add the following snippet to your .tmux.conf:

conf ignore set -g status-left " #(zentime once) "

If you would like to add shortcuts (e.g. to toggle pause/play) from inside tmux you could add bindings like this:

conf ignore bind t run-shell "zentime toggle-timer > /dev/null" bind y run-shell "zentime skip > /dev/null"

Usage as library

Zentime is built in such a way, that it should be possible to build custom clients etc. to attach to the server. To do so one should use the modules provided by the library crate. More documentation/examples on how to use these, will follow soon.

NOTE: The API of the library crate is not yet stable and might change on minor version updates. As soon as this crate reaches 1.0.0 status, breaking changes will only ever happen on major versions.