#health #timer #desktop-notifications

app fitimer

A timer to keep fit and healthy whilst having a sedentary work

4 releases (2 stable)

1.1.0 Aug 25, 2023
1.0.0 Aug 9, 2023
0.2.0 Jun 8, 2023
0.1.0 Jun 3, 2023

#15 in #health

36 downloads per month

GPL-3.0-only

47KB
765 lines

fitimer

A timer to keep fit and healthy whilst having a sedentary work.

Simplicity

You are either working or taking a break. So we have those two states in the real world. I used to use pomodoro timers for this, but this is simpler and has a nicer interface for me.

Screenshot of fitimer in work state

How to install

$ cargo install fitimer

Features

  • desktop notifications
  • customizable colors

Configuration

Fitimer is configurable through a json file, here is the default config located at ~/.config/fitimer/config.json:

  • Default colors use the gruvbox color pallete.
  • Durations are in minutes
  • tick rate (in milliseconds) means how frequent the app should get re-rendered (increase this to reduce CPU load)
{
  "tick_rate": 1000,
  "durations": {
    "work": 25,
    "rest": 5
  },
  "color": {
    "black": "#282828",
    "white": "#fbf1c7",
    "gray": "#928374",
    "yellow": "#d79921",
    "green": "#98971a",
    "red": "#cc241d",
    "blue": "#458588",
    "purple": "#b16286",
    "aqua": "#689d6a",
    "orange": "#d65d0e"
  }
}

Stats

There is a file located at ~/.cache/fitimer/fitimer.log which logs how much time was spent for each type of activity. This file is used to draw the graph, if it grows too large at any point, you can safely delete it.

Todo

  • setup tui
  • add timer state
  • toggle timer
  • change timer state between work and rest
  • save progress into a file on toggle/change
  • make graph for statistics
  • add help menu for shortcuts
  • remove env vars and use json config file
  • remove option to configure date and move to static config
  • move the stat file into somewhere appropriate other than .config
  • change stat file format to use only date (no time) and use w & r instead of work & rest
  • add settings page?
  • add option to disable graph (prevents setting into file too)
  • add option to delete stat file content

Dependencies

~5–32MB
~474K SLoC