I use to work at night and it is eye-hurting to watch at lightbulb-bright screens (I've got two - laptop's built-in panel and an external 18-inch CRT) in a dark environment. So I adjust my screens to be darker.
Can I do this a software way instead of pressing monitors' buttons that many times every time?
Redshift
I have been using this. It's very nice.
To use it just type in the terminal
redshift
.gtk-redshift
is just the GUI, not required.f.lux is also an option (proprietary, closed source).
To adjust gamma (which is a good substitute for adjusting contrast), you can write:
on the command line (Terminal). You should see a very noticeable difference. Experiment with different values.
1.0 is the normal (uncorrected) gamma value. Setting a lower gamma (for example 0.7) will increase the contrast of bright luminances, which makes midtones darker and decreases white washing. Setting a higher gamma (for example 1.5) will make midtones brighter and increase the contrast of dark luminances, but also increases white washing.
For my inexpensive laptop, I use gamma 0.8 to compensate for the too bright factory setting for the LCD and I find that the gamma correction helps with color reproduction too, which is nice because so far I haven't managed to get any color calibration working on this LCD.
TL;DR
Use:
xbacklight
ddccontrol
redshift
xgamma
Backlight vs pixel values
First and most importantly, if at all possible adjust the display backlight, rather than using software correction of pixel values. If you dim the backlight you still get full or near-full dynamic range, giving you a clearer, "deeper" image that tends to be more readable.
Software adjustment can't make the blacks darker, it just makes white greyer and reduces contrast. So instead of using pixel values from 0-255 it might use from 0-180 for example. Everything looks flatter.
A tool like Redshift can be useful for changing colour balance, but as much as possible you should try to change brightness with backlight adjustment.
DDC/CI
Last I checked, most displays unfortunately do(did?) not implement backlight control from software. There's a standard for it, DDC/CI but adoption has been limited. Try the ddccontrol tool with your monitor and see if you have any luck.
I've only seen it in very high end displays intended for calibrated photo and video work ... and even many of those use a USB connection and custom USB HID based driver instead of the DDC/CI standard. I'm pretty outdated though, and the linked article claims that basic options like brightness and contrast are widely supported now.
Fake brightness controls on cheap displays
Some cheap displays don't support backlight control at all. The brightness controls on the display just adjust the pixel values on the LCD, just like software control does. Do not use these controls if you have such a monitor; it's usually better to do the correction in software, certainly no worse.
Doesn't go dim enough?
All too many displays do have backlight control, but minimum brightness is still eye-searing. They can sometimes be modified, but otherwise your best bet is setting them to minimum backlight brightness and then living with changing pixel values to get them even dimmer.
It really annoys me that displays have such a limited backlight intensity range, often artifically and arbitrarily limited, starting at eye-searing to "the power of a million suns". I look for dim backlights when I'm speccing out displays to buy.
Laptops
On a laptop, the backlight is usually controlled by software. Yay!
(If your laptop is still old enough to use APM control instead of ACPI or custom drivers, get off my lawn).
The details are somewhat driver and software specific, but your laptop should offer convenient Fn keys that make it easy, and the OS should have a simple display brightness slider. The
xbacklight
utility offers a convenient command line control for this, though on my system it doesn't seem to like to go below 1% brightness and goes straight to black.I twiddle the driver controls because my T460 is very bright - wonderful during the day, but horrible at night. The minimum brightness step offered by the fn key adjustments is still way too bright, but the driver provides much finer grained control. xbacklight only lets me get down to brighness 8/255 and I'd like So I tell it to run at 4/255 brightness:
This works on a Lenovo T460 with Intel graphics, but other drivers and hardware may have different entries under
/sys/class/backlight
with different range limits etc.The arch wiki has some useful info.
Gamma adjustment
When you lower brightness you might want to increase contrast in software a bit, especially if working on text. It'll cost you image quality, but gain you readability at low brightness. The
xgamma
utility will let you do that, e.g.Someone want to patch Redshift with brightness controls?
So, you know what'd be cool?
If Redshift could fade display brightness based on an ambient light sensor and/or time of day, via the same xrandr controls used by xbacklight.
XRandR
xrandr
is very powerful but in this way similar toxgamma
, also let you select the level for each three colors. For exampleWill set gamma to the default value (1 for each color channel). Select the appropriate output by choosing from one of the connected devices, listed with just
xrandr
(orxrandr | grep -vE "^ " | grep -v disconnect
).Note: if you use Redshift or flux (closed-source) they will override
xrandr
setup.From man page:
Also: How to change LCD brightness from command line (or via script)?
The software you're looking for is Redshift (install):
To those who have problem with brightness configuration after installing Ubuntu 10.10 and are using Acer Aspire 4741, here's a solution for you:
Change the line
GRUB_CMDLINE_LINUX=""
intoGRUB_CMDLINE_LINUX="acpi_osi=Linux"
Restart your linux
These days there's an additional solution that is very much like Redshift: it's available as a built-in feature in the GNOME desktop environment.
Just go to Settings → Displays and turn Night Light on. It lets you tweak the settings too:
You can always do Windows-M or Windows-N. The first inverts colors of all windows showing, the second does it to the current window in focus.
Really helps when reading PDFs with tired eyes
The title of your question suggests you are looking for a generic tool to adjust brightness/contrast and gamma of your desktop. The body of your question suggests you are looking for automatic adjustment matching the time of day. I was looking for an answer to the first variant and found only
xcalib
, a command-line utility. Thus I have written a gui front-end for xcalib, which can be found on https://github.com/Ablinne/kolorcontrol.It provides sliders for brightness/color and gamma for red/green and blue channels respectively. It will display the commands for an autostart script.
Eyesome Update
A new version called eyesome has been created. It allows per monitor setup for:
Up to 3 concurrent monitors are supported.
Original Post
If you have a laptop you can control the backlight brightness. When you suspend and resume or reboot the last setting is automatically restored in Ubuntu 16.04. With Ubuntu 14.04 and earlier you sometimes had to write your own scripts to restore the brightness else it would be full brightness and fry your eyeballs.
The basic problem with a default Ubuntu 16.04 installation is you need to adjust brightness lower starting at sunset and adjust it higher after sunrise. To automate the process I developed this bash script: Automatically adjust display brightness based on sunrise and sunset
Key Features
cron
.display-auto-brightness
automatically every boot withcron
.Future Development
xrandr
.