https://github.com/u2n4/dualled-pro
๐ฎ Real-time RGB lightbar control for PS5 DualSense & PS4 DualShock 4 โ with a live 3D controller view, 10 lighting effects, battery alerts & profiles. Python/Tkinter.
https://github.com/u2n4/dualled-pro
3d controller desktop-app dualsense dualsense-controller dualshock gamepad gaming gui hid led lightbar playstation ps4 ps5 python rgb rgb-lighting tkinter windows
Last synced: about 24 hours ago
JSON representation
๐ฎ Real-time RGB lightbar control for PS5 DualSense & PS4 DualShock 4 โ with a live 3D controller view, 10 lighting effects, battery alerts & profiles. Python/Tkinter.
- Host: GitHub
- URL: https://github.com/u2n4/dualled-pro
- Owner: u2n4
- License: mit
- Created: 2026-06-29T00:20:45.000Z (3 days ago)
- Default Branch: main
- Last Pushed: 2026-06-29T00:28:49.000Z (3 days ago)
- Last Synced: 2026-06-29T02:12:44.420Z (3 days ago)
- Topics: 3d, controller, desktop-app, dualsense, dualsense-controller, dualshock, gamepad, gaming, gui, hid, led, lightbar, playstation, ps4, ps5, python, rgb, rgb-lighting, tkinter, windows
- Language: Python
- Size: 32.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฎ DualLED Pro
### Real-time RGB lightbar control for PS5 DualSense & PS4 DualShock 4 โ with a live 3D controller view
[](https://www.python.org/)
[](#-installation)
[](LICENSE)
[](CONTRIBUTING.md)
[](https://docs.python.org/3/library/tkinter.html)
[](https://github.com/u2n4/dualled-pro/stargazers)
**Pick any color, run a lighting effect, watch your battery โ and see it mirrored on a 3D model of your actual controller, in real time.**
๐ฌ๐ง English ยท ๐ธ๐ฆ [ุจุงูุนุฑุจู](#-ุจุงูุนุฑุจู)

---
## โก Easy install (no Python needed)
**Don't have Python? No problem.** Open **PowerShell** and paste this **one line** โ it installs Python (if you don't have it), downloads the app, installs everything, and opens it automatically:
```powershell
irm https://raw.githubusercontent.com/u2n4/dualled-pro/main/install.ps1 | iex
```
๐ How do I open PowerShell?
1. Press the **Windows key**.
2. Type **`powershell`**.
3. Click **Windows PowerShell**, paste the line above, press **Enter**.
4. Wait. The app opens by itself when it's done. โ
> If you see a message asking you to open a **new** PowerShell window, just close it, open PowerShell again, and paste the same line once more.
To run it again later, just paste the same line โ or use the shortcut printed at the end of the install.
> ๐ Manual install (for developers) is in [Installation](#-installation) below.
---
## โจ Features
- ๐จ **10 lighting modes** โ Manual, Rainbow, Pulse, Flash, Breathing, Heartbeat, Wave, Gradient, Sequence, Random.
- ๐น๏ธ **Live 3D controller view** โ a 3D PS5/PS4 model whose lightbar mirrors the real one **100% in sync**.
- ๐ **Auto-detects your controller** โ picks the correct PS5 (DualSense) or PS4 (DualShock 4) model automatically.
- ๐ **Battery monitor & alerts** โ low-battery, plugged-in, and full-charge notifications.
- ๐พ **Profiles** โ save and switch named color/effect presets instantly.
- ๐ **Bilingual UI** โ English & Arabic (ุงูุนุฑุจูุฉ), switchable at runtime.
- ๐ช **Fullscreen + tray** โ runs fullscreen, minimizes to tray instead of quitting.
- ๐ **Animated starfield background** (toggleable).
- ๐๏ธ **Headless / background mode** โ drive the lightbar with no window via the CLI.
- ๐งฉ **Single file, zero build step** โ one `dualled_pro.py`, pure Python + Tkinter.
> **Scope, honestly:** DualLED Pro is focused on **lighting, battery, and presets**. It is *not* a music-reactive / macro / scheduling suite โ it does one thing and does it cleanly.
---
## ๐ธ Screenshots
| 3D sync view | Effects & profiles |
|---|---|
|  |  |
---
## ๐ Installation
> **Requires Python 3.8+** and a controller connected over **USB** (Bluetooth works too on most setups).
```bash
# 1. Clone
git clone https://github.com/u2n4/dualled-pro.git
cd dualled-pro
# 2. (recommended) virtual env
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS / Linux:
source .venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Run
python dualled_pro.py
```
**Minimal install** (just enough to run):
```bash
pip install -U pydualsense hidapi psutil
python dualled_pro.py
```
### Windows driver note (PS5 DualSense)
For `pydualsense` to talk to a DualSense, Windows needs the **WinUSB/libusb** driver bound to the controller. The simplest path is [Zadig](https://zadig.akeo.ie/): select the DualSense device โ install **WinUSB**. (PS4 / generic HID controllers usually work without this.)
---
## ๐๏ธ Usage
Launch the GUI:
```bash
python dualled_pro.py
```
Run **headless** (no window โ uses your last saved settings):
```bash
# Drive the lightbar in the background
python dualled_pro.py --background
# Auto-stop after 30 minutes, then turn the lightbar off
python dualled_pro.py --background --stop-after 30 --off-on-exit
```
| Flag | Description |
|---|---|
| `--background` | Run without the UI, using the last saved color/mode. |
| `--stop-after N` | Automatically stop after `N` minutes (background mode). |
| `--off-on-exit` | Turn the lightbar off when exiting. |
Config and logs live in your OS app-data folder (`%APPDATA%\DualLED_Pro` on Windows).
---
## ๐งฉ How it works
```
โโโโโโโโโโโโโโโ HID โโโโโโโโโโโโโโโโโ color/effect โโโโโโโโโโโโโโโโ
โ Controller โ โโโโโโโโบ โ DualLED Pro โ โโโโโโโโโโโโโโโโบ โ Lightbar โ
โ PS5 / PS4 โ โโโโโโโโ โ engine + UI โ โ (real RGB) โ
โโโโโโโโโโโโโโโ battery โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโโโโโโโ
โ mirror
โผ
โโโโโโโโโโโโโโโโโโโโ
โ Live 3D model โ same color, in sync
โโโโโโโโโโโโโโโโโโโโ
```
A background engine thread computes the current color (solid or animated effect) and pushes it to the physical lightbar over HID, while the Tkinter UI renders a 3D controller whose lightbar is tinted with the exact same value.
---
## ๐ค Contributing
PRs and issues are welcome โ see [CONTRIBUTING.md](CONTRIBUTING.md). Good first contributions: more controller models in the 3D view, extra effects, packaging recipes (PyInstaller spec, `.app`/AppImage), and translations.
## ๐ License
[MIT](LICENSE) ยฉ u2n4
## ๐ Acknowledgements
Built on [`pydualsense`](https://github.com/flok/pydualsense), [`hidapi`](https://github.com/trezor/cython-hidapi), and [`psutil`](https://github.com/giampaolo/psutil). Not affiliated with or endorsed by Sony. PlayStation, DualSense, and DualShock are trademarks of Sony Interactive Entertainment.
---
## ๐ธ๐ฆ ุจุงูุนุฑุจู
# ๐ฎ DualLED Pro
### ุชุญููู
ูุญุธู ุจุฅุถุงุกุฉ ูุฏ PS5 (DualSense) ู PS4 (DualShock 4) โ ู
ุน ุนุฑุถ ุซูุงุซู ุงูุฃุจุนุงุฏ ุญู ูููุฏ
ุงุฎุชุฑ ุฃู ูููุ ุดุบูู ุชุฃุซูุฑ ุฅุถุงุกุฉุ ุฑุงูุจ ุงูุจุทุงุฑูุฉ โ ูุดูููุง ูููุง ู
ูุนูุณุฉ ุนูู ูู
ูุฐุฌ ุซูุงุซู ุงูุฃุจุนุงุฏ ูููุฏ ุงููุนููุฉ ูุญุธุฉ ุจูุญุธุฉ.
### โจ ุงูู
ุฒุงูุง
- ๐จ **10 ุฃูุถุงุน ุฅุถุงุกุฉ** โ ูุฏููุ ููุณ ูุฒุญุ ูุจุถุ ูู
ูุถุ ุชูููุณุ ูุจุถุฉ ููุจุ ู
ูุฌุฉุ ุชุฏุฑูุฌุ ุชุณูุณูุ ุนุดูุงุฆู.
- ๐น๏ธ **ุนุฑุถ ุซูุงุซู ุงูุฃุจุนุงุฏ ุญู** โ ูู
ูุฐุฌ 3D ููู PS5/PS4 ุฅุถุงุกุชู ุชุชุฒุงู
ู ู
ุน ุงููุฏ ุงูุญููููุฉ 100%.
- ๐ **ูุดู ุชููุงุฆู ูููุน ุงููุฏ** โ ูุนุฑุถ ุงููู
ูุฐุฌ ุงูุตุญูุญ (PS5 ุฃู PS4) ุชููุงุฆูุงู.
- ๐ **ู
ุฑุงูุจุฉ ุจุทุงุฑูุฉ ูุชูุจููุงุช** โ ุชูุจูู ุนูุฏ ุงูุฎูุงุถ ุงูุดุญูุ ุงูุชูุตููุ ูุงูุงูุชู
ุงู.
- ๐พ **ู
ููุงุช ุชุนุฑูู** โ ุงุญูุธ ูุจุฏูู ุจูู ุฅุนุฏุงุฏุงุช ููู/ุชุฃุซูุฑ ู
ุญููุธุฉ ููุฑุงู.
- ๐ **ูุงุฌูุฉ ุซูุงุฆูุฉ ุงููุบุฉ** โ ุนุฑุจู ูุฅูุฌููุฒูุ ุชุชุจุฏูู ุฃุซูุงุก ุงูุชุดุบูู.
- ๐ช **ู
ูุก ุงูุดุงุดุฉ + ุชุตุบูุฑ ููุดุฑูุท** ุจุฏูุงู ู
ู ุงูุฅุบูุงู.
- ๐ **ุฎูููุฉ ูุฌูู
ู
ุชุญุฑูุฉ** (ูุงุจูุฉ ููุฅููุงู).
- ๐๏ธ **ูุถุน ุฎููู ุจุฏูู ูุงุฌูุฉ** ุนุจุฑ ุณุทุฑ ุงูุฃูุงู
ุฑ.
- ๐งฉ **ู
ูู ูุงุญุฏุ ุจุฏูู ุฃู ุจูุงุก** โ `dualled_pro.py` ููุทุ ุจุงูุซูู + Tkinter.
> **ุจุตุฑุงุญุฉุ ูุทุงู ุงูุจุฑูุงู
ุฌ:** DualLED Pro ู
ุฑููุฒ ุนูู **ุงูุฅุถุงุกุฉุ ุงูุจุทุงุฑูุฉุ ูุงูุฅุนุฏุงุฏุงุช ุงูู
ุญููุธุฉ**. ู
ู ุจุฑูุงู
ุฌ ุชูุงุนู ู
ุน ุงูู
ูุณููู ููุง ู
ุงูุฑููุงุช ููุง ุฌุฏููุฉ โ ูุณููู ุดู ูุงุญุฏ ููุณูููู ูุธูู.
---
### ๐ธ ููุทุงุช ุงูุดุงุดุฉ
| ุนุฑุถ ุซูุงุซู ุงูุฃุจุนุงุฏ ู
ุชุฒุงู
ู | ุงูุชุฃุซูุฑุงุช ูุงูุฅุนุฏุงุฏุงุช |
|---|---|
|  |  |
---
### โก ุงูุชุซุจูุช ุงูุณูู (ุจุฏูู ุจุงูุซูู ููุง ุฃู ุดู)
**ู
ุง ุนูุฏู ุจุงูุซููุ ุนุงุฏู.** ุงูุชุญ **PowerShell** ูุงูุตู ูุฐุง **ุงูุณุทุฑ ุงููุงุญุฏ** โ ูุซุจูุช ุจุงูุซูู ูู ู
ุง ูู ู
ูุฌูุฏุ ูุญู
ูู ุงูุจุฑูุงู
ุฌุ ูุฑููุจ ูู ุดูุ ูููุชุญ ุงูุจุฑูุงู
ุฌ ุชููุงุฆูุงู:
```powershell
irm https://raw.githubusercontent.com/u2n4/dualled-pro/main/install.ps1 | iex
```
**ููู ุชูุชุญ PowerShellุ**
1. ุงุถุบุท ุฒุฑ **Windows**.
2. ุงูุชุจ **`powershell`**.
3. ุงูุชุญ **Windows PowerShell**ุ ุงูุตู ุงูุณุทุฑ ูููุ ุงุถุบุท **Enter**.
4. ุงุณุชูู. ุงูุจุฑูุงู
ุฌ ููุชุญ ุจููุณู ูู
ุง ูุฎููุต. โ
> ูู ุทูุนุช ูู ุฑุณุงูุฉ ุชููู ุงูุชุญ ูุงูุฐุฉ PowerShell **ุฌุฏูุฏุฉ** โ ุณููุฑ ุงููุงูุฐุฉุ ุงูุชุญ PowerShell ู
ุฑุฉ ุซุงููุฉุ ูุงูุตู ููุณ ุงูุณุทุฑ.
ูุชุดุบููู ู
ุฑุฉ ุซุงููุฉ ุจุนุฏูู: ุงูุตู ููุณ ุงูุณุทุฑุ ุฃู ุงุณุชุฎุฏู
ุงูุงุฎุชุตุงุฑ ุงููู ูุทูุน ูู ุจููุงูุฉ ุงูุชุซุจูุช.
### ๐ ุงูุชุซุจูุช ุงููุฏูู (ููู
ุทูุฑูู)
> ูุญุชุงุฌ **ุจุงูุซูู 3.8+** ููุฏ ู
ูุตููุฉ ุนุจุฑ **USB** (ุงูุจููุชูุซ ูุดุชุบู ุจุนุฏ ุนูู ุฃุบูุจ ุงูุฃุฌูุฒุฉ).
```bash
# 1. ุงูุณุฎ ุงูู
ุณุชูุฏุน
git clone https://github.com/u2n4/dualled-pro.git
cd dualled-pro
# 2. (ูููุถูู) ุจูุฆุฉ ุงูุชุฑุงุถูุฉ
python -m venv .venv
.venv\Scripts\activate
# 3. ุฑููุจ ุงูู
ุชุทูุจุงุช
pip install -r requirements.txt
# 4. ุดุบูู
python dualled_pro.py
```
**ุชุซุจูุช ุณุฑูุน** (ุฃูู ุดู ูููู ููุชุดุบูู):
```bash
pip install -U pydualsense hidapi psutil
python dualled_pro.py
```
> **ู
ูุงุญุธุฉ ุฏุฑุงููุฑ ูููุฏูุฒ (ูุฏ PS5 DualSense):** ุนุดุงู ู
ูุชุจุฉ `pydualsense` ุชูููู
ุงููุฏุ ูููุฏูุฒ ูุญุชุงุฌ ุฏุฑุงููุฑ **WinUSB/libusb** ู
ุฑุจูุท ุจุงููุฏ. ุฃุณูู ุทุฑููุฉ ุนุจุฑ [Zadig](https://zadig.akeo.ie/): ุงุฎุชุฑ ุฌูุงุฒ DualSense โ ุซุจูุช **WinUSB**. (ูุฏ PS4 / ุงูุฃุฌูุฒุฉ ุงูุนุงู
ุฉ ุบุงูุจุงู ุชุดุชุบู ุจุฏูู ูุฐุง.)
---
### ๐๏ธ ุงูุงุณุชุฎุฏุงู
ุดุบูู ุงููุงุฌูุฉ:
```bash
python dualled_pro.py
```
ุดุบููู **ุจุฏูู ูุงุฌูุฉ** (ูุณุชุฎุฏู
ุขุฎุฑ ุฅุนุฏุงุฏุงุช ุญูุธุชูุง):
```bash
# ุชุดุบูู ุงูุฅุถุงุกุฉ ุจุงูุฎูููุฉ
python dualled_pro.py --background
# ูููู ุชููุงุฆูุงู ุจุนุฏ 30 ุฏูููุฉุ ููุทููู ุงูุฅุถุงุกุฉ
python dualled_pro.py --background --stop-after 30 --off-on-exit
```
| ุงูุฃู
ุฑ | ุงููุธููุฉ |
|---|---|
| `--background` | ูุดุชุบู ุจุฏูู ูุงุฌูุฉุ ุจุงุณุชุฎุฏุงู
ุขุฎุฑ ููู/ูุถุน ู
ุญููุธ. |
| `--stop-after N` | ูููู ุชููุงุฆูุงู ุจุนุฏ `N` ุฏูููุฉ (ูุถุน ุงูุฎูููุฉ). |
| `--off-on-exit` | ูุทููู ุงูุฅุถุงุกุฉ ุนูุฏ ุงูุฎุฑูุฌ. |
ุงูุฅุนุฏุงุฏุงุช ูุงูุณุฌูุงุช ุชูุญูุธ ูู ู
ุฌูุฏ ุจูุงูุงุช ุงููุธุงู
(`%APPDATA%\DualLED_Pro` ุนูู ูููุฏูุฒ).
---
### ๐งฉ ููู ูุดุชุบู ุงูุจุฑูุงู
ุฌ
```
โโโโโโโโโโโโโโโ HID โโโโโโโโโโโโโโโโโ ููู/ุชุฃุซูุฑ โโโโโโโโโโโโโโโโ
โ ุงููุฏ โ โโโโโโโโบ โ DualLED Pro โ โโโโโโโโโโโโโโโโบ โ ุงูุฅุถุงุกุฉ โ
โ PS5 / PS4 โ โโโโโโโโ โ ู
ุญุฑูู + ูุงุฌูุฉ โ โ (RGB ูุนูู) โ
โโโโโโโโโโโโโโโ ุจุทุงุฑูุฉ โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโโโโโโโ
โ ุงูุนูุงุณ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ ูู
ูุฐุฌ 3D ุญู โ ููุณ ุงููููุ ู
ุชุฒุงู
ู
โโโโโโโโโโโโโโโโโโโโ
```
ุฎูุท (thread) ุจุงูุฎูููุฉ ูุญุณุจ ุงูููู ุงูุญุงูู (ุซุงุจุช ุฃู ุชุฃุซูุฑ ู
ุชุญุฑูู) ููุฑุณูู ููุฅุถุงุกุฉ ุงููุนููุฉ ุนุจุฑ HIDุ ูุจููุณ ุงูููุช ูุงุฌูุฉ Tkinter ุชุฑุณู
ูุฏ ุซูุงุซูุฉ ุงูุฃุจุนุงุฏ ุฅุถุงุกุชูุง ุจููุณ ุงูููู ุจุงูุถุจุท.
---
### ๐ค ุงูู
ุณุงูู
ุฉ
ุงูู PRs ูุงูู issues ู
ุฑุญูุจ ูููุง โ ุดูู [CONTRIBUTING.md](CONTRIBUTING.md). ุฃููุงุฑ ููู
ุจุชุฏุฆูู: ูู
ุงุฐุฌ ูุฏ ุฅุถุงููุฉ ูู ุงูุนุฑุถ 3Dุ ุชุฃุซูุฑุงุช ุฌุฏูุฏุฉุ ูุตูุงุช ุชุบููู (PyInstaller / `.app` / AppImage)ุ ูุชุฑุฌู
ุงุช.
### ๐ ุงูุชุฑุฎูุต
[MIT](LICENSE) ยฉ u2n4
### ๐ ุดูุฑ
ู
ุจูู ุนูู [`pydualsense`](https://github.com/flok/pydualsense) ู [`hidapi`](https://github.com/trezor/cython-hidapi) ู [`psutil`](https://github.com/giampaolo/psutil). ุบูุฑ ุชุงุจุน ูุดุฑูุฉ Sony ููุง ู
ุนุชู
ุฏ ู
ููุง. PlayStation ู DualSense ู DualShock ุนูุงู
ุงุช ุชุฌุงุฑูุฉ ูู Sony Interactive Entertainment.