Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Paperview | 1,353 | 3 months ago | 15 | mit | C | |||||
A high performance X11 animated wallpaper setter | ||||||||||
Wallutils | 367 | 7 days ago | 4 | bsd-3-clause | Go | |||||
:city_sunset: Utilities for handling monitors, resolutions, wallpapers and timed wallpapers | ||||||||||
Desktop | 259 | 5 | 1 | 8 years ago | 6 | October 15, 2015 | 5 | mit | Ruby | |
A decent way to change your desktop image | ||||||||||
Hydrapaper | 116 | 5 years ago | 16 | gpl-3.0 | Python | |||||
A Gtk utility to set two different backgrounds for each monitor on GNOME (which lacks this feature) | ||||||||||
Bing Wallpaper Daily Mac Multimonitor | 107 | 2 | 3 months ago | 9 | February 23, 2023 | 2 | gpl-3.0 | Shell | ||
Bash Script for download and set Bing Daily Wallpaper on all monitors for macOS | ||||||||||
Interfacelift Downloader | 89 | 1 | a year ago | 9 | February 05, 2022 | 1 | mit | JavaScript | ||
:floppy_disk: InterfaceLIFT wallpaper auto-downloader. | ||||||||||
Activedesktopplus | 61 | 2 years ago | 3 | gpl-3.0 | C# | |||||
A simple app that lets you pin windows to your desktop and use fullscreen programs and videos as interactive wallpapers. | ||||||||||
Setroot | 43 | 7 months ago | 1 | gpl-3.0 | C | |||||
simple X background setter inspired by imlibsetroot and feh. | ||||||||||
Wallpaperchanger | 38 | 5 years ago | 1 | mit | C# | |||||
WallpaperChanger is a command line utility for changing the wallpaper (desktop background) in Windows. | ||||||||||
Livew | 34 | 4 years ago | 1 | mit | C | |||||
Live opengl wallpaper for linux i3 and KDE Plasma with support for Shadertoy |
xml2stw
utility..heic
extension) can be installed with heic-install
and used with lstimed
and settimed
. This extracts the metadata with heic2stw
(only timing information, not the azimuth and elevation for the sun, yet) and extracts the images with convert
that comes with ImageMagick.The Mojave timed wallpaper and other timed wallpapers can be set with the settimed
command, and will cross fade from image to image as the day progresses:
Note that some window managers makes it hard to achieve smooth switches of desktop backgrounds, while others makes it easy.
getdpi
, for retrieving the average DPI, for all monitors (use -b
to see the DPI both horizontally and vertically).lscollection
, for listing installed wallpaper collections (use -l
for also listing paths and collection names).timedinfo
, for showing more information about installed timed wallpapers.lsmon
lists the connected monitors and resolutions that are discovered by the current WM/DE (use -d
for also listing DPI).lstimed
for listing installed timed wallpapers (use -l
for also listing paths).lswallpaper
, for listing all installed wallpapers (use -l
and -s
to list more information).setcollection
, for setting a suitable (in terms of resolution) wallpaper from a wallpaper collection.setrandom
, for setting a random wallpaper.settimed
, for setting timed wallpapers (will continue to run, to handle time events). (This utility has recently been refactored and needs more testing).setwallpaper
can be used for setting a wallpaper (works both over X and the Wayland protocol).wayinfo
shows detailed information about the connected monitors, via Wayland.xinfo
shows detailed information about the current X setup.xml2stw
for converting GNOME timed wallpapers to the Simple Timed Wallpaper format.heic2stw
for extracting the timing information from macOS dynamic wallpapers (.heic
files) to the Simple Timed Wallpaper format.vram
for finding the minimum amount of VRAM available for non-integrated GPUs (use -l
to list the bus ID, a description and available VRAM for each GPU).heic-install
for installing a macOS dynamic wallpaper to /usr/share/backgrounds
using both ImageMagick convert
and heic2stw
.lsmon
utility$ lsmon
0: 1920x1200
1: 1920x1200
2: 1920x1200
wallutils
pacman -S wallutils
With sudo, or as root, install the required dependencies:
sudo dnf update
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install git golang ImageMagick libXcursor-devel libXmu-devel xorg-x11-xbitmaps libheif-devel wayland-devel
As a user, clone the repository and build the utilities:
git clone https://github.com/xyproto/wallutils
cd wallutils
make
Then with sudo, or as root, install the utilities:
sudo make PREFIX=/usr/local install
With sudo, or as root, install the required dependencies:
sudo apt install git golang imagemagick libx11-dev libxcursor-dev libxmu-dev libwayland-dev libxpm-dev xbitmaps libxmu-headers libheif-dev make
As a user, clone the repository and build the utilities:
git clone https://github.com/xyproto/wallutils
cd wallutils
make
Then with sudo, or as root, install the utilities:
sudo make PREFIX=/usr/local install
Hopefully an official package will become available in the future.
Using Go 1.17 or later, install ie. the getdpi
utility:
go install github.com/xyproto/wallutils/cmd/[email protected]
The packages related to X can be removed after building if you only wish to keep the Wayland-related functionality. And the same for X.
settimed
settimed mojave-timed
setwallpaper
setwallpaper /path/to/background/image.png
setrandom
setrandom /usr/share/pixmaps
package main
import (
"fmt"
"os"
"github.com/xyproto/wallutils"
)
func main() {
// Retrieve a slice of Monitor structs, or exit with an error
monitors, err := wallutils.Monitors()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
// For every monitor, output the ID, width and height
for _, monitor := range monitors {
fmt.Printf("%d: %dx%d\n", monitor.ID, monitor.Width, monitor.Height)
}
}
fmt.Println("Setting background image to: " + imageFilename)
if err := wallutils.SetWallpaper(imageFilename); err != nil {
return err
}
libheif
for heic2stw
and heic-install
.libwayland-client.so
, for Wayland support.libX11.so
, for X support.libheif.so
for HEIF/.heic
image support.It is also possible to build with make static
, to only build the utilities that does not depend on any of the above .so
files, as statically compiled ELF executables.
swaybg
and pkill
for Wayland-based window managers like Labwc
.The vram
utility depends on lspci
(from pciutils
) and also nvidia-smi
for NVIDIA GPUs.
The XML format from GNOME for specifying wallpaper collections is not yet supported (and I'm not sure if it's needed). Creating a directory with images where the filename of the images specify the resolution (like wallpaper_5639x3561.jpg
) is enough for lscollection
to recognize it as a collection (if the directory is placed in /usr/share/backgrounds
or /usr/share/wallpapers
).
Send the USR1
signal to the settimed
process:
pkill settimed -USR1
This should refresh the wallpaper.
i3
, it works best with also having feh
and imlib2
installed.