Readme: | LEGAL WARNING ============= THIS SOFTWARE AND INFORMATION ARE PROVIDED AS IS. ALL USE IS AT YOUR OWN RISK AND NO LIABILITY OR RESPONSIBILITY IS ASSUMED. NO WARRANTIES ARE MADE.
MOTIVATION ========== sunny is been written because I am too used to "night colors" on various operating systems. The "default" 6500K temperature is "too much" for me. During the day, I use a temperature of 5600K. When the sun sets, I shift around 2300K, depending on my humor.
LIMITATIONS =========== First of all, IMHO, gamma should be monitor property and screens that use that monitor should inherit that. Instead on mos, gamma is applied on each screen. That means sunny can only changes gamma on each screen.
Second, screen must be created with the attribute SA_GammaControl set to TRUE. Workbench is not created with that attribute, so a patch to OpenScreenTagList is needed to intercept the opening of "Workbench" and add SA_GammaControl, TRUE to its init attributes. The patch must be applied before LoadWB is called. Luckly, LoadWB is called in MOSSYS:S/startup-sequence after S:user-startup . So, all you have to do is add the following two lines:
run <>NIL: C:sunny C:WaitForPort SUNNY
at the beginnig of your S:user-startup. If you run sunny after, without having booted with the patch active, sunny will be not able to change the screen temperature.
Third, if Workbench is opened with SA_GammaControl set to TRUE, gamma in Settings/screen Resolution/Edit/Gamma are not applied to the monitor. They are saved, but you can't see what you are doing.
Forth, are the above values considered? They aren't at the moment. intuition.library has a bug that prevents reading them. You must wait for intuition "version>60" or "version=60 revision>40" (aka mos>3.18).
So, the initial gamma ramp is a linear "default" one. Probably it is what you use every day, anyway.
Finally, mouse pointers: the more the color is in the "red-zone", the more mounse pointers (any mouse pointer) will look like an alien entity. There is nothing you can do: mouse pointers are rendered in a lower level than screen gamma on our graphics cards. Look online to find many infos about. Only modern graphic card could fix that.
BUGS ==== Oh dear, this is still a beta version. It works fine, but it has many things not yet implemented. But it is "usable".
HOW TO ====== Copy sunny to C: Add the two lines as above to your S:user-startup and reboot. Via Exchange or in a shell, open sunny interface and set your latitude and longitude. These are in decimal form; the latitude is positive for the north emisphere and negative for the south emisfere; the longitude is positive at east of Greenwich and negative at west of Greenwich. These values are probably alrady derived from the system. If you live in a small nation, you can leave them as they are (f.e you don't live in USA, Russia, Cina, Indonesia, Brasil and so on).
Adjust the temperatures for the night time and the day time and save. Tell me what is wrong and what to change. Of course I will not implement stuff like geolocation.
USAGE ===== sunny must be started early in S:user-startup
If run twice, it opens its window. When its window is closed, all MUI resources are freed.
It's command line arguments are; CX_PRIORITY/K/N,CX_POPKEY/K,CX_POPUP/S,SCREEN/M:
Don't use CX_POPUP in s:user-startup !!!
It's ICON tooltypes are CX_PRIORITY=PRIO/N CX_POPKEY=KEY CX_POPUP SCREENS=SCREENLIST
From version 0.5, sunny accepts a screens list at startup, f.e. you can run sunny as run DETACH sunny Workbench M@Muiscreen or as a tooltype SCRENS=Workbench:M@Muiscreen
to make sunny operates on Workbench ad Muiscreen; note that for MUI screens, you must add M@ to the screen name.
P.S. For translators: if you wish, you can add your name to MSG_About_Text; to generate a sunny.ct file, just do: make ctfile
Saluti - alfie
|