A lightweight, high-performance wallpaper selection menu for Hyprland and other Wayland compositors. Swifty provides a smooth interface to preview and apply wallpapers instantly.
⚙️ Built with C++ and Qt. Inspired by the original logic found in RyuZinOh's dotfiles.
- 🖼️ Visual Previews: Smooth, scrollable row of wallpaper thumbnails.
- ⚡ Instant Apply: Apply wallpapers with a single click.
- 🛠️ Customizable Backend: Fully configurable arguments for tools like
swww. - ⚙️ Dynamic Configuration: Dedicated config file for paths and commands.
- 🧩 Wayland Native: Lightweight and fast, designed specifically for modern compositors.
preview.mp4
Swifty automatically creates a configuration file at:
~/.config/swifty/swifty.conf
The config uses a simple key = "value" format.
| Key | Description | Default |
|---|---|---|
backend |
The wallpaper daemon command | "swww" |
dir |
Path to your wallpaper folder | "~/Pictures/Wallpapers/" |
arguments |
Custom flags for the backend | See example below |
backend = "swww"
dir = "~/Pictures/Wallpapers/"
# Use WALLPATH as a placeholder for the selected file
arguments = "img" << "WALLPATH" << "--transition-type" << "wipe" << "--transition-duration" << "1.5"Swifty expects all wallpapers to be stored in here by default:
~/Pictures/WallpapersYou can later change the directory path in swifty.conf file.
git clone https://github.com/saber-88/swifty.git
cd swifty
make
./swiftyAdd this to your hyprland.conf
bind = $mainMod+Shift, S, exec, pkill -x swifty || <path/to/swifty-binary>Make sure you add
pkill -x swiftyotherwise the swifty will always run as background process. You will also need to set windowrules as per your prefrence.
Add this to your hyprland.conf
windowrule = pin on, match:class swifty
windowrule = float on, match:class swifty
windowrule = move (monitor_w*0.055) (monitor_h-220), match:class swiftyOriginal work by RyuZinOh
Additional Tweaks by Karmveer