TaskDesk is a native Windows todo manager written entirely in C. The code uses an object-oriented C style: structs hold object state, each module exposes a focused public API, and functions receive a self pointer for the object they operate on.
-
Install a MinGW-w64 GCC toolchain.
-
Open PowerShell in the project folder.
-
Build the application:
.\build.cmd -
Run it:
.\TaskDesk.exe
build.cmd also works when local PowerShell scripts are disabled. The equivalent direct build command is:
gcc main.c src/task.c src/task_repository.c src/task_manager.c src/main_window.c `
-Iinclude -o TaskDesk.exe -std=c11 -Wall -Wextra -Wpedantic `
-mwindows -lcomctl32 -lgdi32- Create, read, update, and delete tasks
- Mark tasks completed directly in the list
- Search titles, notes, and categories instantly
- Filter all, due-today, completed, and overdue tasks
- Sort by newest, due date, or priority
- Track category, priority, optional due date, and notes
- Show live open/completed/total counts
- Autosave to
%LOCALAPPDATA%\TaskDesk\tasks.dat
Read the code in this order:
main.c— constructs the application object and starts it.include/main_window.handsrc/main_window.c— UI state and Windows messages.include/task_manager.handsrc/task_manager.c— CRUD, filtering, and sorting.include/task.handsrc/task.c— one task and its behavior.include/task_repository.handsrc/task_repository.c— loading and saving.
See Architecture for the complete request flow and Adding Features for step-by-step extension recipes.