Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todo List — Cinnamon desklet

A clean task list on your Linux Mint / Cinnamon desktop. Same architecture and polish as Prompt Vault — dark glass panel, filter chips, search, JSON backup — built for getting things done.

Features

  • Tasks — title, category, tags, notes, due date, priority (None / Low / Medium / High).
  • Search — title, category, tags, notes, and due date as you type.
  • Filter — Active / Done / All, ★ starred, or category with one click.
  • Complete — checkbox or click the task row (green flash confirms it).
  • Due datesDue today, Overdue · 3 days, etc. Overdue open tasks get a red stripe.
  • Priorities — color-coded text badges (never color alone).
  • Progress — open count in the header plus “2 / 5 done” summary.
  • Duplicate, edit, delete — edit opens a proper modal dialog; optional delete confirmation.
  • Backup & restore — export timestamped JSON; import merge or replace; rolling auto-backup.
  • Portable — point the data folder at Dropbox, Nextcloud, a git repo, etc.

Layout (simple sections)

The desklet is organised in four labelled areas anyone can scan at a glance:

  1. Find — search box
  2. Show — filter chips (Active, Done, All, starred, categories)
  3. Tasks — scrollable list
  4. Manage — Add, Export, Import, Folder

Typing in a desklet

Desklets live on the desktop layer, which normally never receives the keyboard. Todo List uses the same compositor grab as Prompt Vault for the search box; add/edit opens a Cinnamon modal dialog with its own focus handling.

  • Esc clears the search (first press) or releases the keyboard (second press).
  • Click outside the desklet releases the keyboard immediately.

Keyboard shortcuts (search field)

Shortcut Action
Ctrl+A Select all
Ctrl+C / Ctrl+X Copy / cut selection
Ctrl+V / Shift+Insert Paste
Middle-click Paste primary selection (X11)
Right-click Copy / Paste context menu
Esc Clear search / release keyboard

In the add/edit dialog: Tab between fields, Ctrl+Enter to save.

Accessibility & design

  • Self-contained high-contrast surface legible on any wallpaper (WCAG 2.1 AA on panel background).
  • Status uses icon + text — never color alone.
  • Due dates and priorities always show text labels.
  • 2px focus rings on every interactive control; borders are 2px at rest so focus does not shift layout.
  • Adjustable width and list height in settings.

Security

  • Data directory created 0700, files written 0600.
  • Import/load capped at 10 MB and 5 000 tasks; corrupt tasks.json is quarantined, never silently deleted.
  • All fields sanitized and length-limited on load and import; duplicate IDs are reassigned.
  • Custom data folder is a deliberate power-user feature (same as Prompt Vault).

Install

./install.sh

Then right-click the desktop → Add DeskletsTodo ListAdd. Reload Cinnamon with Ctrl+Alt+Esc if it does not appear.

Tests

Pure helper logic (dates, tags, sanitization):

node tests/pure-helpers.test.mjs

Data & storage

Default location:

~/.local/share/todo-list@alex/
├── tasks.json
├── tasks.auto-backup.json
└── tasks-backup-YYYY-MM-DD_HHMMSS.json

Place import.json in the data folder, then use Import from the toolbar.

Data model

{
  "id": "uuid",
  "title": "string",
  "category": "string",
  "tags": ["string"],
  "notes": "string",
  "dueDate": "YYYY-MM-DD | null",
  "priority": "none | low | medium | high",
  "completed": false,
  "favorite": false,
  "createdAt": "ISO-8601",
  "updatedAt": "ISO-8601",
  "completedAt": "ISO-8601 | null"
}

Uninstall

rm ~/.local/share/cinnamon/desklets/todo-list@alex

Your data in ~/.local/share/todo-list@alex/ is left untouched.

License

Copyright © 2026 Alexander Mäule.

Todo List is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License v3.0 or later.

Author

Alexander Mäulesoftware-by-design.de · alex@software-by-design.de · LinkedIn

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages