dfdf9ebf287b5408f27119a898ccc5a1bab26e0b
[~helmut/onoff.git] / README.md
1 onoff
2 =====
3
4 Activate devices on demand and turn them off after usage automatically. This is
5 what onoff is for. From the perspective of onoff a device has four states. It
6 may be active, inactive of transitioning to one of those two states. Devices
7 are exported via a dbus interface (currently versioned 0 to declare API
8 instability). A client can activate a device for a particular duration or
9 activate it until a filedescriptor is closed. The latter allows inheriting
10 filedescriptors to other processes and getting a signal once they terminate.
11 Consider the following use cases:
12
13  * When printing a page, first switch on the printer and after printing, switch
14    off the printer. When printing two jobs, do not turn it of between the jobs.
15    This can be achieved with [sispmctl][] or [slugpower][] for example.
16  * Similarly when scanning, turn on the scanner.
17  * Using [redshift][] is a nice thing in the evening. Occasionally you may need
18    clear colours though. Videos tend to look bad with redshift activated. So
19    consider automatically inhibiting redshift during video playback.
20  * Monitor the local [mpd][]. Whenever it plays music switch on the sound
21    device and turn it of when music stops. Also turn on sound when watching a
22    video of course.
23  * The inhibitor concept can also be applied to [mpd][] itself. When your phone
24    rings, stop mpd.
25  * When you suspend the whole machine, clients should disconnect from remote
26    services. This is another inhibiting strategy. It is already being solved by
27    [systemd-inhibit][] though.
28
29 [sispmctl]: http://sispmctl.sf.net
30 [slugpower]: http://chezphil.org/slugpower/
31 [redshift]: http://jonls.dk/redshift/
32 [mpd]: http://www.musicpd.org
33 [systemd-inhibit]: http://www.freedesktop.org/software/systemd/man/systemd-inhibit.html