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
-
Keybinding: Create a shell alias for faster access:
alias todo='python3 ~/projects/random/todo-wallpaper/todo.py' # Now use: todo add "task name"
-
Full-screen todo view: List all todos in a terminal:
watch -n 1 'python3 ~/projects/random/todo-wallpaper/todo.py list'
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5dd347ebe0b7f8ff97949361fad153b09c08f90ff34ef06f0ec2bcad1d531e8
|
|
| MD5 |
854384be28ba5f676adda0b25363c2d0
|
|
| BLAKE2b-256 |
bfccd2e9b5fef97736c3f1dd467d101359ce9b43ab378f66e2d880ebe01b8ee1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e03b579fa4e5060e9b3a70fba5a39c8ce4ead71c776993babc7b5c06fd79ef1
|
|
| MD5 |
afe640b6618fa68dba786c773334daf5
|
|
| BLAKE2b-256 |
2f6e5224def05fda8fe8dfd1bf24d4b70873fcd93639419208fcdaa7fdf2f07d
|