I have a thinkpad (x301) with an external monitor connected via a DisplayPort to HDMI cable. I can control the brightness of the laptop monitor using the keys on the laptop, but I can't work out how to control the brightness of the external monitor.
$ ls /sys/class/backlight/*/brightness
/sys/class/backlight/acpi_video0/brightness
/sys/class/backlight/intel_backlight/brightness
$ cat /sys/class/backlight/acpi_video0/brightness
11
$ cat /sys/class/backlight/acpi_video0/max_brightness
15
$ cat /sys/class/backlight/intel_backlight/brightness
501804
$ cat /sys/class/backlight/intel_backlight/max_brightness
2414340
I can write values into the above and both intel_backlight and acpi_video0 changes the brightness of the laptop monitor.
Does the above mean that there is no way to change the brightness of the external monitor (other than the OSD)?
You can do this from the command line (and thus do it automatically each evening via cron) using xrandr as described at How to change LCD brightness from command line (or via script)?
E.g.
This doesn't change the backlight or affect power usage, it just adjusts the gamma value in software. I've heard that
Brightness Controller
usesxrandr
under its GUI skin.Use
xrandr --listactivemonitors
to get the correct monitor if not you'll probably getxrandr: Need crtc to set gamma on.
.ddccontrol
was in Lucid 10.04 and seems to have worked well, but was orphaned by Debian due to lack of interest and hasn't been picked up by anyone since.Update
ddccontrol
is back in xenial. SeeInstall Brightness Controller from the following PPA.
Now you can adjust the brightness using the slider.
ADditional info: I'm using CRT monitor. – Neilvert Noval Mar 11 '11 at 17:06It seems that it is not possible to control external monitors using the
/sys/class/backlight
. But there exists an application called ddccontrol which can control the brightness of your external monitor.Instructions on how to use the command line interface are available here.
Basically you need to probe for available monitors and controls using
ddccontrol -p
and look for the address of the control you want in the output and then set the value usingddccontrol -p -r 0x10 -w 70
.Here is the latest information for the brightness controller. There are 2 versions available. Version 1 aka simple version allows support for up to 4 monitors and maintains the classic sliders. Version 2 allows for more specialized control as well as multiple monitors.
You can check them both out here Brightness Controller
For faster install use the PPA
Then for Version 1
Or for Version 2
Enjoy!
Using xrandr and few lines of bash script, it is possible to control multiple/all monitors at once for convenience
( I use it for 3 monitors + notebook screen at once )
For permanent use:
add permission to execute:
$ chmod +x brightness.sh
move to bin directory (/usr/local/bin in my case)
$ sudo mv brightness.sh /usr/local/bin/brightness
execute to set brightness level 50% (night mode)
$ brightness 0.5
to reset to 100% brightness
$ brightness
PS if you don't want error checking and want just few lines, shorter version will do:
I suggest to use a simple bash script to adjust the brighness of you monitor up or down a single step
Copy bash script below to a file (the name is not important, as long as the name is not similar to other terminal commends). I call it
brightness_ext
Then mark it executable with
chmod a+x brightness_ext
Bash script
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
Usage
brightness_ext +
to increase brightness;brightness_ext -
to decrease, fairly simpleAlso i suggest you to create shortcuts for those commands, as they are much more convenient to use. Personally I made brightness shortcuts for my both monitors.