Work In Progress
This project is currently under active development. Features may be incomplete or subject to change.
A desktop wallpaper manager built with Rust and Iced, designed for Wayland/Hyprland environments.
- Repository: https://github.com/asce4s/wallity-iced
- Releases: https://github.com/asce4s/wallity-iced/releases
- Issues: https://github.com/asce4s/wallity-iced/issues
This application is specifically designed for:
- Wayland compositors
- Browse and manage wallpapers
- Virtual scrolling for performance
- Keyboard navigation support
- Thumbnail generation and caching
- Config file support
- Language: Rust (Edition 2024)
- UI: Iced 0.14 (
wgpu+imagefeatures) - Image Processing:
image - Parallel Processing:
rayon - Configuration:
serde+toml+once_cell
Install the latest git version using your preferred AUR helper:
# Using paru
paru -S wallity-git
# Using yay
yay -S wallity-git
# Manually with makepkg
git clone https://aur.archlinux.org/wallity-git.git
cd wallity-git
makepkg -si-
Clone the repository:
git clone https://github.com/asce4s/wallity-iced.git cd wallity-iced -
Build the application:
cargo build --release
-
The built binary will be available at:
target/release/wallity
-
(Optional) Copy the binary to your PATH:
sudo cp target/release/wallity /usr/local/bin/
- Linux with Wayland compositor (tested with Hyprland)
- One of the following wallpaper setters:
hyprpaperswww- Any other tool that can read from a file path
-
Create the config directory:
mkdir -p ~/.config/wallity -
(Optional) Create a config file
~/.config/wallity/wallity.tomlwith your settings (see Configuration section below) -
Ensure you have wallpapers in
~/Pictures/wallpapersor configure a custom path in the config file
- Rust (with
cargo)
cargo runcargo build --releaseThe application reads configuration from ~/.config/wallity/wallity.toml. If the file does not exist, default values are used.
~/.config/wallity/wallity.toml
Create or edit the config file with the following options:
# Path to the directory containing wallpapers
# Default: ~/Pictures/wallpapers
wallpaper_path = "~/Pictures/wallpapers"
# Path where the current wallpaper symlink will be created
# This symlink points to the currently selected wallpaper
# Default: ~/.config/wallity/.current_wallpaper
current_wallpaper = "~/.config/wallity/.current_wallpaper"
# Script to execute after setting a wallpaper
# For Hyprland, you might use:
# hyprctl hyprpaper wallpaper "eDP-1,~/.config/wallity/.current_wallpaper"
# Default: "" (empty)
post_script = ""
# Directory where thumbnail cache is stored
# Default: ~/.cache/wallity/thumbnails
cache_path = "~/.cache/wallity/thumbnails"wallpaper_path = "~/Pictures/wallpapers"
current_wallpaper = "~/.config/wallity/.current_wallpaper"
post_script = "hyprctl hyprpaper wallpaper 'eDP-1,~/.config/wallity/.current_wallpaper'"
cache_path = "~/.cache/wallity/thumbnails"wallpaper_path = "~/Pictures/wallpapers"
current_wallpaper = "~/.config/wallity/.current_wallpaper"
post_script = "swww img ~/.config/wallity/.current_wallpaper"
cache_path = "~/.cache/wallity/thumbnails"- All paths support tilde (
~) expansion - The
post_scriptis executed after the wallpaper symlink is created - The config and cache directories are created automatically if needed
This project is open source and available under the MIT License.