I have Ubuntu 12.10

I need an application/software that can increase and decrease my brightness.

I know I can do it through my pc monitor but I don't want that. I want to control it through a software.

I personally cannot find an application about this issue.

I know that it is possible because the OS has the Fading effects before Screen Savers.

I want to control brightness through a software for desktop pc.

  • Brightness is in most cases hardware-controlled with the lamps in the screen. In a Desktop, i am unsure if that is possible with older screens. Could i have the details about your screen? – Denny Nov 27 '12 at 10:13
  • The fading effect is just a darker image send to your monitor. The actual backlight of your monitor does not change. But there is still software, that can send a command to your monitor to lower its backlight (ddccontrol). – remi Nov 27 '12 at 21:04

Apart from the controls on your monitor, you can do it via your driver applet in case you are using proprietary drivers from nvidia or ati or you can use xbacklight from the software center.

| improve this answer | |
  • and is there any widget for it so that I can do it from my desktop? – DjBmNukez Nov 27 '12 at 10:29
  • 1
    @DjBmNukez Yes there is, see my answer. – Archisman Panigrahi Dec 29 '13 at 5:54

Install Brightness Controller from its PPA

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update
sudo apt install brightness-controller

Screenshot 1

Picture: Brightness Controller

Now you can adjust the brightness using the slider.

| improve this answer | |
  • Thanks, worked for me on ubuntu 14.04. Had to start this app from terminal like: $ brightness-controller – Aquarius_Girl Nov 21 '16 at 4:18
  • 1
    @AquariusTheGirl You can start the app from dash in Unity – Archisman Panigrahi Nov 22 '16 at 3:03
  • That's a beautiful solution! – user568021 Feb 13 '18 at 22:17
  • Worth noting this tool uses xrandr to control color levels via software. A proper tool would use DDC protocol to interact directly with the display, allowing the same kind of control as the built-in menu in the display itself. – Denilson Sá Maia Mar 26 at 14:06
  • Works great, thanks a lot! – Gal Grünfeld Jun 2 at 2:13

Use DDC protocol:

sudo apt-get install ddccontrol
sudo modprobe i2c-dev

sudo ddccontrol -p

Note the device e.g "/dev/i2c-2"

Set the permissions (if needed):

sudo chmod a=+rw /dev/i2c-2

Under "Brightness and Contrast", the control address is "0x10" in my case.

ddccontrol dev:/dev/i2c-2 -r 0x10 -w 70

70 is the brightness value to set.

If you only want to query:

ddccontrol dev:/dev/i2c-2 -r 0x10

You can play with contrast and other parameters as well; note their addresses in the

ddccontrol -p


| improve this answer | |

the brightness can be adjusted via the DDC/IC protocol. The software is called ddccontrol and can be found here. For an example see my question.

I can control my monitor (brightness, contrast, standby, ...) with the software. But I can just send absolute brightness values to the monitor. I would like to in-/decrease the brightness with my dedicated keyboard keys. Any idea? I have already an open question here.

| improve this answer | |

Copy bash script below to a file called bright

Then mark it executable with chmod a+x bright

Bash Script


MON="DP-1-1"    # Discover monitor name with: xrandr | grep " connected"
STEP=5          # Step Up/Down brightnes by: 5 = ".05", 10 = ".10", etc.

CurrBright=$( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
CurrBright="${CurrBright##* }"  # Get brightness level with decimal place

Left=${CurrBright%%"."*}        # Extract left of decimal point
Right=${CurrBright#*"."}        # Extract right of decimal point

[[ "$Left" != 0 && "$STEP" -lt 10 ]] && STEP=10     # > 1.0, only .1 works
[[ "$Left" != 0 ]] && MathBright="$Left"00          # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0          # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))

[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "${MathBright:0:1}" == "-" ]] && MathBright=0    # Negative not allowed
[[ "$MathBright" -gt 999  ]] && MathBright=999      # Can't go over 9.99

if [[ "${#MathBright}" -eq 3 ]] ; then
    MathBright="$MathBright"000         # Pad with lots of zeros
    MathBright="$MathBright"000         # Pad with lots of zeros

xrandr --output "$MON" --brightness "$CurrBright"   # Set new brightness

# Display current brightness
printf "Monitor $MON "
echo $( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
  • Change MON="DP-1-1" to your monitor name, ie MON="eDP-1-1"
  • Change STEP=5 to your step value, eg STEP=2 is less noticeable

Call the script with:

  • bright Up or bright + to increase brightness by step value
  • bright Down or bright - to decrease brightness by step value
  • bright (with no parameters) to get the current brightness level

Hopefully the bash / shell commands can easily be googled for education but if any questions don't hesitate to ask :)

8 minutes after posting answer it occurred to me I could have used bc for floating point math and saved ~10 lines of code and the a lot of time from the 1.5 hours to write it shrugs.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.