Skip to main content

an auto luxer

Project description

inspired by lumen <> but written for *nix machines. autolux takes a screenshot every few seconds, figures out the ‘average value’ of the resulting image (the luminence) and changes the screen brightness based on the screen’s contents.


pip install autolux


  • python2 (not python3)
  • python-daemon (optional, for running as a service)
  • imagemagick (for screenshots + determining average brightness)
  • xdotool (finding focused window)
  • xbacklight (for setting display brightness)


# runs autolux


# running autolux as a service
autolux --daemon


if your display does not support hardware adjustment through xbacklight, its possible to use xrandr to adjust the brightness via software.

# find out the display of your name using xrandr
xrandr --listmonitors

autolux --xrandr eDP1 # my monitor is named eDP1
autolux --xrandr eDP1 --reset # reset brightness to normal
autolux --xrandr eDP1 --adjust -1 # lower brightness by 1
autolux --xrandr eDP1 --adjust +1 # increase brightness by 1


initially, autolux uses linear interpolation to figure out the brightness to map to different luminence inputs. as the brightness is manually adjusted away from its predicted value, autolux records the time of day and luminence values that prompted you to change the brightness level and integrates the new information into its model.

autolux assumes that time of day and screen content are the sole predictors of one’s preferred brightness, but the model could further be improved by adding in several factors, such as ambient light or user active time (as a stand-in for eye strain). because of these and other unknown confounding variables, autolux has an emphasis on quick learning of new preferences and not burning in old ones.


autolux --vis --plot-bright
# show brightness prediction model
# requires matplotlib
# color is the input luminence. (5K - 65K, lower value is darker screen content)
# x axis is hour (0 - 24, with UTC offset applied)
# y axis is predicted brightness level from the model (0 - 100%)

autolux --vis --plot-luma
# --plot-luma will swap the luma and brightness on the Y axis and colorbar

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autolux-0.0.35.tar.gz (9.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page