Task / Habit tracking desktop app.
  • Rust 99.1%
  • CSS 0.7%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Anthony Mills 04c90d3e55
All checks were successful
CI / lint (push) Successful in 1m49s
CI / test (push) Successful in 2m19s
Added repo tag to the project cargo file.
2026-09-04 12:06:27 +08:00
.forgejo/workflows Releases fix. 2026-09-02 00:46:53 +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 Update of appliication screenshots to match v0.2.7. 2026-08-26 09:37:36 +08:00
src Added streak and completion percentage to the task calendar view window. 2026-08-25 10:31:00 +08:00
tests Added menu option to allow the toggling of the application colour theme. 2026-08-21 11:08:54 +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 Added release build steps. Bumped version number. 2026-09-01 18:30:23 +08:00
Cargo.toml Added repo tag to the project cargo file. 2026-09-04 12:06:27 +08:00
CHANGELOG.md Updated the changelog fiile. 2026-09-01 18:36:47 +08:00
LICENSE Fixed the LICENSE and the uncomplete button name in the app. 2026-03-30 09:43:03 +07:00
README.md Update of appliication screenshots to match v0.2.7. 2026-08-26 09:37:36 +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.