Visual Effects
Blur
Gaussian blur behind transparent windows. Uses multi-pass shader for smooth results.
-- Enable blur
garchomp.blur_enabled = true
-- Blur strength (0-20)
-- Higher values = more blur, more GPU usage
garchomp.blur_strength = 8
-- Blur iterations (passes)
-- More iterations = smoother blur, more GPU usage
garchomp.blur_iterations = 4
Blur only affects windows with transparency. Use window rules to enable blur for specific apps:
-- Enable blur for terminals
garchomp.rule(
( class = "Alacritty" ),
( blur_behind = true )
)
garchomp.rule(
( class = "kitty" ),
( blur_behind = true )
)
Shadows
Soft drop shadows rendered below windows:
garchomp.shadow_enabled = true
garchomp.shadow_radius = 15.0 -- Blur radius
garchomp.shadow_offset_x = 0.0 -- Horizontal offset
garchomp.shadow_offset_y = 8.0 -- Vertical offset (down)
garchomp.shadow_opacity = 0.6 -- Shadow darkness
-- Shadow color (default black)
garchomp.shadow_color_r = 0.0
garchomp.shadow_color_g = 0.0
garchomp.shadow_color_b = 0.0
Rounded Corners
Apply rounded corners to all windows:
-- Global corner radius
garchomp.corner_radius = 12.0
-- Per-window override
garchomp.rule(
( window_type = "dock" ),
( corner_radius = 0.0 ) -- No corners for bar
)
Window Opacity
Control window transparency based on focus:
-- Base opacity for all windows
garchomp.opacity = 1.0
-- Focused window opacity
garchomp.opacity_focused = 1.0
-- Unfocused window opacity (subtle dimming)
garchomp.opacity_unfocused = 0.9
Fade Animations
Smooth fade-in/out when windows appear or disappear:
garchomp.fade_enabled = true
garchomp.fade_in_duration = 0.15 -- Seconds
garchomp.fade_out_duration = 0.1 -- Seconds
HDR Rendering
High Dynamic Range rendering with tonemapping (requires HDR-capable display):
garchomp.hdr_enabled = true
garchomp.hdr_peak_luminance = 1000.0 -- Display peak brightness
garchomp.hdr_paper_white = 203.0 -- SDR white level
-- Tonemapping operators:
-- "aces" - Academy Color Encoding System (cinematic)
-- "reinhard" - Reinhard global operator
-- "hable" - Uncharted 2 filmic curve
-- "none" - No tonemapping
garchomp.hdr_tonemap = "aces"
VSync Modes
-- "adaptive" - VSync when possible, tear if behind (recommended)
-- "on" - Always wait for vsync (no tearing, may lag)
-- "off" - No vsync (lowest latency, may tear)
garchomp.vsync = "adaptive"
Performance Tips
- Blur is expensive - Start with blur_strength 5-8, increase if GPU can handle it
- Limit blur windows - Use rules to enable blur only for terminals and specific apps
- Fullscreen bypass - Fullscreen windows are automatically unredirected
- VSync adaptive - Best balance of smoothness and responsiveness
- Disable effects - Use garchompctl to toggle effects for testing