Time Tracker
Minimal GTK4 time tracking app for elementaryOS. Stays small so you can keep it on screen all day.
Requirements
- Python 3.12+
python3-gi(GTK4 bindings, system package)gir1.2-notify-0.7(desktop notifications)
On elementaryOS / Ubuntu these are typically pre-installed. If not:
sudo apt install python3-gi gir1.2-notify-0.7
Run
make run
# or
python3 timetracker.py
Install
make install
Copies the script to ~/.local/bin/timetracker and registers a .desktop entry so it appears in the app launcher.
Usage
| Action | How | |---|---| | Start tracking | Click an activity | | Pause | Click the active activity again | | Switch activity | Click a different activity (pauses current) | | Add activity | Click + Add activity | | Remove activity | Right-click an activity | | Archive day | Click Archive | | Set working hours | Click the gear icon | | Mini mode | Ctrl+M | | Edit time | Right-click an activity → Edit time |
Auto-pause on lock / sleep
The timer pauses automatically when the screen locks or the computer sleeps, and resumes when you unlock or wake. A desktop notification confirms the resume. Time spent locked or asleep is never counted.
Working hours
Set a start and end time (HH:MM) via the gear icon. At the start time you get a desktop notification. At the end time the day is archived automatically.
Data
| File | Contents |
|---|---|
| ~/.config/timetracker/config.json | Activities, accumulated time, working hours |
| ~/.local/share/timetracker/archive.jsonl | One archived day per line |
Archive format:
{"date": "2026-06-23", "archived_at": "2026-06-23T17:30:00", "activities": [{"name": "Deep work", "seconds": 14400}]}