wallflow

Crates.iowallflow
lib.rswallflow
version0.3.6
created_at2025-12-08 08:08:28.085422+00
updated_at2025-12-17 02:32:48.434573+00
descriptionElegant wallpaper management with smooth transitions, powered by awww
homepage
repositoryhttps://github.com/MKSG-MugunthKumar/wallflow
max_upload_size
id1972942
size430,741
Mugunth Kumar (MK) (MKSG-MugunthKumar)

documentation

README

wallflow

Elegant wallpaper management with smooth transitions

A modern, Rust-based wallpaper manager that brings fluidity to your Linux desktop with multiple sources, smooth transitions, and dynamic color schemes.

About This Project

This is my first Rust project. I decided to learn Rust by building something I'd actually use daily. wallflow started as a learning exercise and evolved into a reasonably decent wallpaper manager. While toying around with hyprland, I used awww for smooth transitions and loved it. So I decided to do something like variety, but powered by aww so you have smooth transitions. KWin in KDE support wlr-layer-shell, and awww works perfectly. Sorry, GNOME.

Thus, wallflow was born.

The codebase reflects this journey and that means, it is not perfect. Use it at your own risk. But hey, it's open source! Feel free to contribute and help me improve it.

Features

  • Multiple Wallpaper Sources

  • Smart Features

    • Built-in daemon for automatic wallpaper rotation
    • Smooth animated transitions (via awww)
    • Auto-resolution detection (xrandr, sway, wlr-randr)
    • Optional pywal integration for dynamic color schemes
    • Self-update capability
  • Desktop Support

    • Hyprland, Sway, and other wlroots compositors
    • KDE Plasma (KWin supports wlr-layer-shell)
    • X11 (feh, nitrogen)

Installation

From crates.io

cargo install wallflow

Pre-built Binaries

Download from GitHub Releases:

# Download and install
chmod +x wallflow-x86_64-unknown-linux-gnu
mv wallflow-x86_64-unknown-linux-gnu ~/.local/bin/wallflow

Fedora (COPR)

sudo dnf copr enable uproar9991/wallflow
sudo dnf install wallflow

From Source

git clone https://github.com/MKSG-MugunthKumar/wallflow
cd wallflow
cargo build --release
cp target/release/wallflow ~/.local/bin/

Quick Start

# Set wallpaper from local collection
wallflow local

# Download from online sources
wallflow wallhaven nature mountains
wallflow reddit earthporn
wallflow unsplash architecture
wallflow bing
wallflow apod
wallflow earthview

# Run as daemon (auto-rotate)
wallflow daemon

# Run daemon in foreground (for testing)
wallflow daemon --foreground

# Check for updates
wallflow update --check

Configuration

Configuration file: ~/.config/wallflow/config.yml Create it by copying the example:

mkdir -p ~/.config/wallflow
cp config.example.yml ~/.config/wallflow/config.yml

See config.example.yml for all options.

Updating

wallflow can update itself:

# Check for updates
wallflow update --check

# Download and install update
wallflow update

Note: Self-update is disabled for package manager installations (dnf, apt). Use your package manager instead.

Contributing

Contributions are welcome! This is a learning project, so:

  • Beginners: Your PRs are welcome. We all start somewhere.
  • Experts: Help improve the code quality and teach better patterns.

See CONTRIBUTING.md for guidelines.

Roadmap

See TODO.md for planned features including:

  • Interactive TUI wallpaper browser
  • Vim-style keybindings
  • Collection management and tagging
  • Multi-monitor support
  • Plugin system

License

MIT - See LICENSE

Acknowledgments

  • awww - Smooth wallpaper transitions
  • pywal - Color scheme generation
  • ratatui - TUI framework (not yet)
  • The Rust community for excellent documentation and crates
Commit count: 0

cargo fmt