Difference between revisions of "Automatically reduce brightness"
(Configuration updated to reflect V1.3.) |
m (→Configuration) |
||
Line 99: | Line 99: | ||
dim_brightness = 0 | dim_brightness = 0 | ||
− | {{NOTE|If the script is already running, it will notice that the settings have been changed and quit (starting | + | {{NOTE|If the script is already running, it will notice that the settings have been changed and quit (starting with version 1.3). You have to start the script again to apply the changes.}} |
== Demo == | == Demo == | ||
A video showing the script in action has been uploaded to [http://www.youtube.com/watch?v=n7RLHP_c7gE YouTube]. | A video showing the script in action has been uploaded to [http://www.youtube.com/watch?v=n7RLHP_c7gE YouTube]. |
Revision as of 14:02, 15 March 2008
Contents
The idea
When watching someone working with an iBook you may notice that the brightness automatically fades to the lowest level after a few seconds of inactivity. This is a simple yet effective way to save power.
Linux
I (Pberndt) 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 the ibm-acpi driver (You should have a directory called /sys/class/backlight/ibm/ or /sys/class/backlight/thinkpad_screen/).
Installation
- Download the brightness control daemon
- Unpack it and chdir into the brightd directory
- Call
$ make
- Move the brightd executable into a directory like /usr/local/bin
- Put
$ brightd -d
into your ~/.Xsession (or another distro-specific startup script) - Change the permissions of /sys/class/backlight/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
The following is an example which shows how to install brightd manually. The prefered way to install brightd on gentoo is to use the ebuild from bugzilla.
$ wget -o /dev/null -O brightd.tar.bz2 "http://www.pberndt.com/raw/Programme/Linux/brightd/_download/brightd-0.3_pre2.tar.bz2" $ tar xjf brightd.tar.bz2 $ cd brightd-*/ $ make gcc -lX11 -lXss -o brightd brightd.c $ make install install -Ds brightd //usr/bin/brightd install -D brightd.1 //usr/share/man/man1/brightd.1 $ 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 /sys" chmod g+w /sys/class/backlight/*/brightness chgrp wheel /sys/class/backlight/*/brightness eend $? } $ chmod a+x permissions $ rc-update add permissions boot $ ./permissions start
Done. Restart X to see it working. Have a look at the "-x" parameter if you intend to start the daemon from an init-script.
Example installation for Debian Sid
brightd isn't yet in the official Debian archives (an ITP was filled), but you can get precompiled binaries for unstable from Zhenech's page.
$ wget http://debian.die-welt.net/pool/main/brightd/brightd_0.1-1_i386.deb
# dpkg -i brightd_0.1-1_i386.deb
Done. Relogin into your X session and brightd will be started. You can change this and other settings by editing /etc/default/brightd.
Possible problems
brightd does not fade, screensaver deactivated
On my Debian Sid box, brightd can run for hours and just do nothing. This happens because it thinks the screensaver is deactivated and screen shouldn't be faded (useful while watching videos). But in fact the screensaver isn't deactivated. To solve this problem, just execute the following command before starting bright:
$ xset s default
brightd says it is fading, but does not
On my Z61m /sys/class/backlight/ibm/brightness is 0 after the laptop boots up. As long it is 0, brightd does nothing, because it thinks, brightness is already as low as possible, so I need to initialize the brightness-level before using brightd:
# echo 7>/sys/class/backlight/ibm/brightness
Windows
A fairly simple yet effective implementation of the same idea in Python is available here. It was written by Yak.
Prerequisites
Since it is written in Python, you must have a Python interpreter installed on your system. Version 2.5 or newer is required.
Installation
- Download the ZIP file with the script and extract it to a directory of your preference.
- Edit the dimmer.pyw file (using a text editor) to match your preferences. See below for possible settings.
- Start the dimmer.pyw script (double click on it) to test it. If you've set it to work only when you're on battery, be sure to unplug the AC adapter from your ThinkPad.
- If it works, create a shortcut in the Autostart folder so the script is automatically run on every boot.
Configuration
You configure the script by editing it. The settings section is right at the top of the script. Here are the default values (version 1.3).
# Number of idle seconds before the screen will dim # (values > 30 should be used to ensure that the screen # won't dim while watching a movie) idle_time = 45 # True if screen should only dim when on battery, False if always on_batt_only = False # Brighness level after dimming (0-7) dim_brightness = 0
Demo
A video showing the script in action has been uploaded to YouTube.