Skip to main content

A CLI todo list that renders as your desktop wallpaper

Project description

Todo-Wallpaper

A simple interactive todo list that appears as your Linux desktop wallpaper.

Features

  • 📝 Manage todos via simple CLI commands
  • 🖼️ Live wallpaper rendering with minimalist design
  • 🚀 Automatic startup on login (via systemd)
  • 🎨 Clean, readable formatting with blue accent

Installation

pip install todo-wallpaper

After installation, enable autostart:

todo init

Data Locations

  • ~/.local/share/todo-wallpaper/todos.json — todo list storage
  • ~/.cache/todo-wallpaper/wallpaper.png — generated wallpaper
  • ~/.config/systemd/user/todo-wallpaper-init.service — autostart service

Usage

Adding Todos

todo add "Buy groceries"
todo add "Complete project"

The wallpaper will automatically render and update your desktop.

Listing Todos

todo list

Output:

1: Buy groceries
2: Complete project

Removing Todos

todo remove 1  # Remove first todo
todo remove 2  # Remove second todo

Get Help

todo

Set Up Autostart

todo init

Workflow Examples

Daily Routine

# Start your day
todo add "Review emails"
todo add "Team standup"
todo add "Code review"

# Check what's on your plate
todo list

# Mark items as done
todo remove 1  # ✓ emails done
todo remove 1  # ✓ standup done

Want to stop autostart?

systemctl --user disable todo-wallpaper-init.service

Re-enable autostart?

systemctl --user enable todo-wallpaper-init.service

Manual wallpaper render

python3 render.py

Optional: File Watcher

Use watch.py to auto-update wallpaper whenever todos.json changes:

python3 watch.py

This runs a daemon in the foreground. Press Ctrl+C to stop.

Requirements: watchdog package (pip install watchdog)

Tips

  1. Keybinding: Create a shell alias for faster access:

    alias todo='python3 ~/projects/random/todo-wallpaper/todo.py'
    # Now use: todo add "task name"
    
  2. Full-screen todo view: List all todos in a terminal:

    watch -n 1 'python3 ~/projects/random/todo-wallpaper/todo.py list'
    
  3. Regular refresh (if not using watch.py):

    # Add to crontab to refresh every hour
    0 * * * * python3 ~/projects/random/todo-wallpaper/render.py
    

Development

Testing

# Add a test todo
python3 todo.py add "Test task"

# Verify it appears in wallpaper
python3 render.py

# List todos
todo list

# Remove it
todo remove 1

Project Structure

  • State: todos.json (persistent JSON file)
  • Rendering: render.py (Pillow image generation)
  • Interface: todo.py (CLI commands)
  • Automation: init.py + systemd service (startup)

License

MIT

Support

Issues or suggestions? Check:

  • Are all dependencies installed? Run python3 setup.py
  • Is feh correctly setting the wallpaper? Try manually: feh --bg-fill wallpaper.png
  • Are todo files in the right location? Should be in ~/projects/random/todo-wallpaper/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo_wallpaper-0.1.6.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

todo_wallpaper-0.1.6-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file todo_wallpaper-0.1.6.tar.gz.

File metadata

  • Download URL: todo_wallpaper-0.1.6.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for todo_wallpaper-0.1.6.tar.gz
Algorithm Hash digest
SHA256 a5dd347ebe0b7f8ff97949361fad153b09c08f90ff34ef06f0ec2bcad1d531e8
MD5 854384be28ba5f676adda0b25363c2d0
BLAKE2b-256 bfccd2e9b5fef97736c3f1dd467d101359ce9b43ab378f66e2d880ebe01b8ee1

See more details on using hashes here.

File details

Details for the file todo_wallpaper-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: todo_wallpaper-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for todo_wallpaper-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9e03b579fa4e5060e9b3a70fba5a39c8ce4ead71c776993babc7b5c06fd79ef1
MD5 afe640b6618fa68dba786c773334daf5
BLAKE2b-256 2f6e5224def05fda8fe8dfd1bf24d4b70873fcd93639419208fcdaa7fdf2f07d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page