A click-through screen dimmer overlay for KDE Plasma Wayland. Adds a transparent dark layer on top of everything (including panels and fullscreen apps) with adjustable opacity.
- Covers all monitors with dark overlay
- Fully click-through (doesn't intercept mouse/keyboard)
- Always on top (above panels, fullscreen apps, everything)
- System tray icon with slider control
- D-Bus interface for CLI control
- Systemd user service for autostart
- Qt 6 (Widgets, Gui, DBus, WaylandClient)
- KF6 StatusNotifierItem
- layer-shell-qt
- wayland-client
Arch Linux:
sudo pacman -S qt6-base qt6-wayland layer-shell-qt wayland kstatusnotifieritemDebian/Ubuntu:
sudo apt install qt6-base-dev qt6-base-private-dev qt6-wayland-dev liblayershellqtinterface-dev libkf6statusnotifieritem-dev libwayland-dev cmakeyay -S kdedimmer
# or
paru -S kdedimmerThen enable the service:
systemctl --user enable --now kdedimmer./install.shThis will:
- Build the project
- Install binary to
~/.local/bin/ - Install systemd user service
- Enable and start the service
- Left-click tray icon for slider popup (0-90% opacity)
- Scroll wheel over tray icon to adjust (up = less dim, down = more dim)
- Right-click for menu (toggle, quit)
- Middle-click to toggle on/off
kdedimmer # Start daemon (if not using systemd)
kdedimmer +5 # Increase opacity by 5%
kdedimmer -5 # Decrease opacity by 5%
kdedimmer set 50 # Set opacity to 50%
kdedimmer toggle # Toggle on/off
kdedimmer on # Enable overlay
kdedimmer off # Disable overlay
kdedimmer get # Print current opacity
kdedimmer status # Print running statusAdd custom shortcuts in KDE Settings → Shortcuts → Custom Shortcuts:
| Action | Command |
|---|---|
| Dim more | kdedimmer +5 |
| Dim less | kdedimmer -5 |
| Toggle dimmer | kdedimmer toggle |
systemctl --user status kdedimmer # Check status
systemctl --user restart kdedimmer # Restart
systemctl --user stop kdedimmer # Stop
systemctl --user disable kdedimmer # Disable autostartsystemctl --user disable --now kdedimmer
rm ~/.local/bin/kdedimmer
rm ~/.config/systemd/user/kdedimmer.service
systemctl --user daemon-reload- Uses
layer-shell-qtwithLayerOverlayto render above all windows - Empty Wayland input region for complete click-through
- D-Bus service:
org.kde.kdedimmerat path/Dimmer
GPL-3.0-or-later