Skip to content

Fix Brightness Control For Multi GPU/Backlight Devices#959

Closed
CruScanlan wants to merge 2 commits intonoctalia-dev:mainfrom
CruScanlan:fix/multi-backlight-brightness
Closed

Fix Brightness Control For Multi GPU/Backlight Devices#959
CruScanlan wants to merge 2 commits intonoctalia-dev:mainfrom
CruScanlan:fix/multi-backlight-brightness

Conversation

@CruScanlan
Copy link
Copy Markdown
Contributor

@CruScanlan CruScanlan commented Dec 3, 2025

Motivation

I use a laptop with both an nvidia dedicated gpu and integrated intel gpu. The brightness controls do not work at all for me because the current system takes the first backlight device it finds in /sys/class/backlight/ and uses that for brightness control. Each GPU is treated as its own backlight device so when this isn't the gpu that is currently controlling my laptop display the brightness does not change.

The way this change works is just that it will take all internal backlight devices found in /sys/class/backlight/ and set the brightness on all.
There is also a fallback in the case no device is detected.

Type of Change

Mark the relevant option with an "x".

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring

Related Issue

Testing

I tested it on my own machine and then also disabled one of the backlight devices on my machine to confirm it still works with a single one.

  • Tested on niri
  • Tested on Hyprland
  • Tested on sway
  • Tested with different bar positions and density settings
  • Tested at different interface scaling values
  • Tested with multiple monitors (if applicable)

Screenshots / Videos

Checklist

  • Code follows project style guidelines
  • Self-reviewed my code
  • No new warnings or errors
  • Documentation or comments updated (if relevant)

Additional Notes

@mugdad1
Copy link
Copy Markdown

mugdad1 commented Dec 4, 2025

nice

@dklawren
Copy link
Copy Markdown

Testing this on my Dell Pro Max 16 Premium MA16250 with combination of Nvidia and Intel GPUs, this patch fixes the brightness issue for me. I am able to control the brightness of the eDP-1 output correctly.

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-P [Arc Pro 130T/140T] (rev 03)
01:00.0 VGA compatible controller: NVIDIA Corporation GB206GLM [RTX PRO 2000 Blackwell Generation Laptop GPU] (rev a1)
$ ls -al /sys/class/backlight
total 0
drwxr-xr-x.  2 root root 0 Dec 27 23:52 .
drwxr-xr-x. 84 root root 0 Dec 27 22:59 ..
lrwxrwxrwx.  1 root root 0 Dec 27 22:59 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight
lrwxrwxrwx.  1 root root 0 Dec 27 23:00 nvidia_0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/nvidia_0

Thanks!

@dklawren
Copy link
Copy Markdown

dklawren commented Jan 2, 2026

This PR will need to be rebased and updated to work with the latest main branch. After that I can retest and make sure it still works for my laptop. I would really like to see this fix landed :)

@Ly-sec
Copy link
Copy Markdown
Collaborator

Ly-sec commented Jan 31, 2026

Hey @CruScanlan , are you planning to fix the conflicts or is there no more interest?

@CruScanlan
Copy link
Copy Markdown
Contributor Author

CruScanlan commented Feb 2, 2026

Hey @Ly-sec, I am unsure where to prceed with this PR.

I appears the problem is more fundamental than with Noctalia Shell even though this does fix it.

The problem is multiple backlight devices being registered and the first one (often wrong) being picked however this can also be fixed by setting the kernal flag on the device acpi_backlight=native.
#951 (comment)

I can resolve the conflicts in this PR but I wont have access to my hybrid gpu laptop for the next 2 months and likely wont have time to until about 3 months time either.

I am happy for someone to take over this PR if you wish to have a solution inside Noctalia Shell itself.

@dklawren
Copy link
Copy Markdown

dklawren commented Feb 2, 2026

I agree that acpi_backlight=native is another way to resolve the issue outside of Noctalia, the changes on this pull request will also work with most people insiide of Noctalia. If you can submit a revision with the conflicts resolve, I can re-test this on my setup for you and then we can just merge if everything works properly. Up to the maintainer I imagine.

@CapSel
Copy link
Copy Markdown

CapSel commented Feb 3, 2026

for me acpi_backlight=native did not help

@Derek-Qian
Copy link
Copy Markdown

I have the same problem. My laptop has an AMD GPU and NVIDIA chipset, and Noctalia defaults to recognizing NVIDIA, causing the brightness adjustment to be ineffective.

@Ly-sec
Copy link
Copy Markdown
Collaborator

Ly-sec commented Feb 15, 2026

Hey @Ly-sec, I am unsure where to prceed with this PR.

I appears the problem is more fundamental than with Noctalia Shell even though this does fix it.

The problem is multiple backlight devices being registered and the first one (often wrong) being picked however this can also be fixed by setting the kernal flag on the device acpi_backlight=native. #951 (comment)

I can resolve the conflicts in this PR but I wont have access to my hybrid gpu laptop for the next 2 months and likely wont have time to until about 3 months time either.

I am happy for someone to take over this PR if you wish to have a solution inside Noctalia Shell itself.

Hey, sorry for the late reply. If the issue really is rooted that deep I don't think this is in scope of noctalia sadly enough. So I'll close that PR - if anyone ever comes up with a clever solution I'm all for it though.

@Ly-sec Ly-sec closed this Feb 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Brightness Control Doesnt Work On Hybrid Intel/Nvidia Laptop

6 participants