- DS4 Dashboard is a lightweight utility for monitoring the DualShock 4 battery level and customizing the controller's light bar (currently Windows only).
- Built with performance and aesthetics in mind using Tauri, Rust, and React.
- 🎮 Universal Support: Full compatibility for both DualShock 4 v1 and v2 controllers.
- 🔋 Real-time Stats: Instant battery levels, charging states, and connection monitoring.
- 🌈 Lightbar & Rumble: Custom color profiles and haptic testing available at any time.
- 🖱️ Experimental Input: Translate joystick and touchpad movements to control the mouse cursor (Experimental).
- 🌓 Dynamic Themes: Beautiful, minimalist UI with native Dark and Light mode support.
- 🚀 High Performance: Lightweight system footprint thanks to Rust and Tauri.
- 📥 Customizable Tray Gauge: Optional system tray icon with a clean, gauge-style battery status indicator.
- Grab the latest version from the Releases page
Tip
GitHub 'Releases' is GitHub jargon for downloads.
⚠️ What's the "Windows protected the PC" message?
When running the app for the first time on Windows, a warning like this might appear:
This warning appears because the app is new and hasn't yet built trust with Microsoft SmartScreen, not because the app is malicious.
According to Microsoft's official documentation, SmartScreen determines whether to show this warning based on:
- Whether the file matches a known list of malicious apps or is from a known malicious site
- Whether the file is well-known and frequently downloaded
- Whether the app is digitally signed with a costly trusted certificate
This is just a generic warning: many indie or open-source apps trigger it until they build trust or pay for expensive certificates.
- Click "More info"
- Click "Run anyway"
To fully avoid SmartScreen warnings on Windows, developers are expected to:
- Buy and use an EV (Extended Validation) Code Signing Certificate
- Have enough users download the app over time to build a strong reputation score
These certificates can cost hundreds of dollars per year, which isn't always feasible for solo developers or small open-source projects.
The focus remains on keeping this tool free and accessible.
For full details on how SmartScreen works, check out Microsoft's official documentation
Thanks for supporting open-source software! 💙
I built DS4 Dashboard to reliably check my controller's battery level and customize the lightbar.
While playing PC games (like Rocket League), connecting a DualShock 4 is easy enough using modern Windows drivers or Steam Input. However, checking my controller's battery level or customizing the lightbar was surprisingly frustrating. Most legacy tools (like Jays2Kings and Schmaldeo) are long-archived, leaving search results filled with unofficial distribution sites and misleading information.
📖 Read the Full Story: For the interactive story of how this project started, and how search engines mistakenly point users to dangerous downloads, check out the Interactive Motivation Page (featuring short and long editions).
The full docs site is at symonxdd.github.io/ds4-dashboard, or browse the same content directly in docs/:
- docs/README.md: project overview and where to go next
- docs/architecture.md: tech stack, folder structure, and how HID communication, the tray gauge, and autostart work under the hood
- docs/features.md: every user-facing feature, and the implementation detail behind each one
- docs/bugs-and-quirks.md: real bugs hit and fixed while building this app
Here's a quick overview of the main files and folders:
ds4-dashboard/
├── .github/
│ └── workflows/
│ └── release.yml # GitHub Actions workflow for automated builds
│
├── crates/
│ └── ds4-hid/ # Low-level HID communication logic in Rust
│
├── scripts/
│ └── release.cjs # Helper script for versioning and tagging
│
├── src/ # React frontend (UI)
│ ├── components/ # Dashboard widgets, gauges, and modals
│ ├── context/ # Theme and state management
│ └── App.jsx # Main application shell
│
├── src-tauri/ # Tauri backend (Native bridge)
│ ├── icons/ # App icons and packaging resources
│ ├── src/ # Rust backend bindings
│ └── tauri.conf.json # Tauri project configuration
│
├── package.json # Node.js dependencies and scripts
└── README.md # Current document ✨
- To build or run in dev mode, follow the official Tauri installation guide.
- Rust is required, along with Node.js and a package manager like
npm.
To start the app in dev mode:
npm run tauri devTo generate a production-ready installer:
npm run tauri buildDS4 Dashboard uses an automated release pipeline powered by GitHub Actions and a helper script.
To create a new release, the release script is executed:
npm run releaseThis will:
- Prompt to select the version type (
Patch,Minor, orMajor) - Bump the version in
package.json&src-tauri/tauri.conf.json - Commit the changes and create a Git tag
- Push the commit and tag to GitHub
Note
The version bump uses a clear commit message like: chore: bump version to v1.2.3
When a v* tag is pushed, the release.yml GitHub Actions workflow is triggered.
- 🔧 Builds the production app (Windows).
- 📦 Packages it into an installer (
.exe). - 📝 Creates a new GitHub Release and uploads the artifacts.
💡 The release process can be viewed under the repo's Actions tab.
This project is built with:




