Script for easy binding of dmenu/rofi + tracker (clockify-cli only) + any status bar
- Start/stop time entries via
dmenu/rofi/fzf, thus autocompletion and fuzzy search - History of time entries
- Notifications via
notify-send - Status command for a system bar in
HH:MMformat - Time entries synchronization/download with a server (do only once)
Time entry selection in rofi:

Running time entry in polybar:

- Some selector program that takes a list of items on the input and prints what user selected or typed on the output:
dmenu,rofi,fzf - Backend for the real tracking. Currently only
clockify-cliis supported, but extension is possible m4awksed
Build command takes one optional argument: name of the backend which must correspond to (e.g. mybackend → src/backends/mybackend.hs)
./build [backend]
install "${PWD}/clfy" /usr/bin/clfyA time entry started with clfy must be stopped with clfy, and a time entry started somewhere else must be stopped somewhere else or some desync may occur.
To download/synchronize time entries for the last 30 days run
clfy sync 30
clfy sync - update local time entries names and projects (call once)
clfy start <entry> - start tracking
clfy stop - stop tracking
clfy start-dmenu - start tracking using dmenu
clfy status - print status for a bar
clfy help
Everything related to backend (e.g. authentication) is configured separately.
clfy currently has no config right now, but configuration is possible at a build time. Copy default src/options file to the root of the repository and it will affect the build
Most of the options are file related, here are few interesting ones:
is used to set delimeter between description and project for clockify-cli backend
dmenu -profi -dmenu -pfzf --header hi
notify-sendechocould be used withfzfThe backend may be chosen at build time
bindsym $mod+c exec --no-startup-id clfy start-dmenu
bindsym $mod+Shift+c exec --no-startup-id clfy stop
[module/tracker]
type = custom/script
exec = clfy status
interval = 4
format-prefix = " "