bitzdots
gitlabLean Hyprland dotfiles with automatic matugen theming. Low-end optimized, full-stack auto-coloring, 26 Jinja2 templates. Rofi-powered menus, waybar modules, screenshot/recording, event-driven cache daemon.
clone
https://gitlab.com/bitzzdev/bitzdots.gitarchlinuxdotfileshyprlandhyprland-dotfileslow-endminimalricingwallustwaybarwayland
#version 330// Emulate the "line style" spectrum analyzer from Winamp 2.// Try this config for a demonstration:/*[general]bar_width = 2bar_spacing = 0higher_cutoff_freq = 22000[output]method = sdl_glslchannels = monofragment_shader = winamp_line_style_spectrum.frag[color]background = '#000000'gradient = 1gradient_color_1 = '#319C08'gradient_color_2 = '#29CE10'gradient_color_3 = '#BDDE29'gradient_color_4 = '#DEA518'gradient_color_5 = '#D66600'gradient_color_6 = '#CE2910'[smoothing]noise_reduction = 10*/in vec2 fragCoord;out vec4 fragColor;// bar values. defaults to left channels first (low to high), then right (high to low).uniform float bars[512];uniform int bars_count; // number of bars (left + right) (configurable)uniform int bar_width; // bar width (configurable), not used hereuniform int bar_spacing; // space bewteen bars (configurable)uniform vec3 u_resolution; // window resolution//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)uniform vec3 bg_color; // background coloruniform vec3 fg_color; // foreground coloruniform int gradient_count;uniform vec3 gradient_colors[8]; // gradient colorsvec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max){//create color based on fraction of this color and next colorfloat yr = (y - y_min) / (y_max - y_min);return col_1 * (1.0 - yr) + col_2 * yr;}void main(){// find which bar to use based on where we are on the x axisfloat x = u_resolution.x * fragCoord.x;int bar = int(bars_count * fragCoord.x);//calculate a bar sizefloat bar_size = u_resolution.x / bars_count;//the y coordinate is stretched by 4X to resemble Winampfloat y = min(bars[bar] * 4.0, 1.0);// make sure there is a thin line at bottomif (y * u_resolution.y < 1.0){y = 1.0 / u_resolution.y;}vec4 bar_color;if (gradient_count == 0){bar_color = vec4(fg_color,1.0);}else{//find color in the configured gradient for the top of the barint color = int((gradient_count - 1) * y);//find where on y this and next color is supposed to befloat y_min = float(color) / (gradient_count - 1.0);float y_max = float(color + 1) / (gradient_count - 1.0);//make a solid color for the entire barbar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);}//draw the bar up to current heightif (y > fragCoord.y){//make some space between bars based on settingsif (x > (bar + 1) * (bar_size) - bar_spacing){fragColor = vec4(bg_color,1.0);}else{fragColor = bar_color;}}else{fragColor = vec4(bg_color,1.0);}}