A simple and modern wallpaper manager for Linux. Supports both static (JPG, PNG, WebP, etc.) and live wallpapers (video/GIF) with a clean Qt5 GUI.
- 🖼️ Static wallpapers – apply images instantly using
feh --bg-fill - 🎥 Live wallpapers – play video/GIF wallpapers via a custom script (
hy.sh) - 📂 Folder browsing – add a folder and all supported media files appear sorted by name
- 🔄 Real‑time update – folder changes (file added/deleted) are reflected immediately
- 🧹 Stop live wallpaper – one button to kill running
xwinwrap/mpvprocesses - 🗂️ History – remembers the last used folder
- 🖱️ Context menu – right‑click to apply or delete a wallpaper file
- 🌐 Localization – English & Indonesian (more can be added)
- 📦 Embedded translations – no extra files needed at runtime
- 💻 Easy install/uninstall – CMake build system with
make install&make uninstall
- Qt5 – Widgets module
- feh – for setting static wallpapers
- mpv – for video/GIF live wallpapers
- xwinwrap – to embed mpv on the desktop background (live wallpaper)
- lrelease (optional, from
qt5-toolsorqttools5-dev-tools) – to compile translations
Arch Linux
sudo pacman -S qt5-base feh mpv xwinwrap qt5-toolsDebian / Ubuntu
sudo apt install qtbase5-dev qttools5-dev-tools feh mpv xwinwrapNote: xwinwrap may need to be built from source on some distributions. If you don't need live wallpapers, you can still use Walper for static images (just ignore the script).
git clone https://github.com/sdqfrmnsyh//walper.git
cd walper
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local
make
make installAfter installation:
- Binary: ~/.local/bin/walper
- Desktop entry: ~/.local/share/applications/walper.desktop
- Live wallpaper script: ~/.config/walper/hy.sh
- History file: ~/.config/walper/history (auto‑created on first run)
Make sure ~/.local/bin is in your PATH. Restart your desktop environment if you want the application menu entry to appear.
Launch the application:
walperor from your desktop menu (Walper).
- Click Tambah Folder (Add Folder).
- In the dialog, double‑click a folder to select it quickly.
- All supported image and video files will appear in the list.
- Static image – select a .jpg, .png, .webp… and press Terapkan Wallpaper (Apply Wallpaper) or right‑click → Terapkan.
- Live wallpaper – select a video/GIF file and press Terapkan Wallpaper. The default script ~/.config/walper/hy.sh will be executed with the file path as argument.
- To stop a running live wallpaper, click Hentikan Live Wallpaper (Stop Live Wallpaper).
Edit ~/.config/walper/hy.sh. The first argument $1 is the full path to the selected video/GIF. Example script:
#!/bin/bash
WALLPAPER="$1"
if [ -z "$WALLPAPER" ]; then exit 1; fi
# Hentikan proses sebelumnya
pkill -f "xwinwrap.*mpv" 2>/dev/null
# Jalankan wallpaper
xwinwrap -fs -ni -b -nf -un -ov -fdt -- mpv -wid %WID --loop-file=inf --no-audio --no-config --profile=fast --vo=gpu --gpu-context=x11 --hwdec=no --interpolation=no --scale=bilinear --cscale=bilinear --vd-lavc-threads=1 --cache=no --no-sub --no-osc --no-osd-bar --really-quiet "$WALLPAPER" &Make the script executable: chmod +x ~/.config/walper/hy.sh.
By default Walper uses your system locale:
- If your locale is Indonesian (id_ID), the interface appears in Indonesian.
- Otherwise it falls back to English.
You can force English by running:
LANGUAGE=en walperRun from the build directory:
cd walper/build
make uninstallThis removes the binary, desktop entry, and hy.sh. To also delete the configuration folder (history, etc.):
rm -rf ~/.config/walperBuilding from source (without installing)
cd walper
mkdir build && cd build
cmake ..
make
./walperPull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Enjoy your beautiful desktop! 🌄