External monitor brightness control

Hello!
I am very new to Fedora and insofar, it feels like the smoothest experience ever!
I just have an issue with my external monitor brightness control. I do have the physical button but the screen is fairly away and I have to go to 2 submenus to adjust brightness so I really don´t want to be doing this every day. I used to have a GUI interface on my mac OS before called monitor control which did the job nicely but apparently several gui interface I have tried (brightness controller and a couple of other) do not manage to modify the brightness. Apparently it is due to Wayland, which also render the xrandr option irrelevant.
My question is the following: is there any gui or cli way of easily adjusting the brightness of my external monitor?
Thank you for your time!

ddcutil is working for me (I’m running Sway).

Thank you for your answer. When running ddcutil detect I get teh following error:
Device /dev/i2c-0 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-1 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-2 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-3 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-4 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-5 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-6 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-7 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-8 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-9 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-10 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-11 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-12 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-13 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-14 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-15 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-16 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-17 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-18 is not readable and writable. Error = EACCES(13): Permission denied
Device /dev/i2c-19 is not readable and writable. Error = EACCES(13): Permission denied
Devices possibly used for DDC/CI communication cannot be opened: /dev/i2c-0 /dev/i2c-1 /dev/i2c-2 /dev/i2c-3 /dev/i2c-4 /dev/i2c-5 /dev/i2c-6 /dev/i2c-7 /dev/i2c-8 /dev/i2c-9 /dev/i2c-10 /dev/i2c-11 /dev/i2c-12 /dev/i2c-13 /dev/i2c-14 /dev/i2c-15 /dev/i2c-16 /dev/i2c-17 /dev/i2c-18 /dev/i2c-19
See I2C Device Permissions - ddcutil Documentation
No displays found.
Run “ddcutil environment” to check for system configuration problems.

Sorry, I should have mentioned that I ran it as “root”. Does prefixing sudo make it work?


Edit: This is what I see, FWIW:

$ sudo ddcutil --display 1 capabilities                                                                                                                                                           
Model: P2419H
MCCS version: 2.1
Commands:
   Op Code: 01 (VCP Request)
   Op Code: 02 (VCP Response)
   Op Code: 03 (VCP Set)
   Op Code: 07 (Timing Request)
   Op Code: 0C (Save Settings)
   Op Code: E3 (Capabilities Reply)
   Op Code: F3 (Capabilities Request)
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: 10 (Brightness)
   Feature: 12 (Contrast)
   Feature: 14 (Select color preset)
      Values:
         05: 6500 K
         08: 9300 K
         0b: User 1
         0c: User 2
   Feature: 16 (Video gain: Red)
   Feature: 18 (Video gain: Green)
   Feature: 1A (Video gain: Blue)
   Feature: 52 (Active control)
   Feature: 60 (Input Source)
      Values:
         01: VGA-1
         0f: DisplayPort-1
         11: HDMI-1
   Feature: AA (Screen Orientation)
      Values:
         01: 0 degrees
         02: 90 degrees
         04: 270 degrees
   Feature: AC (Horizontal frequency)
   Feature: AE (Vertical frequency)
   Feature: B2 (Flat panel sub-pixel layout)
   Feature: B6 (Display technology type)
   Feature: C6 (Application enable key)
   Feature: C8 (Display controller type)
   Feature: C9 (Display firmware level)
   Feature: CC (OSD Language)
      Values:
         02: English
         03: French
         04: German
         06: Japanese
         09: Russian
         0a: Spanish
         0d: Chinese (simplified / Kantai)
         0e: Portuguese (Brazil)
   Feature: D6 (Power mode)
      Values:
         01: DPM: On,  DPMS: Off
         04: DPM: Off, DPMS: Off
         05: Write only value to turn off display
   Feature: DC (Display Mode)
      Values:
         00: Standard/Default mode
         03: Movie
         05: Games
   Feature: DF (VCP Version)
   Feature: E0 (Manufacturer specific feature)
   Feature: E1 (Manufacturer specific feature)
   Feature: E2 (Manufacturer specific feature)
      Values: 00 02 04 0E 12 14 1D (interpretation unavailable)
   Feature: F0 (Manufacturer specific feature)
      Values: 00 0C (interpretation unavailable)
   Feature: F1 (Manufacturer specific feature)
   Feature: F2 (Manufacturer specific feature)
   Feature: FD (Manufacturer specific feature)

It does, I do get the external monitor returned and I can change with sudo ddcutil setvcp 10 , thanks!

To make it even easier, I set an alias by running the command

alias setbright='ddcutil setvcp 10'

so next time I only need to type setbright

1 Like