This is a work timing script for tracking hours.
Clock uses dbus-python, which requires you have dbus installed.
Debian:
apt install dbus
Fedora:
dnf install dbus
macOS:
brew install dbus
Clone the repo and install the requirements.
git clone https://github.com/macuyler/clock.git
cd clock
python3 -m pip install --user -r requirements.txt
Checkout gitbin for quickly adding scripts to your path.
The clock configuration is located in the ~/.config/clock/clock.conf
file.
You can setup work profiles there with the following format:
profile_name:/absolute/path/to/log-file.txt
Note: The log file must exist prior to using the profile.
You can also set up timed notifications in the config file. These can be a reminder to take a break, or that you are still clocked in. You can set the notification interval with the following format:
_notify_me:60.0
Where
60.0
is the number of minutes in-between notifications.
Running the clock script will start an infinite loop that prompts you for input.
The idea is that you can run the script and then minimize the window or something.
$ clock [-h] [-n NOTIFY_ME] [profile]
┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ You are clocked in! ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Enter [t] to show time. ┃
┃ Enter [q] to quit. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛
>
You have the option to pass in the name of a profile that you want to use.
If you don't specify a profile, it will attempt to find a profile named default.
clock school
Incase of an invalid config file or profile, clock will print the number of hours you just clocked to stdout. All other clock output including UI elements are printed over stderr. This will allow you to redirect stdout to a log file if needed.
clock > log.txt
You can also set a temporary notification interval using the --notify-me
flag.
clock --notify-me 15
Run all the tests:
python3 -m unittest
Run an individual test:
python3 -m tests.test_config