30

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
  • See askubuntu.com/questions/57236/… for changing the brightness – Lekensteyn Sep 20 '11 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. – YumYumYum Sep 20 '11 at 11:25
  • Note that applying gamma correction (-g argument to redshift) is not the same effect as adjusting the brightness (-b) – Dzamo Norton Jul 4 at 2:28
42

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:

xrandr --output <outputname> --gamma 0.5:1.0:1.0
  • 1
    this works, FYI: newer laptops use eDP – nwgat May 1 '14 at 1:07
  • I found I didn't need to use the verbose option. – David Oliver Dec 11 '14 at 16:07
  • 2
    It would be helpful to see an example of output for "xrandr --output <outputname> --brightness 0.8" – hydroxide Jan 16 '17 at 6:30
18

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)

  • 3
    In my case, the xrandr --output eDP1 --brightness 0.2 approach works fine while xbacklight -set 20 fails. – landroni Apr 27 '14 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 – WinEunuuchs2Unix Dec 9 '17 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 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 at 14:15
8

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!

6

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 that really did a small trick. But really i am looking for same way more RAW brightness + color + gamma tuning. – YumYumYum Sep 20 '11 at 11:48
4

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
3

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

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

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.