An Alfred Workflow

Short Description

Control f.lux with Alfred

Last Updated

31 Jul 2014


Mountain Lion
Snow Leopard
Yes Yes Yes Yes Yes



Bundle ID


Control F.lux with Alfred.

(If you don't know f.lux, then go check it out; it alters the color temperature of your screen to help you sleep better).

Note: This is a complete rewrite of Benzi's original workflow. It now works with f.lux 3.0, and it adds quite a few more features on top of Benzi's.

The short version (commands):

  • flux c(olor) — set the current color temperature of flux.
  • flux s(et) — set preferences: wake time as well as color temperature for day, night, and late.
  • flux di(sable) — disable flux for a specified amount of time (default: 1 hour) or until sunrise.
  • flux m(ood) — enter a special "mood lighting" mode that makes your computer simulate a candle (don't use this while trying to use your computer).
  • flux d(arkroom) — simulates flux's Darkroom mode, although it is faster just to flux's option.
  • disflux — disable flux for an hour.

The longer, more rambly version:

This workflow controls flux. Since it uses a PHP script filter to do the heavy lifting when it comes to manipulating dates, it isn't the most responsive thing, but it has quite a few features.

If you just want to disable F.lux for an hour, then just type `disflux`. It's faster that way.

Otherwise, the keyword `flux` will let you set the current color temperature, set preferences, disable for any specified period of time (the time filter is the same one as on my Caffeinate Workflow). You can also disable until sunrise, which will, of course, disable until the next sunrise.

Whenever f.lux is disabled, the only option that you have is to re-enable it.

When you try to set the color, it always defaults to having you set the color for the current time period (day / night / late).

You can set the color temperatures for the other times via "flux set ...".

You can set the color far outside of Flux's normal range (2700-6500). You can go down to 1000 and up to 27000. Be warned: flux transitions to and from lower temperatures __very__ slowly, so expect it to take some time.

You can enter into "Darkroom Mode," which is a simulated version of what Flux's does. Basically, it sets the color to 1000K and inverts the screen colors.

You can also enter into "Mood Lighting" mode, which is something that f.lux doesn't offer! Mood lighting sets your computer temperature to candlelight, opens a blank page in a web browser, and then proceeds to randomly adjust the brightness of your screen to simulate a candle flickering. Don't use this when you're trying to work on your computer, but maybe turn it on a darker room to set a nice mood.

When you're in Darkroom or Mood Lighting mode, the only option that you have when you type `flux` is to restore f.lux's normal behavior.

If I release any future versions of this workflow, they will have better Icons, and I'll try to speed up the script filter.

Below are some other random notes.

 Explanation  -----------    This workflow does two things:      (1) Control F.lux, and      (2) Hack the hell out of F.lux.   (1) It can control F.lux's settings by rewriting the preferences file that        F.lux uses; however, only a bit of the information is stored there.            --- Note: more might be stored in its sqlite cache databases, but            --- I need to query those more manually to figure that out.        That means we can set the main preferences that we need:          (1) Day Color Temp          (2) Night Color Temp

         Past that, we also have access to:          (1) Location (Latitude and Longitude);          (2) An Extra Hour of Sleep;          (3) Sleep in on Weekends/          (4) Steptime (I think this has something to do with the transition speed,              but my testing hasn't shown me exactly how);          (5) Wake Time; and          (6) Fast Fade at Sunset.

         There are a few more, but they are mostly irrelevant for controlling F.lux.

         This workflow lets you set those preferences without opening F.lux's prefs.

   (2) In order to replicate F.lux's            (1) Disable for an hour; and            (2) Disable until sunset        features, we have to first tell F.lux that night is day and day is night,        and then setup a little script to run for the specified "break" and then        stop lying to F.lux. Since this is a hack, enabling F.lux from the menubar        will NOT do anything.

       The reason why we need to implement these hacks is simply that F.lux does        not let you control anything about it from the command line, so those        fancy new features are not available to use without a bit of hacking.            --- Not ever going to work:                  (1) Movie Mode                  (2) Disable for this App

  Presets   -------   These are custom presets that extend the native ones.   --- Note: All numbers are in Kelvin.   --- [Color Temperature](https://en.wikipedia.org/wiki/Color_temperature)     Dark Room             900 --- Note: the transition takes for-damn-ever.     Ember                1200     Candle               1900     Warm Incandescent    2300     Incandescent         2700 --- Note: The transition below 3000 is slow.     Halogen              3400     Fluorescent          4200     Daylight             5500     Off                  6500     Blue Period         27000

    !!! Darkroom also inverts the screen colors, only if you have enabled it via     accessibilty.

    Presets from the [F.lux FAQ page](https://justgetflux.com/faq.html):     For OSX       Candle             2300       Tungsten           2700       Halogen            3400       Fluorescent        4200       Daylight           5000

    For Windows       Ember              1200       Candle             1900       Warm Incandescent  2300       Incandescent       2700       Halogen            3400       Fluorescent        4200       Daylight           5500

 Notes  -----

 Features not supported:     1. Movie Mode        -- Cannot because I don't know F.lux's settings.  Standard displays have their whitepoint at 6500K.

 Disable for an... is partially supported.  Darkroom is partially supported.