QREDSHIFT(1)

NAME
qredshift - Stateless C99 CLI for display color temperature, brightness, and gamma control on Linux. Native X11 and Wayland. Per-monitor targeting.

SYNOPSIS
qredshift [-h] [-v] [-i] [-t kelvin] [-b brightness] [-g gamma] [-d target] ... [-xlib] [-interp] [-wd]

DESCRIPTION
qredshift is a high-performance, stateless command-line utility for adjusting screen color temperature, brightness, and gamma on Linux. It is a modern replacement for redshift(1), sct(1), and gammastep(1).

On X11, qredshift applies the requested gamma ramp immediately and exits; it keeps no daemon and no configuration state, instead reconstructing its current settings directly from the live hardware gamma ramps when needed. On Wayland, where gamma control is tied to the compositor connection, it runs a lightweight background daemon communicating over a FIFO pipe so that later invocations apply instantly.

qredshift supports independent per-display targeting via the -d flag, and compiles to a ~40KB binary.

Key features: native multi-monitor support, reverse gamma reconstruction without stored state, Wayland daemon mode with FIFO-based IPC, and a shared library plugin design that avoids pulling libwayland-client as a dependency on X11 systems.

OPTIONS

-h  Display usage help.

-v  Show program version.

-i  Show information about connected displays, including their current estimated temperature, brightness, and gamma.

-t kelvin
    Set temperature in Kelvin, from 1000 to 25000. Defaults to 6500 (no color shift). Calling qredshift -t with no value resets to the default.

-b brightness
    Set brightness, from 0.1 to 1.0. Defaults to 1.0.

-g gamma
    Set gamma, from 0.1 to 5.0. Defaults to 1.0.

-d target
    Target a specific display by index or RandR output name, optionally overriding temperature, brightness, or gamma for that display only. May be repeated to target multiple displays in a single call. Any parameter not specified in a -d block falls back to the global value set by -t/-b/-g.

    Syntax: id [:t=K] [:b=B] [:g=G]

    Examples:

        qredshift -t 4500 -d 1
            target display 1 by index, using the global temperature

        qredshift -t 4500 -d HDMI-1
            target display by RandR output name

        qredshift -t 6500 -d 84:t=4500:b=0.8
            display 84 overrides temperature and brightness; other displays get the global 6500K

        qredshift -d 84:t=6500:b=1.0 -d 85:t=4500:b=0.8
            two displays, fully independent settings

-xlib
    Use the Xlib backend instead of the default XCB backend.

-interp
    Use the legacy interpolation method for Kelvin-to-RGB conversion.

-wd Start the Wayland daemon without applying initial values. Only available on Wayland sessions. The daemon listens on a FIFO pipe for subsequent commands.

EXAMPLES
qredshift -i
        Display Server: x11
        Desktop Environment: X-Cinnamon
        Mode: XCB RandR
        84:C:DisplayPort-0:1920x1080 | T: 6500K | B: 1.00 | G: 1.00
        85:C:DisplayPort-1:1920x1080 | T: 6500K | B: 1.00 | G: 1.00
qredshift -d DisplayPort-0 -t 4000 -b 0.85
    Apply 4000K temperature and 85% brightness specifically to display connector DisplayPort-0.
qredshift -d DisplayPort-1:t=6500:b=1.0 -d 84:t=4500:b=0.8
    Two displays, fully independent settings.RE

EXIT STATUS
0 on success, non-zero on error (for example, no supported X11 or Wayland display server detected, compositor missing required protocols, or a display communication failure).

ENVIRONMENT

WAYLAND_DISPLAY
    Used with XDG_RUNTIME_DIR to detect a Wayland session and locate the compositor socket. If found and accessible, the Wayland backend is selected.

DISPLAY
    Used to detect an X11 session. If WAYLAND_DISPLAY is not present or its socket is unreachable, the X11 backend is selected.

SEE ALSO
redshift(1), gammastep(1) xrandr(1), xsct(1),

AUTHOR
Raphael Quintao <raphaelquintao@gmail.com>

HOMEPAGE
https://github.com/raphaelquintao/qredshift