Automatically reduce brightness

From ThinkWiki
Revision as of 06:01, 11 April 2007 by Defiant (Talk | contribs) (Undo corruption)
Jump to: navigation, search

The idea

When watching someone working with an iBook I noticed that the brightness automatically faded to the lowest level after a few seconds of inactivity. I think that this is a simple way to save power. I wrote a c-daemon which uses the XScreenSaver extension to check whether the user is active. If he is not, it lowers the brightness to a specific level. When he is active again, the brightness is reset to the previous level.

Prerequisites

A recent kernel with IBM ACPI extensions. (You should have a file called /proc/acpi/ibm/brightness)

Installation

  1. Download the brightness control daemon
  2. Unpack it and chdir into the brightd directory
  3. Call $ make
  4. Move the brightd executable into a directory like /usr/local/bin
  5. Put $ brightd -d into your ~/.Xsession (or another distro-specific startup script)
  6. Change the permissions of /proc/acpi/ibm/brightness so that your user can write to that file

See the README for more detailled instructions and command line parameters.

Example installation for Gentoo linux and XFCE4

$ wget -o /dev/null -O brightd.tar.bz2 "http://pberndt.com/Programme/Linux/brightd/_download/brightd.tar.bz2?ct=raw&sub=att"
$ tar xjf brightd.tar.bz2
$ cd brightd/
$ make
gcc -lX11 -lXss -o brightd brightd.c
$ cp brightd /usr/local/bin/
$ cd /etc/xdg/xfce4
$ vi xinitrc
73Gi
/usr/local/bin/brightd -s 5 -w 2 -d
<escape>:x 
$ cd /etc/init.d/
$ cat > permissions
start() {
        ebegin "Setting permissions on /proc"

        chmod g+w /proc/acpi/ibm/brightness
        chgrp wheel /proc/acpi/ibm/brightness

        eend $?
}
$ chmod a+x permissions
$ rc-update add permissions boot
$ ./permissions start

Done. Restart X to see it working.