UserDecorations.conf
User decoration settings configuration file that defines the visual appearance of windows, borders, shadows, blur effects, and other aesthetic elements in HyprFlux. This file integrates with the dynamic theming system to provide consistent visual styling.
Purpose
- Visual Styling: Controls window decorations, borders, and visual effects
- Dynamic Theming: Integrates with wallust for automatic color generation
- Performance Balance: Balances visual appeal with system performance
- Customization: Allows users to personalize the desktop appearance
File Location
~/.config/hypr/UserConfigs/UserDecorations.conf
Configuration Structure
Dynamic Color Integration
bash
# Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
Purpose: Automatically applies colors generated from the current wallpaper by wallust, ensuring visual consistency across the desktop.
General Decoration Settings
bash
general {
border_size = 0
gaps_in = 2
gaps_out = 4
# col.active_border = $color12
# col.inactive_border = $color10
}
General Properties
- border_size: Width of window borders in pixels (0 = no borders)
- gaps_in: Inner gaps between windows in pixels
- gaps_out: Outer gaps between windows and screen edges in pixels
- col.active_border: Color of active window border (commented out - using wallust colors)
- col.inactive_border: Color of inactive window borders (commented out - using wallust colors)
Decoration Block
bash
decoration {
rounding = 10
active_opacity = 1.0
inactive_opacity = 0.9
fullscreen_opacity = 1.0
dim_inactive = true
dim_strength = 0.1
dim_special = 0.8
shadow {
enabled = false
range = 3
render_power = 1
color = $color12
color_inactive = $color10
}
blur {
enabled = true
size = 6
passes = 2
ignore_opacity = true
new_optimizations = true
special = true
popups = true
}
}
Window Rounding
bash
rounding = 10
- Purpose: Corner radius for windows in pixels
- Values: 0 = square corners, higher values = more rounded
- Performance: Higher values may impact performance
Opacity Settings
bash
active_opacity = 1.0 # Fully opaque active windows
inactive_opacity = 0.9 # Slightly transparent inactive windows
fullscreen_opacity = 1.0 # Fully opaque fullscreen windows
Window Dimming
bash
dim_inactive = true # Dim inactive windows
dim_strength = 0.1 # Dimming intensity (0.0-1.0)
dim_special = 0.8 # Dimming for special workspaces
Shadow Configuration
bash
shadow {
enabled = false # Shadows disabled by default
range = 3 # Shadow blur radius
render_power = 1 # Shadow rendering quality
color = $color12 # Shadow color (from wallust)
color_inactive = $color10 # Inactive window shadow color
}
Blur Effects
bash
blur {
enabled = true # Enable blur effects
size = 6 # Blur radius
passes = 2 # Number of blur passes (quality vs performance)
ignore_opacity = true # Blur regardless of window opacity
new_optimizations = true # Use optimized blur algorithms
special = true # Blur special workspaces
popups = true # Blur popup windows
}
Group Configuration
bash
group {
col.border_active = $color15
groupbar {
col.active = $color0
}
}
Group Properties
- col.border_active: Active group border color (from wallust)
- groupbar.col.active: Active group bar color (from wallust)
Customization Examples
Minimal Style (Performance Focused)
bash
decoration {
rounding = 0 # No rounding for better performance
active_opacity = 1.0
inactive_opacity = 1.0 # No transparency
dim_inactive = false # No dimming
shadow {
enabled = false # No shadows
}
blur {
enabled = false # No blur for maximum performance
}
}
general {
border_size = 1 # Minimal borders
gaps_in = 0 # No inner gaps
gaps_out = 0 # No outer gaps
}
High-End Visual Style
bash
decoration {
rounding = 15 # More pronounced rounding
active_opacity = 1.0
inactive_opacity = 0.8 # More transparency contrast
dim_inactive = true
dim_strength = 0.2 # Stronger dimming
shadow {
enabled = true # Enable shadows
range = 8 # Larger shadow radius
render_power = 3 # Higher quality shadows
}
blur {
enabled = true
size = 10 # Stronger blur
passes = 3 # Higher quality blur
}
}
general {
border_size = 2 # Visible borders
gaps_in = 5 # Comfortable inner gaps
gaps_out = 10 # Spacious outer gaps
}
Gaming Style (Clean and Fast)
bash
decoration {
rounding = 5 # Subtle rounding
active_opacity = 1.0
inactive_opacity = 1.0 # No transparency for clarity
dim_inactive = false # No dimming for gaming
shadow {
enabled = false # No shadows for performance
}
blur {
enabled = false # No blur for gaming performance
}
}
general {
border_size = 0 # No borders for immersion
gaps_in = 0 # No gaps for maximum screen space
gaps_out = 0
}
Productivity Style (Balanced)
bash
decoration {
rounding = 8 # Moderate rounding
active_opacity = 1.0
inactive_opacity = 0.95 # Subtle transparency
dim_inactive = true
dim_strength = 0.05 # Very subtle dimming
shadow {
enabled = true
range = 4 # Moderate shadows
render_power = 2
}
blur {
enabled = true
size = 4 # Light blur
passes = 1 # Single pass for performance
}
}
general {
border_size = 1 # Thin borders for definition
gaps_in = 3 # Small gaps for efficiency
gaps_out = 6
}
Advanced Configuration
Conditional Decorations
bash
# Different decorations based on workspace or application
# (This would require additional scripting)
# Example: Gaming workspace with minimal decorations
# workspace = 8, decoration:rounding:0, decoration:blur:false
Dynamic Opacity Based on Focus
bash
decoration {
active_opacity = 1.0 # Fully opaque when focused
inactive_opacity = 0.85 # More transparent when not focused
# Smooth transitions between states
dim_inactive = true
dim_strength = 0.15
}
Application-Specific Overrides
bash
# These would be in WindowRules.conf, but related to decorations:
# windowrule = opacity 1.0, class:^(games)$
# windowrule = noblur, class:^(terminal)$
# windowrule = rounding 0, class:^(fullscreen_app)$
Color Scheme Integration
Wallust Color Variables
The configuration uses color variables from wallust:
bash
# Available color variables (from wallust-hyprland.conf)
$color0 # Background (darkest)
$color1 # Red
$color2 # Green
$color3 # Yellow
$color4 # Blue
$color5 # Magenta
$color6 # Cyan
$color7 # Light gray
$color8 # Dark gray
$color9 # Bright red
$color10 # Bright green
$color11 # Bright yellow
$color12 # Bright blue
$color13 # Bright magenta
$color14 # Bright cyan
$color15 # Foreground (lightest)
Custom Color Overrides
bash
# Override wallust colors if needed
general {
col.active_border = rgb(89b4fa) # Custom blue
col.inactive_border = rgb(6c7086) # Custom gray
}
decoration {
shadow {
color = rgba(0, 0, 0, 0.5) # Custom shadow color
}
}
Performance Optimization
Low-End Hardware Settings
bash
decoration {
rounding = 0 # Disable rounding
shadow {
enabled = false # Disable shadows
}
blur {
enabled = false # Disable blur
}
dim_inactive = false # Disable dimming
}
Balanced Performance Settings
bash
decoration {
rounding = 5 # Light rounding
shadow {
enabled = false # Shadows are expensive
}
blur {
enabled = true
size = 3 # Small blur radius
passes = 1 # Single pass only
new_optimizations = true
}
}
High-End Hardware Settings
bash
decoration {
rounding = 12 # Smooth rounding
shadow {
enabled = true
range = 6
render_power = 3 # High quality shadows
}
blur {
enabled = true
size = 8 # Strong blur
passes = 3 # Multiple passes for quality
new_optimizations = true
}
}
Troubleshooting
Common Issues
Performance Problems
bash
# Reduce visual effects
decoration {
blur { enabled = false }
shadow { enabled = false }
rounding = 0
}
Visual Artifacts
bash
# Try different blur settings
decoration {
blur {
new_optimizations = false # Disable if causing issues
ignore_opacity = false # May help with artifacts
}
}
Color Issues
bash
# Check wallust integration
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
# Verify color variables are loaded
# Check if wallust has generated colors
ls -la ~/.config/hypr/wallust/
Debug Commands
bash
# Check current decoration settings
hyprctl getoption decoration:rounding
hyprctl getoption decoration:blur:enabled
hyprctl getoption general:gaps_in
# Test decoration changes
hyprctl keyword decoration:rounding 15
hyprctl keyword decoration:blur:enabled false
# Reload configuration
hyprctl reload
Validation
Test Visual Changes
bash
# Open multiple windows to test decorations
kitty &
firefox &
thunar &
# Check different window states
# - Active vs inactive
# - Floating vs tiled
# - Different workspaces
Performance Testing
bash
# Monitor system resources
htop
# Check GPU usage (if applicable)
nvidia-smi # For NVIDIA
radeontop # For AMD
# Test with different settings
# Compare performance with/without blur, shadows, etc.
Best Practices
Configuration Management
Backup Before Changes
bash
cp ~/.config/hypr/UserConfigs/UserDecorations.conf ~/.config/hypr/UserConfigs/UserDecorations.conf.backup
Incremental Testing
bash
# Change one setting at a time
# Test performance impact
# Document what works best for your hardware
Visual Consistency
Match System Theme
bash
# Ensure decorations complement wallpaper colors
# Use wallust integration for automatic color matching
# Test with different wallpapers
Consider Use Case
bash
# Gaming: Minimal decorations for performance
# Productivity: Balanced decorations for focus
# Media: Enhanced decorations for visual appeal
Performance Monitoring
Regular Performance Checks
bash
# Monitor CPU/GPU usage with different settings
# Test with typical workload
# Adjust based on hardware capabilities
Hardware-Specific Optimization
bash
# Integrated graphics: Minimal effects
# Dedicated GPU: Enhanced effects possible
# High refresh rate displays: Consider performance impact
This decoration configuration provides comprehensive control over the visual appearance of the HyprFlux desktop while maintaining integration with the dynamic theming system and allowing for performance optimization based on hardware capabilities.