Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A dynamic video wallpaper engine for Wayland compositors, with priority support for Hyprland and niri. Compatible with Wallpaper Engine's video wallpaper parameters.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

YangYuS8/wayvid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

wayvid logo

wayvid

Animated wallpaper manager for Wayland

License Rust Version

Documentation โ€ข Releases

What it does

wayvid plays video files as animated wallpapers on Wayland compositors. v0.5 introduces a GUI-first design โ€” just open the app, pick a wallpaper, and apply.

Features:

  • ๐Ÿ–ผ๏ธ GUI wallpaper browser with thumbnails and search
  • ๐Ÿ–ฅ๏ธ Multi-monitor support with independent wallpapers per display
  • โšก Hardware accelerated decoding (VA-API/NVDEC via mpv)
  • ๐ŸŽฎ Steam Workshop import (video wallpapers)
  • ๐ŸŒˆ HDR support with tone-mapping
  • ๐Ÿ”ง CLI tools for scripting and automation
  • ๐Ÿ’พ Wallpaper persistence - restore wallpapers after restart
  • ๐Ÿ”‹ Power management - auto-pause on battery
  • ๐Ÿ“ฅ System tray - start minimized and run in background

Tested on: Hyprland, Niri

Should work on: Sway, River, and other wlr-layer-shell compositors

Demo

If the video doesn't play, click here to watch

Install

Arch Linux (AUR)

yay -S wayvid

Nix

# Direct run
nix run github:YangYuS8/wayvid

# Install to profile
nix profile install github:YangYuS8/wayvid

From source

git clone https://github.com/YangYuS8/wayvid.git
cd wayvid
cargo build --release

# Install using script (recommended)
./scripts/install.sh --user

# Or manual install
sudo install -Dm755 target/release/wayvid-gui /usr/local/bin/
sudo install -Dm755 target/release/wayvid-ctl /usr/local/bin/

Dependencies: libmpv, libEGL, libwayland-client

Usage

GUI (Recommended)

wayvid-gui

The GUI provides:

  • Wallpaper library browser with thumbnails
  • Monitor selection and preview
  • Settings configuration (autostart, power management)
  • Minimizes to system tray

CLI Control

# Apply wallpaper
wayvid-ctl apply ~/Videos/wallpaper.mp4
wayvid-ctl apply ~/Videos/wallpaper.mp4 --output DP-1

# Control playback
wayvid-ctl pause
wayvid-ctl resume
wayvid-ctl stop

# Check status
wayvid-ctl status
wayvid-ctl status --json

# List monitors
wayvid-ctl outputs

Autostart

The GUI includes autostart options in Settings:

  1. Start with system - Enable autostart
  2. Minimize to tray - Keep running in background
  3. Start minimized - Start directly to tray

With all three enabled, wayvid will:

  • Start automatically on login
  • Run in the background (tray icon)
  • Restore your wallpapers from last session

Alternative manual configuration:

# niri: ~/.config/niri/config.kdl
spawn-at-startup "wayvid-gui"
# hyprland: ~/.config/hypr/hyprland.conf
exec-once = wayvid-gui

systemd (optional):

systemctl --user enable --now wayvid

Configuration

Settings are managed through the GUI and saved automatically to:

~/.config/wayvid/settings.yaml

For advanced users, legacy config.yaml is still supported:

# ~/.config/wayvid/config.yaml
source:
  type: file
  path: ~/Videos/wallpaper.mp4
layout: fill
volume: 0

Multi-monitor

Use the GUI's Monitor tab, or configure per-output:

# ~/.config/wayvid/config.yaml
source:
  type: file
  path: ~/Videos/default.mp4

per_output:
  DP-1:
    source:
      type: file
      path: ~/Videos/left.mp4
  HDMI-A-1:
    source:
      type: file
      path: ~/Videos/right.mp4

Steam Workshop

Import video wallpapers from Wallpaper Engine through the GUI, or:

wayvid-ctl apply ~/.steam/steam/steamapps/workshop/content/431960/<id>/video.mp4

Note: Only video wallpapers are supported. Web/scene types require Wallpaper Engine.

Troubleshooting

Black screen:

mpv ~/Videos/wallpaper.mp4  # Test if video plays

High CPU:

# Enable hardware decode
hwdec: true

View logs:

journalctl --user -u wayvid -f

Project Structure

crates/
โ”œโ”€โ”€ wayvid-core     # Core types and configuration
โ”œโ”€โ”€ wayvid-engine   # Integrated playback engine (Wayland layer-shell + MPV)
โ”œโ”€โ”€ wayvid-library  # Wallpaper library (SQLite + thumbnails)
โ”œโ”€โ”€ wayvid-gui      # GUI application (iced framework + embedded engine)
โ””โ”€โ”€ wayvid-ctl      # CLI control tool

Architecture (v0.5)

wayvid v0.5 uses a single-process architecture:

  • The GUI (wayvid-gui) embeds the playback engine directly
  • No separate daemon process required
  • CLI tools communicate via IPC socket
  • Better resource management and simpler deployment
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         wayvid-gui                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  iced GUI   โ”‚โ”€โ”€โ”‚ PlaybackEngineโ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚         โ”‚                 โ”‚         โ”‚
โ”‚    IPC Server    Wayland Layer Shellโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚                 โ”‚
    wayvid-ctl         Compositor

Contributing

cargo build --release
cargo test --workspace
cargo clippy --workspace

License

MIT OR Apache-2.0

Acknowledgments

Built with mpv, wayland-rs, and iced.

About

A dynamic video wallpaper engine for Wayland compositors, with priority support for Hyprland and niri. Compatible with Wallpaper Engine's video wallpaper parameters.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Sponsor this project