The server component of Decklify, written in Python.
Important
The installer and AutoHotkey only work on Windows.
- AutoHotkey installed and running.
Download the installer from the Releases page and run it.
Note
Because the binary is not digitally signed, Windows Defender may flag the installer as potentially dangerous. This is expected. You can safely proceed if you downloaded it from this repository's Releases page. For extra assurance, verify the file checksum provided alongside the release.
To edit the deck configuration:
- Right-click the tray icon.
- Click Open Editor.
This opens the editor in your browser. If it doesn't open automatically, navigate to http://localhost:8000/ui/index.html.
From there, you can drag tiles and pages to rearrange them and configure each one. When you're done, click Upload, then tap Reload on the client to apply the new configuration.
To add macros and icons:
- Right-click the tray icon.
- Click Open Config Folder.
To get started customizing your deck, check out the example configuration.
Decklify/
├── assets/
│ └── tile_icons/
├── config/
├── logs/
└── macros/
- assets - Media files served to the client.
- tile_icons - Icons displayed on tiles.
- config - A JSON file describing the page layout, tiles, actions, labels, and icons.
- logs - Server log files.
- macros - AutoHotkey scripts.
- Python - Language
- uv - Package manager
- FastAPI - Web server
- pystray - System tray integration
- ahk - AutoHotkey Python wrapper
- Pillow - Image manipulation
- platformdirs - Platform directory resolution
- zeroconf - mDNS library
- PyInstaller - Bundler
- Inno Setup - Windows installer builder
- Add a browser-based editor for deck customization
-
Add a way to manually change the client's IP in the editorAdd mDNS for automatic pairing - Migrate editor from plain HTML/JS/CSS to Svelte
- Add CONTRIBUTING.md
- Document code
- Change the app icon (or not :))
- Optional: use HTTPS between client and server
This project is licensed under the GNU GPLv3 License - see the COPYING.md file for details.