mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-21 01:25:42 +02:00
picom: just set a small corner-radius
This commit is contained in:
parent
ad25a8d915
commit
48abe47cfb
3 changed files with 3 additions and 44 deletions
|
@ -5,6 +5,7 @@ dpi=$(xrdb -query | sed -nE 's/^Xft\.dpi:\s*//p')
|
||||||
POLYBAR_HEIGHT=$((20 * dpi / 96))
|
POLYBAR_HEIGHT=$((20 * dpi / 96))
|
||||||
SHADOW_RADIUS=$((12 * dpi / 96))
|
SHADOW_RADIUS=$((12 * dpi / 96))
|
||||||
SHADOW_OFFSET=$((SHADOW_RADIUS*2/3))
|
SHADOW_OFFSET=$((SHADOW_RADIUS*2/3))
|
||||||
|
CORNER_RADIUS=$((4 * dpi / 96))
|
||||||
|
|
||||||
# Configure picom
|
# Configure picom
|
||||||
mkdir -p $XDG_RUNTIME_DIR/i3
|
mkdir -p $XDG_RUNTIME_DIR/i3
|
||||||
|
@ -12,6 +13,7 @@ cat ~/.config/i3/dotfiles/picom.conf \
|
||||||
| sed -e "s/@POLYBAR_HEIGHT@/$POLYBAR_HEIGHT/" \
|
| sed -e "s/@POLYBAR_HEIGHT@/$POLYBAR_HEIGHT/" \
|
||||||
| sed -e "s/@SHADOW_RADIUS@/$SHADOW_RADIUS/" \
|
| sed -e "s/@SHADOW_RADIUS@/$SHADOW_RADIUS/" \
|
||||||
| sed -e "s/@SHADOW_OFFSET@/$SHADOW_OFFSET/" \
|
| sed -e "s/@SHADOW_OFFSET@/$SHADOW_OFFSET/" \
|
||||||
|
| sed -e "s/@CORNER_RADIUS@/$CORNER_RADIUS/" \
|
||||||
> $XDG_RUNTIME_DIR/i3/picom.conf.new
|
> $XDG_RUNTIME_DIR/i3/picom.conf.new
|
||||||
|
|
||||||
# Put new configuration file in place
|
# Put new configuration file in place
|
||||||
|
|
|
@ -68,5 +68,4 @@ shadow-exclude = [
|
||||||
];
|
];
|
||||||
fade-exclude = [ ];
|
fade-exclude = [ ];
|
||||||
|
|
||||||
corner-radius = @SHADOW_RADIUS@
|
corner-radius = @CORNER_RADIUS@
|
||||||
window-shader-fg = "rounded-borders.glsl"
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
#version 330
|
|
||||||
|
|
||||||
in vec2 texcoord;
|
|
||||||
uniform sampler2D tex;
|
|
||||||
uniform float corner_radius;
|
|
||||||
|
|
||||||
vec4 default_post_processing(vec4 c);
|
|
||||||
|
|
||||||
vec4 add_rounded_corners(
|
|
||||||
vec4 win_color,
|
|
||||||
vec2 tex_coord,
|
|
||||||
vec2 tex_size,
|
|
||||||
float radius,
|
|
||||||
float thickness)
|
|
||||||
{
|
|
||||||
// If we're far from corners, we just pass window texels through
|
|
||||||
vec2 corner_distance = min(abs(tex_coord), abs(tex_size - 1 - tex_coord));
|
|
||||||
if (any(greaterThan(corner_distance, vec2(radius))))
|
|
||||||
return win_color;
|
|
||||||
|
|
||||||
// Distance from the closest arc center
|
|
||||||
vec2 center_distance = min(
|
|
||||||
abs(vec2(radius) - tex_coord),
|
|
||||||
abs(vec2(tex_size - radius) - tex_coord));
|
|
||||||
|
|
||||||
// Do some simple anti-aliasing
|
|
||||||
float inner_radius = radius - thickness;
|
|
||||||
float feather = 1 / inner_radius;
|
|
||||||
float r = length(center_distance) / inner_radius;
|
|
||||||
float blend = smoothstep(1, 1 + feather, r);
|
|
||||||
|
|
||||||
vec4 border_color = texture2D(tex, vec2(0), 0);
|
|
||||||
return blend * border_color + (1.0 - blend) * win_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec4 window_shader()
|
|
||||||
{
|
|
||||||
vec2 tex_size = textureSize(tex, 0);
|
|
||||||
vec4 c = texture2D(tex, texcoord / tex_size, 0);
|
|
||||||
vec4 with_corners = add_rounded_corners(c, texcoord, tex_size, corner_radius, 6);
|
|
||||||
return default_post_processing(with_corners);
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue