/gnome-display-brightness-ddcutil

Display brightness slider for gnome shell using ddcutil backend

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Display Brightness Slider for Gnome Shell

screenshot

Setup ddcutil

  1. install ddcutil

  2. Manually load kernel module i2c-dev

sudo modprobe i2c-dev
  1. Verify that your monitor supports brightness control
ddcutil capabilities | grep "Feature: 10"
  1. udev rule for giving group i2c RW permission on the /dev/i2c devices

ddcutil 2.0+

sudo cp /usr/share/ddcutil/data/60-ddcutil-i2c.rules /etc/udev/rules.d

Prior ddcutil 1.4.0

sudo cp /usr/share/ddcutil/data/45-ddcutil-i2c.rules /etc/udev/rules.d

Read more: https://www.ddcutil.com/i2c_permissions/

  1. Create i2c group and add yourself
sudo groupadd --system i2c

sudo usermod $USER -aG i2c
  1. load i2c-dev automatically
sudo touch /etc/modules-load.d/i2c.conf

sudo sh -c 'echo "i2c-dev" >> /etc/modules-load.d/i2c.conf'
  1. Reboot for changes to take effect
sudo reboot

This tool uses ddcutil as backend, so first make sure that your user can use use following shell commands without root or sudo.

ddcutil getvcp 10 to check the brightness of a monitor and

ddcutil setvcp 10 100 to set the brightness to 100

It automatically supports multiple displays detected by

ddcutil detect

Installation

Automatically from GNOME extensions

You can find this extension here

Manually from the source code

Clone this repo and in the repo's root directory run these shell commands

make build
make install

Issues

Screen hangs/locks on first startup

In my hardware for some reason when ddcutil detect is ran for the first time after a cold boot and then, when it checks for i2c busno=1, whole system locks for couple of seconds. As a workaround I changed this extension to read cached info from a file, when it exists.

ddcutil --brief detect > $XDG_CACHE_HOME/ddcutil_detect

Credits

This extension is developed and maintained by @daitj

Thanks to the following people for contributing via pull requests:

  • @oscfdezdz for adding new settings UI, keyboard shortcuts and ability to set icon location
  • @maniacx for porting the extension to GNOME 45

Thanks to the following extensions for the inspiration