Is there a quick/automatic way to change monitor brightness at night on Windows 7 or Linux?

I think I just found the answer to my own question. Better solutions are welcome of course.

With the application Display Tuner I can set the brightness, contrast, color levels and speaker volume for my external monitor. Not the video card, my actual monitor.
It allows me to set hotkeys for separate profiles, lives in the tray (notification area) and is free for non-commercial use.
The main draw is that it only supports monitors that can be controlled through DDC.

Display Tuner screenshot


I just did up a quick console app that will work with Vista+

http://rapidshare.com/files/435772490/Brightener.7z

Source here - you'll be able to build it from Visual Studio Express

Usage:

brightener 100 //highest
brightener 0 //lowest

You could set it up as a scheduled task if you want to automate it.

I think Linux has a built in command to do this. edit: after googling I found this. Substitute 100 for the brightness you want.

sudo echo –n 100 > /proc/acpi/video/VGA/LCD/brightness

edit: to set up a scheduled task in Windows 7...

  1. Go to Control Panel
  2. Go to Administrative Tools
  3. Open Task Scheduler
  4. Go to Action > Basic Task
  5. Follow wizard
  6. When asked for schedule, enter night time you want to dim light
  7. When asked for the path, enter the path to the unzipped exe above followed by your preferred dim level
  8. Repeat for daytime, changing scheduled time and brightness level

Sometimes monitor/laptop's adjust buttons ain't enough.

For Linux:

xcalib -invert -alter # will invert the color under Xorg, xcalib.sf.net says it also supports Windows, I haven't tried.

xrandr's --brightness and --gamma options will also help.

Also

The official ATI driver's Control Panel under Windows enables me to adjust Gamma/Brightness/Contrast, even my laptop doesn't support these via hardware buttons. I believe Nvidia's driver also has these options.