Set Screen Brightness in i3

Here's how to set screen brightness in Linux terminal.

Install CLI

You need a little tool:

sudo apt install brightnessctl

Current and Max Brightness

You can see what the current brightness level is and what the max possible level is by typing:

brightnessctl

And getting feedback like:

Device 'intel_backlight' of class 'backlight':
	Current brightness: 12200 (25%)
	Max brightness: 48000

Adjust Brightness

To set the brightness, choose some value between 0 and "Max brightness" and run the s or set command. For example:

~ ❯ sudo brightnessctl s 100
Updated device 'intel_backlight':
Device 'intel_backlight' of class 'backlight':
	Current brightness: 100 (0%)
	Max brightness: 48000

~ ➜ sudo brightnessctl s 48000
Updated device 'intel_backlight':
Device 'intel_backlight' of class 'backlight':
	Current brightness: 48000 (100%)
	Max brightness: 48000

~ ➜ sudo brightnessctl s 12000
Updated device 'intel_backlight':
Device 'intel_backlight' of class 'backlight':
	Current brightness: 12000 (25%)
	Max brightness: 48000

Adjust External Monitor Brightness

Well, what about external monitors? Turns out, brightnessctl doesn't handle those. You need a separate utility.

Install:

sudo apt install ddcutil

Find the monitors available:

sudo ddcutil detect

(If ever you get a "Display not found" error, re-run the detect command.)

Find out what you can adjust on your monitor:

sudo ddcutil capabilities

That will give you a looong list, including:

...
VCP Features:
   Feature: 02 (New control value)
   Feature: 04 (Restore factory defaults)
   Feature: 05 (Restore factory brightness/contrast defaults)
   Feature: 08 (Restore color defaults)
   Feature: 0B (Color temperature increment)
   Feature: 0C (Color temperature request)
   Feature: 10 (Brightness)
   Feature: 12 (Contrast)
...

Note that feature 10 is brightness. Now to adjust brightness, feature 10, using either relative or absolute values (0 to 100):

sudo ddcutil setvcp 10 - 25
sudo ddcutil setvcp 10 + 25
sudo ddcutil setvcp 10 0
sudo ddcutil setvcp 10 50
sudo ddcutil setvcp 10 100

Now, go easy on those eyes. Or, allow vision of the screen under that beautiful sun.