Synced files: - Session log 2026-03-19 updated (autostart, ScreenConnect, Flarum forum, theme, Node.js) - docs/forum-posts/ recovered from old btrfs home (7 forum post guides) Machine: acg-guru-5070 Timestamp: 2026-03-19 19:25:24 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
# Fix: KDE Plasma Brightness Stuck at ~20% on Intel/NVIDIA Hybrid Laptop
|
|
|
|
## Environment
|
|
- OS: CachyOS (Arch-based), kernel 6.19.7-1-cachyos
|
|
- DE: KDE Plasma 6
|
|
- GPU: Intel Arrow Lake-S (integrated) + NVIDIA RTX 5070 Ti Mobile
|
|
- Laptop: ASUS (model with dual NVMe)
|
|
|
|
## Problem
|
|
|
|
KDE brightness slider showed 100%, but the screen was visibly much dimmer than it should be. Adjusting brightness via hotkeys would make it even dimmer — any hotkey press reset the panel to a dim state.
|
|
|
|
## Diagnosis
|
|
|
|
Two backlight interfaces exist:
|
|
|
|
```bash
|
|
ls /sys/class/backlight/
|
|
# intel_backlight nvidia_0
|
|
|
|
cat /sys/class/backlight/intel_backlight/brightness
|
|
# 100
|
|
cat /sys/class/backlight/intel_backlight/max_brightness
|
|
# 496
|
|
|
|
cat /sys/class/backlight/nvidia_0/brightness
|
|
# 100
|
|
cat /sys/class/backlight/nvidia_0/max_brightness
|
|
# 100
|
|
|
|
cat /sys/class/backlight/intel_backlight/type
|
|
# raw
|
|
cat /sys/class/backlight/nvidia_0/type
|
|
# raw
|
|
```
|
|
|
|
**Root cause:** Both backlights report type `raw`, so KDE couldn't distinguish which was the "real" panel backlight. `nvidia_0` has max=100, `intel_backlight` has max=496. When KDE's brightness hotkeys set "100%" via `nvidia_0`'s scale, it wrote `100` to `intel_backlight` — which is only ~20% of its actual 496 range.
|
|
|
|
## Fix
|
|
|
|
### Immediate Fix
|
|
Set the correct brightness:
|
|
```bash
|
|
sudo sh -c 'echo 496 > /sys/class/backlight/intel_backlight/brightness'
|
|
```
|
|
|
|
### Permanent Fix - Hide nvidia_0 via udev
|
|
|
|
Create `/etc/udev/rules.d/backlight.rules`:
|
|
```bash
|
|
sudo tee /etc/udev/rules.d/backlight.rules > /dev/null << 'EOF'
|
|
# Disable nvidia_0 backlight - conflicts with intel_backlight on this laptop
|
|
# KDE picks up nvidia_0 (max=100) and maps it incorrectly to intel_backlight (max=496)
|
|
SUBSYSTEM=="backlight", KERNEL=="nvidia_0", ATTR{brightness}="0", RUN+="/bin/chmod 000 /sys/class/backlight/nvidia_0"
|
|
EOF
|
|
```
|
|
|
|
Apply immediately (without reboot):
|
|
```bash
|
|
sudo chmod 000 /sys/class/backlight/nvidia_0
|
|
sudo udevadm control --reload-rules
|
|
systemctl --user restart plasma-powerdevil
|
|
```
|
|
|
|
## Verification
|
|
|
|
After hiding `nvidia_0`, KDE only sees `intel_backlight` and maps the slider/hotkeys correctly to the 0-496 range. Full brightness is restored and hotkeys work as expected.
|
|
|
|
## Why This Happens
|
|
|
|
On Intel/NVIDIA hybrid laptops, both GPUs may expose a backlight interface. The NVIDIA driver creates `nvidia_0` even though the actual panel backlight is controlled by `intel_backlight`. Since both report type `raw`, KDE (powerdevil) can pick up the wrong one. The `nvidia_0` interface has a max of 100 — when KDE writes that value to the actual panel controller (max 496), you get ~20% brightness.
|
|
|
|
This is most common on newer laptops with Intel Arrow Lake + RTX 40/50 series mobile GPUs running the proprietary NVIDIA driver.
|