9 releases

0.2.5 Nov 3, 2022
0.2.4 Oct 30, 2022
0.1.2 Oct 2, 2022

#1281 in Command line utilities

MIT license

22KB
334 lines

A screentime monitoring tool, shows how much time are you really using certain apps. It work nicely with i3status or py3status on I3 window manager for example :)

Screenshot

Install:

From crates.io:

cargo install screentime

Arch:

yay screentime (or other AUR manager)

Locally:

cargo install

Usage:

screentime --help

A screentime monitoring tool. Firstly, start this program with no arguments (daemon mode)

Usage: screentime [OPTIONS] [COMMAND]

Arguments:
  [COMMAND]
          Client commands

          Possible values:
          - hms:         Print total screentime in HH:MM:SS format
          - total:       Print total screentime in seconds
          - summary:     Print a nice-looking summary
          - raw-summary: Print a summary in raw JSON

Options:
  -c, --config <FILE>
          Specify a config path

  -h, --help
          Print help information (use `-h` for a summary)

Config:

Config path: $HOME/.config/screentime/config.toml

Variables:

  • port (The port for the listening deamon (default 9898)
  • seconds_before_afk (After how much seconds of inactivity assumes AFK (default 30)
  • snapshot_interval_in_seconds (How often program saves its state on disk (default 10)

How it works:

It just maintains a counter HashMap updated every second by one thread. Other thread has an HTTP API for the client to access the usage time. It uses only cross-platform libraries, so it should work on all three popular OSes.

Features:

  • Linux, Windows and MacOS
  • Measure total screentime
  • AFK feature
  • Configurable
  • Simple client in a binary

Contributing:

Feel free to open an issue, or just make a pull request. If you see any improvements to make the code better in any way, open a PR. I'd be happy to welcome new contributors :)

Dependencies

~7–40MB
~600K SLoC