Skip to content

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.

Released under the MIT License.