Project layout
- App code:
touchdeck/ - Tests:
tests/ - Docs (this site):
docs/ - Settings + caches at runtime:
~/.config/touchdeck/
Dev environment
1
Install dev dependencies
2
Run the app locally
--display flags? Not needed—the app prompts you to pick a screen on first launch.3
Run tests
Code style and linting
- The codebase is type-hinted; prefer mypy-friendly changes.
- Keep UI styles consistent with
touchdeck/themes.pyand widget helpers. - Avoid blocking the Qt event loop—use
asyncio.to_threadwhere needed.
Working on docs
1
Install the Mintlify CLI
2
Preview docs
Where to contribute
- New UI pages or widgets:
touchdeck/ui/ - Media providers:
touchdeck/services/mpris.py,touchdeck/services/spotify_provider.py - Settings and validation:
touchdeck/settings.py - Quick actions and custom commands:
touchdeck/quick_actions.pyandtouchdeck/ui/window.py