Motion-Wallpaper-Omarchy/README.md
28allday 4c2b5052e3 Add detailed comments to script and comprehensive README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 11:29:19 +00:00

153 lines
4.3 KiB
Markdown

# Motion Wallpaper - Omarchy
Animated video wallpapers for [Omarchy](https://omarchy.com) (Arch Linux + Hyprland).
Uses [mpvpaper](https://github.com/GhostNaN/mpvpaper) to play any video file as your desktop wallpaper, with a simple toggle to switch between video and your normal static wallpaper.
## Quick Start
```bash
git clone https://github.com/28allday/Motion-Wallpaper-Omarchy.git
cd Motion-Wallpaper-Omarchy
chmod +x wallpaper.sh
./wallpaper.sh
```
The installer handles all dependencies automatically.
## Requirements
- **OS**: [Omarchy](https://omarchy.com) (Arch Linux)
- **Compositor**: Hyprland
- **AUR Helper**: yay or paru (for mpvpaper)
## What It Installs
### Packages
| Package | Source | Purpose |
|---------|--------|---------|
| `mpv` | Official repos | Video player engine (decodes and renders video) |
| `jq` | Official repos | Parses monitor info from Hyprland |
| `zenity` | Official repos | GUI dialogs (file picker, confirmations) |
| `mpvpaper` | AUR | Wayland wallpaper daemon that uses mpv as its backend |
### Files Created
| Path | Purpose |
|------|---------|
| `~/.local/bin/motion-wallpaper-toggle` | Toggle script (on/off switch) |
| `~/.local/share/applications/motion-wallpaper-toggle.desktop` | App launcher entry |
## Usage
### From App Launcher
Search for **"Motion Wallpaper"** in Walker or your app launcher.
### From Terminal
```bash
motion-wallpaper-toggle
```
### With a Keybind
Add this to `~/.config/hypr/bindings.conf`:
```
bind = SUPER ALT, W, exec, ~/.local/bin/motion-wallpaper-toggle
```
> **Note**: `SUPER+W` is already bound to "Close window" in Omarchy. Use `SUPER ALT+W` or another free combination.
## How It Works
The toggle script works as an on/off switch:
### Toggle ON (no video wallpaper running)
1. Detects your connected monitors via `hyprctl monitors -j`
2. If multiple monitors, shows a selection dialog
3. Opens a file picker to choose a video file
4. Stops `hyprpaper` and `swaybg` (Omarchy's default wallpaper daemons) so mpvpaper is visible
5. Starts `mpvpaper` in the background with GPU-accelerated looping playback
### Toggle OFF (video wallpaper is running)
1. Shows a confirmation dialog
2. Stops `mpvpaper`
3. Restarts `hyprpaper` to restore your normal static wallpaper
## Supported Video Formats
Any format mpv supports, including:
- `.mp4` (H.264, H.265)
- `.mkv` (Matroska)
- `.webm` (VP9, AV1)
- `.mov` (QuickTime)
- `.avi`
## Finding Video Wallpapers
Search for "live wallpaper" or "motion desktop" videos. Good sources include:
- YouTube (download with `yt-dlp`)
- [Wallpaper Engine](https://store.steampowered.com/app/431960/Wallpaper_Engine/) workshop (some can be extracted)
- Free stock video sites (Pexels, Pixabay)
**Tips for best results:**
- Match your monitor resolution (e.g. 3840x2160 for 4K)
- Seamless loops look best (no visible cut at the loop point)
- Shorter videos (10-30 seconds) use less memory
- H.264 `.mp4` has the best hardware decode support
## Performance
mpvpaper uses GPU-accelerated rendering (`--vo=gpu`) so CPU usage is minimal. However:
- Video decoding does use some GPU resources
- Higher resolution videos use more VRAM
- If you notice performance impact in games, toggle the wallpaper off first
## Troubleshooting
**Video wallpaper doesn't appear / shows black**
- Make sure hyprpaper and swaybg are not running: `pgrep hyprpaper && pkill hyprpaper`
- Try a different video file to rule out codec issues
**File picker doesn't open**
- Check zenity is installed: `pacman -Qi zenity`
**"No monitors detected" error**
- Make sure you're running Hyprland: `echo $XDG_CURRENT_DESKTOP`
- Check hyprctl works: `hyprctl monitors`
**Normal wallpaper doesn't come back after toggling off**
- Manually restart hyprpaper: `hyprctl dispatch exec hyprpaper`
## Uninstalling
```bash
# Remove the toggle script
rm -f ~/.local/bin/motion-wallpaper-toggle
# Remove the app launcher entry
rm -f ~/.local/share/applications/motion-wallpaper-toggle.desktop
# Optionally remove packages
sudo pacman -Rns mpvpaper zenity
```
## Credits
- [Omarchy](https://omarchy.com) - The Arch Linux distribution this was built for
- [mpvpaper](https://github.com/GhostNaN/mpvpaper) - Wayland video wallpaper daemon
- [mpv](https://mpv.io/) - The video player engine
- [Hyprland](https://hyprland.org/) - Wayland compositor
## License
This project is provided as-is for the Omarchy community.