43

I am controlling my PC with SSH and scripting. How can i change the brightness, color and sharpness from command line?

Try 1: failed

$ sudo redshift -t 5000:5000 -g .5
Cannot list GNOME panel applets.
Initialization of gnome-clock failed.
Trying next provider...
Latitude and longitude must be set.

Try 2: failed

$ cat brightness 
20
$ cat max_brightness 
20
$ echo 1 | sudo tee /sys/class/backlight/acpi_video0/brightness 
1
$ echo 20 | sudo tee /sys/class/backlight/acpi_video0/brightness 

Any alternative way to do?

Follow up: http://jonls.dk/redshift/

[command]     [1000K to 10000K]       [effects 0.1 to 10.0]
|       |     /      /                /
^       ^     ^      ^                ^
redshift  -t  1000:1000   -l 0:0  -g .1; Dark
redshift  -t  1000:1000   -l 0.0  -g  5; Bright
3
  • See askubuntu.com/questions/57236/… for changing the brightness
    – Lekensteyn
    Sep 20, 2011 at 11:15
  • @Lekensteyn: please see the posted comment. Did not worked i am uing 11.04 and tried echo 0 to 20 remains same.
    – user25165
    Sep 20, 2011 at 11:25
  • Note that applying gamma correction (-g argument to redshift) is not the same effect as adjusting the brightness (-b) Jul 4, 2019 at 2:28

8 Answers 8

61

If the driver of your graphics card supports it, then you can use xrandr.

The following command lists the current configuration:

xrandr --current --verbose

If you want to change the configuration of an output, then you need the name of the output. This name is part of the output of xrandr --current, for example LVDS1.

The brightness can be changed like this:

xrandr --output <outputname> --brightness 0.8

Gamma (red:green:blue):

xrandr --output <outputname> --gamma 0.5:1.0:1.0
7
  • 2
    this works, FYI: newer laptops use eDP
    – nwgat
    May 1, 2014 at 1:07
  • 1
    I found I didn't need to use the verbose option. Dec 11, 2014 at 16:07
  • 2
    It would be helpful to see an example of output for "xrandr --output <outputname> --brightness 0.8"
    – hydroxide
    Jan 16, 2017 at 6:30
  • 2
    doesn't change brightness for me. Feb 11, 2020 at 23:51
  • 2
    This has brightness and gamma, is there also such thing as white balance / color temperature ?
    – Frank N
    Sep 22, 2020 at 9:08
19

xrandr will not increase the screen brightness on the hardware level (the one that is changed by the laptop display brightness keys). As the xrandr manual says:

--brightness brightness

Multiply the gamma values on the crtc currently attached to the output to specified floating value. Useful for overly bright or overly dim outputs. However, this is a software only modification, if your hardware has support to actually change the brightness, you will probably prefer to use xbacklight.

Instead, use xbacklight to change the brightness:

xbacklight -get #get the current level
xbacklight -set *percent* #set brightness to a given percentage
xbacklight -inc *percent* #increase by a given percentage
xbacklight -dec *percent* #decrease by a given percentage

However, since this is same as using the laptop brightness keys, this cannot go beyond the limits of 0-100%. If you wish to brighten/darken your screen further than that limit, you can use xrandr to force software brightness levels:

xrandr --output LVDS1 --brightness 0.5

Note that xrandr accepts fractions (0.0-1.0) while xbacklight accepts percentages(0-100)

5
  • 3
    In my case, the xrandr --output eDP1 --brightness 0.2 approach works fine while xbacklight -set 20 fails.
    – landroni
    Apr 27, 2014 at 7:30
  • 1
    accepts fractions (0.0-1.0) is misleading. For my external TB3 DisplayPort to HDMI this worked fine: xrandr --output DP-1-1 --brightness 1.2 Dec 9, 2017 at 16:27
  • @WinEunuuchs2Unix Yes, setting it >1.0 crops the display gamut in exchange for overall brightness increase. In other words you lose details in bright areas.
    – Wil
    Mar 15, 2019 at 13:51
  • Is this related to the temperature of the monitor? I mean, with xrandr darker should it be colder than using some other tool? I'm afraid that my monitor is too warm.
    – Sigur
    Oct 1, 2019 at 14:15
  • @sigur temp colour is relative weighting of red / blue curves, --gamma can be used to tweak it a bit. I think you'd need to poke at the LUT to get finer tuning if the monitor has no settings you can use. Sep 3, 2020 at 13:37
6

For laptops, I just learned from man xrandr:

   --brightness brightness
          Multiply  the gamma values on the crtc currently attached to the
          output to specified floating value. Useful for overly bright  or
          overly  dim outputs.  However, this is a software only modifica‐
          tion, if your  hardware  has  support  to  actually  change  the
          brightness, you will probably prefer to use xbacklight.

So I tried

xbacklight -get
xbacklight -set 70

and it works!

1
  • This post is from 2013. I can't make it work with my current laptop either....
    – user334639
    Feb 14, 2020 at 0:51
5

If you're using redshift, you need to give it your latitude and longitude so it knows when time of day changes. Something like

redshift -t 5000:5000 -l 55.7:12.6 -g .5 

Though it may be a bit unconventional use of redshift :)

Also, it works fine without sudo.

1
  • +1 that really did a small trick. But really i am looking for same way more RAW brightness + color + gamma tuning.
    – user25165
    Sep 20, 2011 at 11:48
3

I use this script to set brightness on all of my displays at once:

#!/bin/bash
if [ -z $1 ]; then
    echo "Usage: brighntess BRIGHTNESS"
    echo "BRIGHTNESS is a float (0.0-1.0)"
else
    xrandr --listmonitors | grep "^ " | cut -f 6 -d' ' | \
    xargs --replace=MONITOR xrandr --output MONITOR --brightness $1
fi
2
  • xrandr isnt working Feb 12, 2020 at 4:53
  • See xrandr --output $(xrandr --listmonitors | sed -ne 's/ .* //gp') --brightness $1 Jan 27 at 14:20
1

Change VGA-1 with your device

xrandr --listmonitors
Monitors: 1

0: +*VGA-1 1366/410x768/230+0+0 VGA-1

xrandr --output VGA-1  --brightness 1   (for 100% brightness)
xrandr --output VGA-1  --brightness 1.5 (for 150% brightness)
xrandr --output VGA-1  --brightness 2   (for 200% or double brightness)
xrandr --output VGA-1  --brightness 4 (for 400% brightness)

Careful with 0 (you'll need to restart Xorg):

xrandr --output VGA-1  --brightness 0 (for Blank Screen)

xrandr --output VGA-1  --brightness 0.8 (for 80% brightness)

This works on normal lcd/led monitors as they do not support hardware brightness like laptops do.

1
  • Does nothing. Doesnt change brightness Feb 12, 2020 at 0:07
0

There's also DDC/CI, and linux client: ddccontrol (and, gddccontrol for GUI).

Tt's in official ubuntu repository:

sudo apt install ddccontrol ddccontrol-db gddccontrol
1
  • No monitor supporting DDC/CI available. Feb 12, 2020 at 0:09
0

for monitor brightness, in gnome try https://github.com/fastrizwaan/gnome-set-brightness

gsettings set org.gnome.desktop.a11y.magnifier mag-factor 1
gsettings set org.gnome.desktop.a11y.magnifier brightness-red -0.5
gsettings set org.gnome.desktop.a11y.magnifier brightness-green -0.5
gsettings set org.gnome.desktop.a11y.magnifier brightness-blue -0.5
gsettings set org.gnome.desktop.a11y.applications screen-magnifier-enabled true

Your Answer

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