aboutsummaryrefslogtreecommitdiffstats
path: root/DESIGN
diff options
context:
space:
mode:
Diffstat (limited to 'DESIGN')
-rw-r--r--DESIGN95
1 files changed, 0 insertions, 95 deletions
diff --git a/DESIGN b/DESIGN
deleted file mode 100644
index 7b70879..0000000
--- a/DESIGN
+++ /dev/null
@@ -1,95 +0,0 @@
-This is a document describing how redshift works. It might be useful
-if the normal docs don't answer a question, or when you want to hack
-on the code.
-
-
-Programs
-========
-
-redshift
---------
-
-redshift is a program written in C that tries to figure out the user's
-location during startup, and then goes into a loop setting the display
-gamma according to the time of day every couple seconds or minutes
-(details?).
-
-On systems that support signals, it reacts to the SIGUSR1 signal by
-switching to day/night immediately, and when receiving SIGINT or
-SIGTERM, it restores the screen gamma (to 6500K).
-
-Redshift knows short and long transitions, short transitions being
-used at start and when reacting to signals. Short transitions take
-about 10 seconds; long transitions about 50 minutes.
-
-Once running, redshift currently doesn't check location providers
-again.
-
-
-redshift-gtk
-------------
-
-redshift-gtk is a small program written in Python that shows a status
-icon (what is an appindicator versus a GTK status icon?) (does it
-change the icon according to internal program state of redshift?
-doesn't seem so) and run an instance of the "redshift" program, and
-will send it SIGUSR1 each time the user clicks the icon.
-
-
-Alternative Features
-====================
-
-Redshift interacts with the rest of the system in two ways: reading
-the location, and setting the gamma. Both can be done in different
-ways, and so for both areas there are configure options to
-enable/disable compilation of the various methods. ./configure --help
-shows more about what parts of the program that can be conditionally
-compiled.
-
-NOTE: some features have to be disabled explicitely, like
---disable-gnome-clock to prevent the gnome-clock code from being built
-in.
-
-The two groups of features shall be called: "location providers" and
-"adjustment methods".
-
-These are probably not the best names for these things but at least
-I've been mostly consistent with the naming throughout the source code
-(I hope).
-
-First adjustment methods: There is "randr" which is the preferred
-because it has support for multiple outputs per X screen which is lacking
-in "vidmode". Both are APIs in the X server that allow for manipulation
-of gamma ramps, which is what Redshift uses to change the screen color
-temperature. There's also "wingdi" which is for the Windows version,
-and "drm" which allows manipulation of gamma ramps in a TTY in Linux.
-
-Then there are location providers: "manual", "gnome-clock" and
-"geoclue". Some time ago there was only one way to specify the
-location which had to be done manually with the argument "-l LAT:LON".
-Then later, automatic "location providers" were added and the syntax
-had to be changed to "-l PROVIDER:OPTIONS" where OPTIONS are arguments
-specific to the provider. But to make people less confused about the
-change I decided to still support the "-l LAT:LON" syntax, so if the
-PROVIDER is a number, the whole thing is parsed as LAT:LON. You could
-run redshift with "-l manual:lat=55:lon=12" and get the same effect as
-"-l 55:12".
-
-So there are currently two automatic location providers "gnome-clock"
-and "geoclue". From the beginning I was looking for a way to get the
-location automatically (from e.g. GPS) and Geoclue seemed like a good
-idea, but upon closer investigation it turned out to be horribly
-unstable. At this time GNOME had a clock applet which was present by
-default (at least in Ubuntu) that allowed the user to set a home town.
-This setting was registered in the gconf key
-/apps/panel/applets/clock_screen*/prefs/cities.
-The idea was to use this information until Geoclue had become more
-stable. To me, it always was a hack. Now that the Clock applet has
-gone (at least in Ubuntu) the "gnome-clock" makes little sense and
-causes a lot of trouble, so I really want to get rid of it as soon as
-possible. The problem is that Geoclue is still problematic for some
-people.
-
-Lastly, there's the support for configuration files for which there's
-no real documentation, but all the options that can be set on the
-command line can also be set in the config file.