-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This document provides an overview of the Do It project architecture and how to navigate its source code.
Do It is a GNOME task manager application written in TypeScript, using GTK4 and libadwaita. It targets Linux/GNOME only.
src/
├── actions/ # Gio SimpleAction handlers
├── managers/ # Stateful managers (e.g., project-manager.ts)
├── persistence/ # Data storage implementation (gio-persistence.ts)
├── views/ # UI code counterparts (e.g., doit.ts)
├── widgets/ # UI components (`.ui` files)
├── utils/ # Utility functions and settings
└── *.ts # App entry points and shared types
-
app.types.ts: Types likeITask,ITaskView -
app.enums.ts: Enums likeSortingField,SortingStrategy,AppSignals -
app.strings.ts: Localized strings -
app.static.ts: Static configuration
Gio SimpleAction handlers that wire UI interactions to application behavior.
GTK widget implementations that display tasks and manage the UI (e.g., doit.ts, task-item.ts).
GTK4 .ui templates loaded via GResource.
File-based JSON storage using Gio (gio-persistence.ts).
Stateful managers that coordinate app-wide state and emit signals (e.g., project-manager.ts discovers projects from the task store).
Helper functions: settings access (settings.ts), sorting logic (sort.ts, tasks.sort.ts), logging (log-manager.ts), and the build-time generated application.js.
The project uses a single TypeScript path alias (defined in tsconfig.json):
-
~→src
- Use Meson (
meson setup build && ninja -C build) - Use
yarn devfor development