feat: crt/vignette/chromatic-aberration/pixelate shader + dynamischer F10-cycle
This commit is contained in:
@@ -349,6 +349,7 @@ bind = , F6, exec, ~/.config/hypr/scripts/hyprsunset-toggle.sh
|
|||||||
bind = , F7, exec, hyprshade toggle ~/.config/hypr/shaders/vibrance.glsl
|
bind = , F7, exec, hyprshade toggle ~/.config/hypr/shaders/vibrance.glsl
|
||||||
bind = , F8, exec, hyprshade toggle ~/.config/hypr/shaders/grayscale.glsl
|
bind = , F8, exec, hyprshade toggle ~/.config/hypr/shaders/grayscale.glsl
|
||||||
bind = , F9, exec, hyprshade toggle ~/.config/hypr/shaders/invert-colors.glsl
|
bind = , F9, exec, hyprshade toggle ~/.config/hypr/shaders/invert-colors.glsl
|
||||||
|
bind = , F10, exec, ~/.config/hypr/scripts/shader-cycle.sh
|
||||||
|
|
||||||
# Touchpad ein/ausschalten (Fn+F7 = Ctrl+Super+F24 laut Firmware)
|
# Touchpad ein/ausschalten (Fn+F7 = Ctrl+Super+F24 laut Firmware)
|
||||||
bind = CTRL SUPER, F24, exec, /home/tekki/.config/hypr/scripts/touchpad-toggle.sh
|
bind = CTRL SUPER, F24, exec, /home/tekki/.config/hypr/scripts/touchpad-toggle.sh
|
||||||
|
|||||||
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
SHADER_DIR="$HOME/.config/hypr/shaders"
|
||||||
|
|
||||||
|
mapfile -t SHADERS < <(find "$SHADER_DIR" -name "*.glsl" | sort)
|
||||||
|
|
||||||
|
if [[ ${#SHADERS[@]} -eq 0 ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT=$(hyprctl getoption decoration:screen_shader | grep "str:" | awk '{print $2}' | tr -d '"')
|
||||||
|
|
||||||
|
INDEX=-1
|
||||||
|
for i in "${!SHADERS[@]}"; do
|
||||||
|
if [[ "${SHADERS[$i]}" == "$CURRENT" ]]; then
|
||||||
|
INDEX=$i
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
NEXT=$(( (INDEX + 1) % ${#SHADERS[@]} ))
|
||||||
|
hyprshade on "${SHADERS[$NEXT]}"
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#version 300 es
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
in vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float offset = 0.004;
|
||||||
|
|
||||||
|
float r = texture(tex, v_texcoord + vec2( offset, 0.0)).r;
|
||||||
|
float g = texture(tex, v_texcoord ).g;
|
||||||
|
float b = texture(tex, v_texcoord - vec2( offset, 0.0)).b;
|
||||||
|
float a = texture(tex, v_texcoord).a;
|
||||||
|
|
||||||
|
fragColor = vec4(r, g, b, a);
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#version 300 es
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
in vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 c = texture(tex, v_texcoord);
|
||||||
|
|
||||||
|
// Scanlines: jede zweite Zeile leicht abdunkeln
|
||||||
|
float scanline = mod(floor(v_texcoord.y * 1000.0), 2.0);
|
||||||
|
c.rgb *= 1.0 - scanline * 0.25;
|
||||||
|
|
||||||
|
// Leichte Vignette für den Röhren-Look
|
||||||
|
vec2 uv = v_texcoord - 0.5;
|
||||||
|
c.rgb *= 1.0 - dot(uv, uv) * 1.2;
|
||||||
|
|
||||||
|
fragColor = c;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#version 300 es
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
in vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float pixelSize = 0.005;
|
||||||
|
vec2 uv = floor(v_texcoord / pixelSize) * pixelSize;
|
||||||
|
fragColor = texture(tex, uv);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#version 300 es
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
in vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 c = texture(tex, v_texcoord);
|
||||||
|
|
||||||
|
vec2 uv = v_texcoord - 0.5;
|
||||||
|
float vignette = 1.0 - dot(uv, uv) * 2.2;
|
||||||
|
c.rgb *= clamp(vignette, 0.0, 1.0);
|
||||||
|
|
||||||
|
fragColor = c;
|
||||||
|
}
|
||||||
@@ -50,3 +50,4 @@
|
|||||||
| `F7` | Vibrance an/aus (Farben satter) |
|
| `F7` | Vibrance an/aus (Farben satter) |
|
||||||
| `F8` | Graustufen an/aus |
|
| `F8` | Graustufen an/aus |
|
||||||
| `F9` | Farben invertieren an/aus |
|
| `F9` | Farben invertieren an/aus |
|
||||||
|
| `F10` | Shader durchschalten (alle .glsl aus ~/.config/hypr/shaders/) |
|
||||||
|
|||||||
Reference in New Issue
Block a user