A lightweight brightness control plugin for Dank Material Shell (DMS) on Linux.
Supports both:
- 🖥️ Internal displays (via
brightnessctl) - 🖥️ External monitors (via
ddcutil)
- 🔆 Adjust brightness directly from DMS panel
- 🎯 Per-monitor control (no cross interference)
- ⚡ Fast response with debounce mechanism
- 🔄 One-click presets (0%, 25%, 50%, 75%, 100%)
- 🔍 Auto-detect available displays
- 💤 Minimal CPU usage (no background polling)
Make sure you have the following installed:
# For internal display brightness
sudo pacman -S brightnessctl
# For external monitor (DDC/CI)
sudo pacman -S ddcutil
⚠️ Forddcutil, you may need I2C permissions:
sudo modprobe i2c-dev
sudo usermod -aG i2c $USERThen log out and log back in.
- Clone the repository:
git clone https://github.com/smithyyang/dms-brightness-plugin.git- Copy files into DMS plugin directory:
cp -r dms-brightness-plugin ~/.config/DankMaterialShell/plugins/ddcBrightness- Restart DMS
Copy these files into:
~/.config/DankMaterialShell/plugins/ddcBrightness/plugin.jsonDdcBrightness.qml
- Open DMS panel
- Click the brightness icon
- Adjust sliders per monitor
- Uses
brightnessctlfor laptop/internal screens - Uses
ddcutilfor external monitors via DDC/CI - Runs a one-time scan at startup (no continuous background scanning)
- Applies brightness changes via lightweight subprocess calls
ddcutil detectIf nothing shows:
- Check if your monitor supports DDC/CI
- Enable DDC/CI in monitor settings
sudo usermod -aG i2c $USER
Pull requests are welcome!
Made by @smithyyang
Give this repo a star ⭐