Phonto
phonto (/'fon.to/) — from Greek φόντο: background
GPU-accelerated video wallpaper program for Wayland compositors and macOS, written in Rust.
https://github.com/user-attachments/assets/efba2097-1bb9-46f4-ae45-8f8f67916992
On Linux, phonto plays videos as your desktop background with minimal overhead, decoding and rendering entirely on the GPU through GStreamer and EGL. On macOS it drives an AVPlayerLayer attached to a window sitting just below the system wallpaper level, so VideoToolbox handles decoding and CoreAnimation handles compositing.
Installation
Using cargo:
From source:
Dependencies
Linux (Wayland)
Phonto requires GStreamer and a VA-API GStreamer plugin for GPU-accelerated decoding. Without the VA-API plugin, GStreamer falls back to software decoding and CPU usage will be significantly higher.
Arch Linux:
Ubuntu/Debian:
Fedora:
macOS
No external dependencies. phonto links against system frameworks (AVFoundation, CoreMedia, AppKit, QuartzCore). Decoding goes through VideoToolbox automatically for codecs the OS supports (H.264, HEVC, ProRes, etc.).
Usage
Play a specific video:
Play a random wallpaper from your configured search paths:
Configuration
Phonto reads its config from $XDG_CONFIG_HOME/phonto/config.toml, falling back to ~/.config/phonto/config.toml.
search_paths
A list of directories to scan when using --rand. Each entry has a path and a depth controlling how many levels deep to search.
[[]]
= "/home/user/wallpapers"
= 1
[[]]
= "/mnt/media/videos"
= 2
depth = 0 scans only the top-level directory. depth = 1 includes one level of subdirectories, and so on.