Skip to content

spinualexandru/hyprsnow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hyprsnow

A snow overlay for Wayland/Hyprland. Snowflakes fall across your screen, land on window titlebars and the screen bottom, then melt away.

vid21.mp4

Note

This is a project made for fun and not tested for performance or battery usage.

Quickstart

cargo run

Installation

cargo build --release
cp target/release/hyprsnow ~/.local/bin/

OR

cargo install hyprsnow

OR

cargo install --path .

Usage

hyprsnow [OPTIONS]

Options

Option Description
--intensity <1-10> Snow intensity (default: 3)
--size-min <float> Minimum snowflake size in pixels (default: 2.0)
--size-max <float> Maximum snowflake size in pixels (default: 5.0)
--speed-min <float> Minimum fall speed in pixels/second (default: 30.0)
--speed-max <float> Maximum fall speed in pixels/second (default: 80.0)
--drift <float> Horizontal drift intensity, 0 = none, 30 = strong (default: 20.0)
--max-opacity <float> Maximum snowflake opacity, 0.0 = invisible, 1.0 = solid (default: 1.0)
--image-path <String[]> Optional list of image file paths used for rendering snowflakes. If not provided, or if the list is empty, default circular snowflakes will be used.

Configuration

Create ~/.config/hypr/hyprsnow.conf:

general {
    intensity = 5
    size_min = 2.0
    size_max = 5.0
    speed_min = 30.0
    speed_max = 80.0
    drift = 20.0
    max_opacity = 1.0
    image_path = "/path/to/snowflake/image.png"
    image_path = "/path/to/snowflake/image2.png"
}

Note: CLI arguments override config file values unless you changed the config after starting hyprsnow. Hotreload changes supercede CLI args.

Hyprland Integration

hyprsnow listens to Hyprland IPC events and updates window positions in real-time. Snowflakes will land on the top edge of your windows as you open, close, move, or resize them.

Dependencies

  • Hyprland
  • Rust