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.8.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.8-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo_wallpaper-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 1e2b3f226ab2d61c736d899e932f032f52df89263ffdb6399341d6a3359b073b
MD5 1495527a778a2dcafc21e32c157d07ec
BLAKE2b-256 960fe175ba0c29ee2c4a8c6b638c11faa733971c8c679338b39a1f237f3db2cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_wallpaper-0.1.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 44f339634707fe20f7e37b33a7efb40162005e6402c4095754884cfb3211c2e9
MD5 dac914a0e534f0e1d52a06331ec32b90
BLAKE2b-256 7122a25523221662ae62b0b06f706b7161f1712cb62658273ccae0ccf9674d7e

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