No. 7

beige 0.3

A screensaver that very slowly turns your screen beige. Progress persists between sessions.

A beige Macintosh Classic on a wooden desk, with a white keyboard and a gray mouse in front of it. Its screen says Welcome to Macintosh.
A Macintosh Classic. The color was sampled from its case. Photo by dekuNukem.

Most screensavers start over each time you come back. beige doesn’t. It keeps one number in ~/.beige, adds to it while you’re away, and picks up where it left off. At the default rate a screen takes about four years of idle time to finish (see Fig. 1).

Screenshot of a desktop with a code editor on the left and a terminal on the right. day 0
The same desktop, very slightly washed out. day 141
The same desktop, half faded into beige. day 730
A plain beige screen. day 1,461
Fig. 1 - One screen after 0, 141, 730 and 1,461 days of idle time.

Version 0.3 is the first public release. The author has seen it finish exactly once, on a test machine with the rate turned way up.

This is all of main:

#define BEIGE 0xC9CDB5    /* off a Macintosh Classic */
#define YEARS 4           /* of idle time per screen */
#define STEP  (1.0 / (YEARS * 365.25 * 86400))

int
main(void)
{
    double beige = load(".beige");

    setup();
    for (;;) {
        if (idle()) {
            beige = fmin(beige + STEP, 1.0);
            tint(BEIGE, beige);
            save(".beige", beige);
        } else {
            untint();
        }
        sleep(1);
    }
}

I like it because it has one job and no hurry. The source is one file and the README is shorter than this paragraph. Build it,

$ make && ./beige

leave it alone, read beige.c while you wait, and tell us how beige you got.

Five old keyboards and five mice laid out on a wooden board on a lawn.
Fig. 2 - Beige keyboards and mice from IBM, Olivetti, Apple and Sun. Photo by dekuNukem.
Source
beige-0.3.tar.gz
Written in
C, one file
License
WTFPL
Filed under
screensavers, zen

Comments