A living to-do widget for your Linux desktop.
A cat runs along a glowing timeline that flows with the clock โ your tasks ride above each day, and today is wherever the cat is standing.
| Bar | Ring |
![]() |
![]() |
- Two shapes โ a sleek horizontal bar or a clock-like ring. Switch anytime.
- A cat that knows the time โ the RunCat runner marks now; each day drifts toward it and arrives exactly at midnight.
- Tasks at a glance โ colored dashes per day; complete one and it quietly disappears from the widget.
- Lives on your desktop โ a transparent
gtk-layer-shellsurface that sits behind your windows, takes clicks, and drags anywhere (position remembered). - Make it yours โ a polished dark settings panel: a Home view (Unfinished / Done), a custom calendar, and live color pickers for every element.
- Featherweight โ pure C with GTK3 + Cairo. One drawing area, one timer, no threads; only the widget's rectangle repaints, only when something changes.
The same running cat is heading to your phone โ your timeline and tasks, right on the home screen.
Arch
sudo pacman -S gtk3 gtk-layer-shell meson ninja gccDebian / Ubuntu ยท Fedora
# Debian / Ubuntu
sudo apt install libgtk-3-dev libgtk-layer-shell-dev meson ninja-build gcc
# Fedora
sudo dnf install gtk3-devel gtk-layer-shell-devel meson ninja-build gccBuild & run
git clone https://github.com/Andrew-Velox/cat-timeline.git
cd cat-timeline
meson setup build && ninja -C build
./build/cat-timelineInstall system-wide with sudo ninja -C build install.
gtk-layer-shellis optional but recommended; without it the widget falls back to a borderless always-on-top window.cJSONis bundled.
| Action | What happens |
|---|---|
| Click a day dot | Open that day's task panel |
| Double-click empty space | Open the settings window |
| Drag | Move the widget (remembered across restarts) |
| Right-click | Quit |
Autostart on Hyprland โ add to your config:
exec-once = cat-timelineTip: set
CAT_TIMELINE_DEMO=20to compress a day into 20 seconds and watch the timeline scroll.
Everything is saved under ~/.local/share/cat-timeline/ (tasks.json, settings.json, position).
Cat sprites by Takuto Nakamura (RunCat), Apache-2.0 โ embedded unmodified, recolored at render time (license). JSON via bundled cJSON (MIT). The rest of the project is provided as-is.


