Skip to main content

Hyprshade

Front-end to Hyprland's screen shader feature

Screenshots

Unfiltered

Unfiltered

Vibrance

Vibrance

Blue Light Filter

Blue Light Filter

Description

Hyprshade takes full advantage of Hyprland's decoration:screen_shader feature by automating the process of switching screen shaders, either from a user-defined schedule or on the fly. It can be used as a replacement1 for apps that adjust the screen's color temperature such as f.lux, redshift, or gammastep with blue-light-filter, which is installed by default.

Installation

Arch Linux

Use your favorite AUR helper (e.g. paru):

paru -S hyprshade

Or manually:

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/hyprshade.git
cd hyprshade
makepkg -si

PyPI

If your distribution isn't officially supported, you can also install directly from PyPI with pip:

pip install --user hyprshade

Or with pipx:

pipx install hyprshade

Usage

Usage: hyprshade [OPTIONS] COMMAND [ARGS]...

Commands:
  auto     Set screen shader on schedule
  current  Print current screen shader
  install  Install systemd user units
  ls       List available screen shaders
  off      Turn off screen shader
  on       Turn on screen shader
  toggle   Toggle screen shader

Commands which take a shader name accept either the basename:

hyprshade on blue-light-filter

...or a full path name:

hyprshade on ~/.config/hypr/shaders/blue-light-filter.glsl

If you provide the basename, Hyprshade searches in ~/.config/hypr/shaders and /usr/share/hyprshade.

Scheduling

[!WARNING] For scheduling to work, systemd --user must have access to the environment variable HYPRLAND_INSTANCE_SIGNATURE.

Add the following line to hyprland.conf2:

exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE

To have specific shaders enabled during certain periods of the day, you can create a config file in either ~/.config/hypr/hyprshade.toml or ~/.config/hyprshade/config.toml.

[[shades]]
name = "vibrance"
default = true  # shader to use during times when there is no other shader scheduled

[[shades]]
name = "blue-light-filter"
start_time = 19:00:00
end_time = 06:00:00   # optional if you have more than one shade with start_time

For starters, you can copy the example config:

cp /usr/share/hyprshade/examples/config.toml ~/.config/hypr/hyprshade.toml

After writing your config, install the systemd timer/service user units and enable the timer unit:

hyprshade install
systemctl --user enable --now hyprshade.timer

[!TIP] Run hyprshade install every time you make changes to hyprshade.toml to keep the user units in sync.

Tips

You probably want the following line in your hyprland.conf:

exec = hyprshade auto

This ensures that the correct shader is enabled when you log in.

  1. Gradual color shifting currently unsupported. ↩

  2. See also: Hyprland FAQ (cache) ↩

Metadata

Release files for hyprshade 5.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hyprshade 5.0.0
File Size Uploaded
hyprshade-5.0.0.tar.gz 17.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hyprshade 5.0.0
File Interpreter ABI Platform
hyprshade-5.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.5 kB

Release files / hyprshade-5.0.0.tar.gz

Download URL hyprshade-5.0.0.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4a102c34f1be16f34d7c6271051f298e1b8929f2e6d40e06c5d450bad7439efc
BLAKE2b-256 checksum
How to use checksums
07c64bf8a61303d5c490eb362bea648c4b5157ecdb1e5952c2195a43f533492c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / hyprshade-5.0.0-py3-none-any.whl

Download URL hyprshade-5.0.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49bdef2fad7057a63f028fb26722d488a68e297266d4585855d4deacea21b483
BLAKE2b-256 checksum
How to use checksums
37d89065b5e708578d9515923d15b125e83fcf291feb1fd4deefd96343f3c191
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

5.0.0 This release

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page