gammastep
Adjust screen color temperature based on time
TLDR
Turn on Gammastep with a specific [t]emperature during the day (e.g. 5700k) and at night (e.g. 3600k)
Turn on Gammastep with a manually specified custom [l]ocation
Turn on Gammastep with a specific screen [b]rightness during the day (e.g. 70%) and at night (e.g. 40%), with minimum brightness 10% and maximum brightness 100%
Turn on Gammastep with custom [g]amma levels (between 0 and 1)
Turn on Gammastep with a c[O]nstant unchanging color temperature
Reset temperature adjustments applied by Gammastep
SYNOPSIS
gammastep [-h] [-V] [-v] [-o] [-x] [-l LAT[:LON]] [-t DAY:NIGHT] [-b DAY:NIGHT] [-O TEMP] [-I INT] [-c FILE] [-m METHOD] [--print] [--dbus]
PARAMETERS
-h, --help
Display help and exit
-V, --version
Print version information
-v, --verbose
Enable verbose logging
-o, --one-shot
Apply settings once and exit
-x, --reset
Reset all corrections
-l LAT[:LON], --location=LAT[:LON]
Set geographical location for auto-adjustment
-t DAY:NIGHT, --temp-day=DAY --temp-night=NIGHT
Set daytime/nighttime color temperatures (Kelvin)
-b DAY:NIGHT, --brightness-day=DAY --brightness-night=NIGHT
Set daytime/nighttime brightness multipliers (0.0-1.0)
-O TEMP, --one-shot-temperature=TEMP
Set one-time color temperature
-I INT, --one-shot-intensity=INT
Set one-time transition intensity (0.0-1.0)
-c FILE, --config=FILE
Load configuration from FILE
-m METHOD, --method=METHOD
Transition method: none, linear, smooth, vit
-p, --print
Print current color temperature
--print-cmd
Print current settings as command-line args
--dbus
Enable D-Bus control interface
DESCRIPTION
Gammastep is an open-source daemon for dynamically adjusting your screen's color temperature and gamma curves based on the time of day, reducing eye strain by simulating natural lighting. Designed for Wayland compositors supporting the wlr-gamma-control-unstable-v1 protocol (e.g., Sway, Hyprland, river), it serves as a drop-in replacement for Redshift on X11.
It automatically computes sunrise and sunset times from your location, transitioning smoothly from cooler daytime temperatures (5000-6500K, bluish) to warmer nighttime ones (3500-4500K, reddish). Manual overrides, presets, and brightness adjustments are supported. Gammastep runs unobtrusively in the background, applying per-output corrections with customizable transition speeds and methods like smooth or linear.
Key benefits include improved sleep quality by minimizing blue light exposure at night, and support for multiple monitors. Configuration via INI files allows fine-tuning locations, temperatures, and fade durations. Pair it with gammastep-indicator for a system tray interface.
CAVEATS
Requires Wayland compositor with wlr-gamma-control-unstable-v1 protocol support (e.g., Sway, not GNOME/KDE). Per-output adjustments may conflict with compositor color management. No X11/Wayland XWayland support.
CONFIGURATION FILE
Default at ~/.config/gammastep/config.ini. Supports sections like [general] for day-temp=6500, night-temp=3700; [location] lat=...; smooth transitions via fade=1.0.
MANUAL CONTROL
Use pkill gammastep to stop daemon. Complements brightnessctl for backlight. Supports D-Bus for scripting: gammastep --dbus.
HISTORY
Developed as a Wayland port of Redshift by Jonathon Jongsma and swaywm contributors. Initial release in 2021 via wlroots ecosystem. Actively maintained on GitHub (hyprwm/gammastep), with focus on stability for wlroots-based compositors.
SEE ALSO
redshift(1), gammastep-indicator(1), wl-gamma-control(7)


