5

I can control the brightness of my DELL S2216H connected with HDMI via the command:

ddccontrol -p -r 0x10 -w 53

where in this example the number 53 represents the brightness level (range 0 to 100). But I don't know how to link the command to my brightness keys on my keyboard or add laptop like slider next to volume control in Gnome-panel

while searching on the topic, i read this question Control external monitor brightness via software but the accepted answer to that question doesn't solve my issue

my output of ddccontrol -p is is posted here at pastebin

UPDATE tried the first solution.

python3 /home/sumeet/set_brightness.py up

No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
Traceback (most recent call last):
  File "/home/sumeet/set_brightness.py", line 22, in <module>
    currval = int(next(obj for obj in section if obj.startswith("value")).split("=")[-1].strip(","))
StopIteration

UPDATE 2

output of This Script from what I understand it's not even detecting my monitor. but first (original) command still works

python3 /home/sumeet/brightness.py
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin ([email protected])
Copyright 2004-2006 Nicolas Boichat ([email protected])
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Probing for available monitors.......
Detected monitors :

UPDATE 3 even the first command isn't working now, how can i get that working?

Brightness Slider in laptops

9
  • I don't have ddcontrol, but if you can give me the command to set the brightness to a specific value, I can provide you the commands to run from a shortcut. Apr 4, 2017 at 8:00
  • ddccontrol -p -r 0x10 -w 53 this command can be used to set brightness at 53 percent, last digit in the command indicates value ranging from 0 to 100. i'll need two commands one for adding +5 value in the existing brightness value and 2nd for deducing i.e, -5 value in the existing brightness value Apr 4, 2017 at 8:29
  • pastebin.com/GfuvkH9k this might also help you Apr 4, 2017 at 8:29
  • @Jacob Vlijm that'd be great Apr 4, 2017 at 9:01
  • Don't worry, we'll get it done one way or another :) Apr 4, 2017 at 11:52

1 Answer 1

2

Bind a keyboard shortcut

Gnome allows you to bind any key to run a command of your choice. If xbacklight worked, I'd suggest you use that. Since you said it does not, you can use the brightness script I'll include below.

  1. Go to Settings → Keyboard → Shortcuts and scroll to the bottom of the list.
  2. You'll find a + button. Click it to open the Add Custom Shortcut dialog: Add Custom Shortcut
    1. For the Name put "Brightness Up", for the Command, type brightness +10
    2. Click the "Set Shortcut" button and hit the key you want to turn the screen brighter.
  3. Now do the same for "Brightness Down", using brightness -10. Add shortcut

b9's brightness script

Many external monitors cannot control the backlight lamp with xbacklight. But you can still control the brightness using software. Here's a script I wrote which does that.

#!/bin/bash
# brightness: Change all monitors brightness in software.
# by hackerb9, 2019

# Examples:  brightness 75;  brightness -5; brightness +10
# Usage:
#       brightess [n] [+n] [-n]
#       n       An integer from 0 to 100 specifies a brightness level.
#       +n      Increase brightness by n.
#       -n      Decrease brightness by n.
#               No argument shows current brightness level.

b=$(xrandr --current --verbose | grep Brightness)
b=${b#*: }                      # Remove "Brightness: "
b=${b#0.}                       # 0.30 --> 30
[[ $b == "1.0" ]] && b="100"
case $1 in
    +*|-*)
        b=$((b $1))             # b=b+10,  b=b-10
        ;;
    [0-9]*)
        b=$1                    # b=75
        ;;
    *)
        echo $b; exit
        ;;
esac

[[ $b -lt 0 ]] && b=0
[[ $b -gt 100 ]] && b=100

if [[ $b -eq 100 ]]; then
    b=1.0
else
    b=0.$b
fi

outputs=$(xrandr --current | awk '$2 == "connected" {print $1}')
for o in $outputs; do
    xrandr --output $o --brightness $b
done    

To install the script, paste it into a file called brightness, set it executable, and put it in your path. Or, you can cut-and-paste these commands:

  1. wget https://github.com/hackerb9/brightness/raw/master/brightness
  2. chmod 755 brightness
  3. sudo mv brightness /usr/local/bin/

xbacklight

If xbacklight did work for you, you could use it as a drop-in replacement for brightness in the above instructions. (xbacklight +10 for Brightness Up, xbacklight -10 for Down.)

1
  • 1
    Thank you soooooooo much for this answer! This is exactly what I needed. (Unfortunately I have already bricked my monitor with ddccontrol at the point of writing this comment, but still! good to know!)
    – Liren Yeo
    Nov 8, 2021 at 15:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .