diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 3513fb0..310595e 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -346,7 +346,9 @@ bind = , F3, exec, ~/.config/wal/next-theme.sh bind = , F4, exec, $launcher bind = , F5, exec, hyprpwcenter bind = , F6, exec, ~/.config/hypr/scripts/hyprsunset-toggle.sh -bind = , F7, exec, hyprshade toggle ~/.config/hypr/shaders/blue-light-filter.glsl +bind = , F7, exec, hyprshade toggle ~/.config/hypr/shaders/vibrance.glsl +bind = , F8, exec, hyprshade toggle ~/.config/hypr/shaders/grayscale.glsl +bind = , F9, exec, hyprshade toggle ~/.config/hypr/shaders/invert-colors.glsl # Touchpad ein/ausschalten (Fn+F7 = Ctrl+Super+F24 laut Firmware) bind = CTRL SUPER, F24, exec, /home/tekki/.config/hypr/scripts/touchpad-toggle.sh diff --git a/config/hypr/shaders/grayscale.glsl b/config/hypr/shaders/grayscale.glsl new file mode 100644 index 0000000..331b32e --- /dev/null +++ b/config/hypr/shaders/grayscale.glsl @@ -0,0 +1,12 @@ +#version 300 es +precision highp float; + +in vec2 v_texcoord; +uniform sampler2D tex; +out vec4 fragColor; + +void main() { + vec4 pixColor = texture(tex, v_texcoord); + float gray = dot(pixColor.rgb, vec3(0.2627, 0.6780, 0.0593)); + fragColor = vec4(vec3(gray), pixColor.a); +} diff --git a/config/hypr/shaders/invert-colors.glsl b/config/hypr/shaders/invert-colors.glsl new file mode 100644 index 0000000..c852d17 --- /dev/null +++ b/config/hypr/shaders/invert-colors.glsl @@ -0,0 +1,11 @@ +#version 300 es +precision highp float; + +in vec2 v_texcoord; +uniform sampler2D tex; +out vec4 fragColor; + +void main() { + vec4 pixColor = texture(tex, v_texcoord); + fragColor = vec4(1.0 - pixColor.rgb, pixColor.a); +} diff --git a/config/hypr/shaders/vibrance.glsl b/config/hypr/shaders/vibrance.glsl new file mode 100644 index 0000000..6e30c47 --- /dev/null +++ b/config/hypr/shaders/vibrance.glsl @@ -0,0 +1,26 @@ +#version 300 es +precision highp float; + +in vec2 v_texcoord; +uniform sampler2D tex; +out vec4 fragColor; + +// Farben satter machen (Stärke: positiv = mehr, negativ = weniger) +const vec3 Balance = vec3(1.0, 1.0, 1.0); +const float Strength = 0.3; +const vec3 VIB_coeffVibrance = Balance * -Strength; + +void main() { + vec4 pixColor = texture(tex, v_texcoord); + vec3 color = pixColor.rgb; + + vec3 VIB_coefLuma = vec3(0.212656, 0.715158, 0.072186); + float luma = dot(VIB_coefLuma, color); + + float max_color = max(color.r, max(color.g, color.b)); + float min_color = min(color.r, min(color.g, color.b)); + float color_saturation = max_color - min_color; + + vec3 p_col = (sign(VIB_coeffVibrance) * color_saturation - 1.0) * VIB_coeffVibrance + 1.0; + fragColor = vec4(mix(vec3(luma), color, p_col), pixColor.a); +} diff --git a/config/hypr/shortcuts.md b/config/hypr/shortcuts.md index 58b863a..b1e039d 100644 --- a/config/hypr/shortcuts.md +++ b/config/hypr/shortcuts.md @@ -47,4 +47,6 @@ | `F4` | hyprlauncher (App-Launcher) | | `F5` | hyprpwcenter (Audio-Mixer) | | `F6` | Nachtmodus an/aus (hyprsunset, ~3500K) | -| `F7` | Blaulichtfilter an/aus (hyprshade) | +| `F7` | Vibrance an/aus (Farben satter) | +| `F8` | Graustufen an/aus | +| `F9` | Farben invertieren an/aus |