A frameless, always‑on‑top overlay (Python + PySide6) that acts like a virtual Stream Deck. Toggle it globally, add shortcuts or apps on the fly, and keep your layout between sessions.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
UMPB (Universal Mini Palette Board) is a versatile developer tool that manages overlay interfaces on the Steam Deck platform, enabling intuitive control and interaction within applications. It facilitates the creation of customizable, persistent overlays that enhance user accessibility and control.
This project empowers developers to build seamless overlay experiences that bridge system operations with user-facing interfaces. The core features include:
- 🎨 🖥️ Overlay Management: Handles display and interaction of icons, buttons, and dialogs within the graphical environment.
- 🔑 🔄 Layout Persistence: Saves and loads custom overlay configurations for a consistent user experience.
- ⚙️ 📝 Shortcut & Keystroke Automation: Simplifies quick access to functions through customizable shortcuts and input simulation.
- 🌐 🌟 Cross-Platform Input Dispatching: Ensures responsive control across different systems and input methods.
- 🚀 🔧 User Interaction Enhancement: Improves accessibility and control, making overlay management straightforward for developers and users alike.
- Python ≥ 3.10
- macOS, Windows o Linux (X11/Wayland)
# clone & set‑up venv
git clone https://github.com/USERNAME/umpb.git
cd umpb
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python deck_overlay.pyToggle overlay: ⌘/Ctrl + ⇧ + D
Trigger tile 1‑8: ⌥ + 1‑8
Edit‑mode: click on the header icon
Layout saved in ~/.umpb_layout.json and reload at the start.
send_keystroke(combo: str)
Cross-platform send combination ("ctrl+c", "cmd+v" ...) using pynput. On macOS it automatically converts ctrl to cmd if needed.
_prompt_new_shortcut()
Opens a dialog asking whether to create an App link (file picker) or Key combination (QKeySequenceEdit widget). Validates input, instantiates Shortcut, refreshes page and saves layout.
_load_layout() / _save_layout()
Serialize the pages array into JSON under ~/.umpb_layout.json. Call on every change and in closeEvent for immediate persistence.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you want to support me or you appraciate the project you can:
For now, this project serves as a functional demonstration of digest authentication implementation on Arduino boards with Ethernet connectivity, with potential future iterations to support additional hardware platforms. If yu like it! Leave a star ⭐️
Distributed under the MIT License. See LICENSE.txt for more information.
Giuseppe Tururro - WHOAMI? - info.g.turturro@gmail.com
Project Link: https://github.com/zEhmsy/umpb

