Skip to content

platform gnome

André Paul Grandsire edited this page Aug 7, 2026 · 2 revisions

GNOME Modules

The GNOME-specific implementation, built with GTK4 and libadwaita.

Structure

src/
├── actions/      # GAction implementations
├── views/        # GTK widget implementations
├── widgets/      # .ui UI templates
└── persistence/  # File-based storage

Key Concepts

  • Actions: Use GNOME's GAction system
  • Views: Extend GTK widgets to display tasks
  • Widgets: GTK4 .ui templates
  • Persistence: JSON file in the user data directory

Adding Features

New Action

Create src/actions/my-action.ts, register in actions/index.ts.

New View

Create src/views/my-view.ts, extend GTK widget, export in views/index.ts.

New UI Template

  1. Create .ui file in widgets/
  2. Add it to src/widgets/io.github.andrepg.Doit.data.gresource.xml.in
  3. Update src/io.github.andrepg.Doit.src.gresource.xml.in when adding/renaming TS files

Rules

  • Comments must always be written in English
  • Every UI or TS file change must update the respective .gresource.xml.in

Clone this wiki locally