Having recently installed Pop!_OS (an Ubuntu derivative) in a dual boot setup for my laptop, I've found that it has been a nearly painless experience, especially since the proprietary NVIDIA drivers come pre-installed.
However, one of the issues that I've found in my installation is the lack of brightness control via keyboard. Interestingly enough, hitting
Fn+F4 (which normally would decrease/increase the screen brightness on Windows for me) does nothing on Linux, while the volume controls (
Fn+F10 for me) did what they needed to without a hiccup.
So what was happening? After writing this post, I still have no idea.
One of the "fixes" that I found was adding a configuration file for the X11 server to work with my integrated Intel graphics. I will outline below, perhaps it'll help someone else with better hardware support.
Create the config file for the X server to use.
sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
Open it in a text editor.
sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf
And add the following in the file:
Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
Log out and back in (and possibly restart your system), and the
xbacklight commands should work as intended
Try adding keyboard shortcuts for
xbacklight -dec <percent> and
xbacklight -inc <percent>. I recreated my brightness controls to run
xbacklight -10 and
xbacklight +10 to decrease/increase the brightness by 10% each time.
As it turns out, I lost the ability to use my NVIDIA graphics card after this fix.
After I did the above fix, I went to play some graphic-intensive games, that I knew worked prior when using the NVIDIA card, and found them running at a snail's pace, almost as if they were using integrated graphics.
system76-power (Pop!_OS' graphics switcher) shows that I'm using my dedicated graphics card. What's going on?
nvidia-settings through the terminal shows an error (aside from the seemingly ubiquitous GTK errors) along with an empty GUI:
ERROR: Unable to load info from any available system
Well that can't be good right?
Now, I didn't want to install other graphic switchers (i.e.
bumblebee, NVIDIA Prime) because attempting to replace the
system76-power package results in the entire desktop environment trying to uninstall itself, and I'm not quite ready to live in a terminal-only Linux world. What else could I do?
Turns out, as you can probably already guess, that including that
20-intel.conf file for the X server stopped my NVIDIA card from functioning in a way that
system76-power didn't notice.
To be sure, I reinstalled the distribution (Thankfully, I had set my home directory to live in a separate partition) and repeated my steps. I then deleted the
20-intel.conf file from where I created it, and rebooted.
The results? My graphics card was back in action, and the games I tested worked flawlessly. But I no longer had the ability to tweak the brightness outside of using the slider in the system status menu.
There were plenty of other possible fixes, like overwriting the kernel parameter for brightness, that isn't something I'm too keen to do; I still need a couple layers of abstraction to feel comfortable fiddling with my system. I will, however, be trying out some of the answers in this StackOverflow answer. Maybe the GRUB editing will end up working for me.
Let me know what you think, and perhaps leave some possible fixes in the comments!