Screen brightness/temperature manager for Linux/X11
Alternatives To Gummy
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
3 days ago10mitSwift
macOS system monitor in your menu bar
7 days ago313gpl-3.0C++
Home automation firmware for ESP8266-based devices
Dht Sensor Library1,741
4 months ago23mitC++
Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors
Osx Cpu Temp76612 years ago1March 03, 202115gpl-2.0C
Outputs current CPU temperature for OSX
Lovelace Thermostat Dark Card694
2 days ago34mitTypeScript
🌡 Thermostat card with a round and black feel to it
5 months ago16Python
Read the values of the Xiaomi Mi Bluetooth Temperature sensor 2 including custom encrypted format.
W1thermsensor4832923 months ago24January 25, 20218mitPython
A Python package and CLI tool to work with w1 temperature sensors like DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other devices.
6 months ago12apache-2.0C++
How to tell original from fake DS18B20 temperature sensors.
Awesome Arduino453
5 years ago3Shell
A curated list of awesome Arduino hardwares, libraries and softwares with update script
2 days ago4gpl-3.0C++
ST_Anything is an Arduino library, sketch, and Device Type that works with your SmartThings ThingShield to create an all-in-one SmartThings device.
Alternatives To Gummy
Select To Compare

Alternative Project Comparisons


gummy is a screen manager for Linux. It was mainly written to allow adaptive screen adjustments, but allows manual configuration as well.

It provides a CLI for adjusting:

  • backlight brightness
  • pixel brightness
  • color temperature

These settings can be set manually or automatically, based on any of these inputs:

  • ALS: your laptop's ambient light sensor, if available.
  • Screenlight: screen lightness, i.e. the brightness of the contents being displayed on your screen.
  • Time: a time range for the day (e.g. from 06:00 to 18:00).


Distro Location
Debian/Ubuntu GitHub releases
Arch AUR (stable - latest)
NixOS nixpkgs

For NixOS users: you must add the following line to configuration.nix: services.udev.packages = [ pkgs.gummy ];

gummy uses the ddcutil library on your system for managing backlights of external monitors. The kernel module i2c-dev is needed if you want this functionality.

i2c-dev is built-in in some distributions. Otherwise, you must load it explicitly. This guide shows you how to load it automatically.

You can quickly load it with the command: sudo modprobe i2c-dev. This method does not survive a system reboot, however.

Until ddcutil 1.4+, you must add your user to the "i2c" group for rootless operation.

sudo usermod <user-name> -aG i2c

Generally, a reboot is recommended to ensure gummy can operate your screens without elevated privileges.


Type gummy -h to print all the available options.

Screen settings are applied to all screens, unless the -s option with a screen number (starting from 0) is provided. All relevant settings can be increased or decreased by prefixing the value with a "+" or "-" sign.

Quick guide: | Command | Explanation | |---------|--------| | gummy start | Starts the background process responsible for screen adjustments. | | gummy -b 50 | Sets backlight brightness to 50%. | | gummy -b +50 | Increases backlight brightness by 50%. | | gummy -t 3400 | Sets the color temperature to 3400K. | | gummy -B 1 | Adjusts backlight brightness based on screen lightness. | | gummy -P 1 | As above, but with pixel brightness. | | gummy -T 1 | As above, but with color temperature. | | gummy -B 2 | Adjusts backlight brightness based on ALS data. (If you have an ambient light sensor.) | | gummy --als-scale 1.5 | Multiplies the ALS signal by 1.5. This can be useful for calibration. | | gummy -T 3 -y 06:00 -u 18:00 | Enables time-based temperature. Temperature will gradually transition from 6500K to 3200K (by default), one hour before 18:00. |


If you experience screen flickering: disable any program that might change screen gamma, such as Redshift. Some system daemons might also cause screen flickering, such as colord. Check if it's running in your system, and try disabling it. I may add functionality to disable gamma control in the future (while keeping backlight control), so that gummy can work with any other gamma-adjusting software.

If backlight adjustments don't work, make sure DDC/CI is enabled in your screen's control panel. Your screen might not support DDC/CI: in that case, you might want to use pixel brightness as a substitute.

Building from source

System requirements:

  • C++20 compiler
  • CMake v3.14 or later
  • libxcb (with extensions: randr, shm, image)
  • libsystemd
  • libsdbus-c++
  • libddcutil

Apt packages

sudo apt install build-essential cmake libxcb1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-image0-dev libsystemd-dev libsdbus-c++-dev libddcutil-dev


git clone --depth 1 && cd gummy
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE="Release"
cmake --build . -j && sudo cmake --install .


This project makes (hopefully good) use of these excellent libraries:

Temperature adjustments use the color ramp provided by Ingo Thies for Redshift.


You can buy me a coffee at:


Copyright 2021-2023 Francesco Fusco

Released under the terms of the GNU General Public License v3.0.

Popular Sensor Projects
Popular Temperature Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C Plus Plus