Muro
Wallpaper for bare X11 and tiling window managers.
Introduction
In Esperanto muro
means wall
. The muro
app provides wallpapers for tiling
window managers. What is it good for in comparison to other packages?
-
It allows the use of any image without distortion as a background, not just
images of a specific size. If multiple screens with different resolutions or
orientations are connected, the wallpaper image will be fully displayed and
without distortion on all of them.
-
It decreases the contrast between a wallpaper image and its 'empty'
background. The background can be filled with either a blurred version of
the image itself or an average color of the image. This is especially useful
when transparency is enabled for terminal windows. With reduced contrast,
it is easier to work in a terminal window.
-
If a user wants to use a small image as tiles for wallpaper borders, it is
possible as well.
It also supports more traditional custom background color, and other fitting
options, like stretch
, fill
, center
, tile
.
It is quite performant and can comfortably deal with a hundred thousands of
images located in hundreds of subdirectories.
Prerequisites
Muro
depends on xargs
and feh
packages.
Installation
Download the latest release binary file, uncompress, and place the executable
muro
file somewhere in the PATH
.
Arch Linux AUR package
AUR package is located at https://aur.archlinux.org/packages/muro
. Install
it by hand, or with AUR helpers like yay
or pacaur
.
yay -S muro
# or
pacaur -S muro
Configuration
When muro
runs for the first time, it will create a configuration file,
usually at ~/.config/muro.yaml
. Edit this file to change default
options.
Usage
To use default settings.
muro
To get help
muro -h
To clear history.
muro -C
To change background for proportionally scaled images.
# blur image itself for the background
muro -b blur
# use average color of the image as a background
muro -b average
# use a default tile
muro -b tile
# provide a custom background image for tiling
muro -b -t /path/to/tile.png
# set a custom #AAFFAA background color
muro -b rgb --bg-color afa
muro -b rgb --bg-color aaffaa
By default images are picked recursively in a random order. There are several
options to change how images are selected.
## to pick just one image
muro -p ~/Pictures/wallpapers/img1.jpg
## to not do recursive selection
muro --not-recursive
## pick the next image using ascending or descending order
muro -s name
muro -s name-desc
To show the last image from cache.
muro -l
Setting up wallpaper for a window manager
Muro
sets wallpaper once and then exits. To change wallpaper regularly
run
muro -l
at the start of a window manager session, and set
muro
or muro -s name
as a cron job or systemctl --user
timer.
Here is an example of a systemd timer
Changing to a random point for wallpaper sequence
Running muro
command without flags would change a starting point to a random
image. If a cronjob or timer triggers muro -s name
command, the images will
continue in a sequence from this new "seed".
Use in a Go program
import (
"log"
muro "codeberg.org/dimus/muro/pkg"
"codeberg.org/dimus/muro/pkg/config"
)
func main() {
cfg := config.New(config.OptImgPath("~/Pictures/wallpapers1"))
mr := muro.New(cfg)
path, err := mr.GetImagePath()
if err != nil {
log.Fatal(err)
}
err = mr.WallpaperImage(path)
if err != nil {
log.Fatal(err)
}
}
Other wallpaper projects for X11 and Wayland
feh
swaybg
nitrogen
wallutils
License
The muro
project is released under the MIT license.