Task / Habit tracking desktop app.
  • Rust 99.1%
  • CSS 0.8%
  • Shell 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Anthony Mills bd3f0a01a0
All checks were successful
CI / lint (push) Successful in 1m30s
CI / test (push) Successful in 1m42s
Release / flatpak (push) Successful in 3m24s
Release / arch (push) Successful in 2m36s
Release / release (push) Successful in 5m44s
Added GTK tests for the child window dismissal functionality.
2026-10-05 08:39:27 +08:00
.forgejo/workflows Added GTK tests for the child window dismissal functionality. 2026-10-05 08:39:27 +08:00
.idea When clicked from the task statistics window, a window will now open showing a calendar and the days that the task has been marked complete. 2026-08-21 10:01:39 +08:00
resources Added support for flakpack package build to the release workflow. 2026-09-24 09:18:28 +08:00
src Added GTK tests for the child window dismissal functionality. 2026-10-05 08:39:27 +08:00
tests Highlight missed days in red on the calendar view from the point of task creation. 2026-10-01 11:16:06 +08:00
.gitignore Added content to the README file, added a LICENCE and a gitignore file. 2026-03-18 21:13:19 +07:00
build.rs Ensure the application gets bundled with the application when bundled as a .deb package. 2026-03-26 15:37:44 +07:00
Cargo.lock Bump of version number. 2026-10-01 08:56:19 +08:00
Cargo.toml Bump of version number. 2026-10-01 08:56:19 +08:00
CHANGELOG.md Added GTK tests for the child window dismissal functionality. 2026-10-05 08:39:27 +08:00
LICENSE Fixed the LICENSE and the uncomplete button name in the app. 2026-03-30 09:43:03 +07:00
README.md Updated the build link in the README file. 2026-09-11 08:40:00 +08:00

Habit Helper

CI

The Dream:

For many years I have wanted a no-nonsense habit tracker. Something to keep me focused on the daily tasks that need to get done with the following aims:

  • It runs on my desktop, not a phone, not a website that I need to load; my computer, that's it. It also needs to be a GUI, I love the command line, but if I have to open a terminal and invoke a command to mark off a task completed, it just feels like extra friction to me.

  • My goals are stored locally in an accessible format. I don't need some adware-ridden app monitoring my progress, only I need to monitor that.

  • Straightforward to use, I just want to add a task that I want to track, then just monitor my progress at it over time. A little dopamine hit when marking something off or looking at an unbroken streak is fine. But I don't want to be slaying dragons or worrying about silly hats in some habit tracking game like Habitica.

  • The app should be open source and Linux first, I don't care about Windows (it seems like lately Microsoft doesn't either), also anything I build is likely to be deemed "not pretty" enough for Mac users. Although they are free to compile it if they like.

The Tech:

This app is written in Rust it uses the rs-gtk library for the GUI. There may be prettier ways to do things, but rs-gtk seems simple enough to use.

Important Files & Directories

habits.db - SQLite database file, created when the application is first run. Stores all the tasks and their completion status.

src/misc/quotes.json - When all due tasks are marked as complete, a "Well Done" dialog window pops up with a random motivational quote from this file, you can open this file in a text editor to add or remove quotes as you wish.

Screenshots

Adding a new task with a dark-coloured desktop theme enabled.

Dark Theme - New Task Creation

Application home window with a few sample tasks and a dark desktop theme enabled.

Dark Theme - Task Listing

Window showing the statistics of the active tasks.

Dark Theme - Task Statistics

All due tasks successfully marked as complete for the day.

Dark Theme - Task Completion

Completion information of a task in the list.

Dark Theme - Tasks Complete

Tag management with a light-coloured desktop theme enabled.

Light Theme - Tag Management

Task listing with a light-coloured theme enabled.

Light Theme - Task Listiing

Acknowledgments

  • gtk-rs for the excellent Rust GTK bindings.

Author

This project was created by Anthony Mills.

License

This project is licensed under the GNU General Public License v3.0 – see the LICENSE file for more information.