Remove unnecessary language packs, fonts, input methods, games, and optional desktop components from a freshly installed Debian system — while keeping the languages you actually use.
- First-run wizard — guided setup that detects your locale and lets you choose what to keep
- Control panel — tab-based GUI for ongoing management (Languages, Components, Updates, Logs)
- Full CLI —
ddo analyze,ddo cleanup,ddo dry-run,ddo restore,ddo update,ddo list-languages - Shared backend — GUI and CLI use exactly the same backend library
- Safety first —
apt -ssimulation before every change; critical packages protected - Rollback / restore — JSON snapshot saved before every operation
- YAML-driven languages — no hardcoded package names in Python
- Supports Debian 13 (Trixie) and future releases
sudo apt install ./debian-desktop-optimizer_1.0.0-1_all.debgit clone https://github.com/apapamarkou/ddo.git
cd ddo
pip install -e ".[dev]"ddo-gui# See what would be removed
ddo analyze
# Preview without removing anything
ddo dry-run
# Run cleanup (keeps languages from ~/.config/ddo/config.yaml)
sudo ddo cleanup
# See installed language packages
ddo list-languages --packages
# Restore a previous snapshot
sudo ddo restore~/.config/ddo/config.yaml
kept_languages:
- en
- fr
auto_update: true
theme: system
ignored_packages: []cd docker
docker compose run ddo-ciSee DEVELOPMENT.md for the full developer guide.
pip install -e ".[dev]"
pytest
ruff check src/ tests/
mypy src/ddo/backend/GPL-3.0-only — see LICENSE.