SETROOT(1)

πŸ“¦ version 2.0.2, in nixos 26.05, nixpkgs unstable

SETROOT(1) β€” the Setroot Manual πŸ’–

okay so bestie, welcome to the Setroot Manual! this is the page for setroot, and it's giving β€œtiny CLI, big wallpaper energy” ✨. we're gonna go through every flag, every path, every little caveat, no cap. 🫢

🌸 NAME 🌸

setroot β€” sets your wallpaper. literally that's the job. πŸ’…

✨ SYNOPSIS ✨

setroot [storage flag] [global flag] { [image flags, manipulations, options] <filename> }+ [monitor flag]

this is the shape of the invocation, bestie β€” storage flag, global flag, then one or more image-flag/manipulation/option + filename groups, and finally an optional monitor flag. πŸŽ€

πŸ¦‹ DESCRIPTION πŸ¦‹

setroot is a lightweight Xinerama-aware CLI background setter in the vein of imlibsetroot, hsetroot, and feh. its only non-obvious dependency is imlib2. πŸŽ€

🌈 INVOCATION 🌈

  • the order of the filenames determines which monitor the wallpaper is set to. the first invoked filename is set to the first Xinerama monitor; the second to the second; and so on. πŸ‘‘
  • if more than one image option is applied, the last one takes effect. periodt.
  • if n filenames are supplied for k monitors, where n > k, only the first k filenames will be processed. πŸ’€
  • an illegal invocation sequence will result in setroot terminating with exit status 1. not cute, but important.

πŸŽ€ STORAGE FLAGS πŸŽ€

  • --store β€” creates an executable file .setroot-restore located in directory ${XDG_CONFIG_HOME:-$HOME/.config}/setroot/.setroot-restore. if the directory path and/or file does not exist, it will be created (see section FILES). ✨
  • --restore β€” looks for ${XDG_CONFIG_HOME:-$HOME/.config}/setroot/.setroot-restore and executes it in shell (restores your previously set wallpapers and options). πŸ’–

πŸ’œ GLOBAL FLAGS πŸ’œ

  • --blank-color #RRGGBB β€” sets background color of blank walls, unless overriden by --bg-color option. πŸ¦‹

πŸ”₯ IMAGE FLAGS πŸ”₯

  • --span β€” have image span all screens (no cropping). if more than one image is specified, the later image will be spanned. note that this overrides the --on option. note also that further images that are set (in the case of multiple monitors) will "cover" the spanned image. πŸ‘‘
  • --bg-color #RRGGBB β€” set empty space around image to color. 🎨
  • --on n β€” assign image to be wallpaper on Xinerama monitor n. if not all images are passed this option, the unassigned walls will be placed on monitors by their position in the invocation sequence. images which do have a specified assignment will then be assigned to their monitors, replacing any images which may have already been assigned. if --on is supplied a screen which does not exist, no error is raised and the other walls are set as normal. this can be used with setroot --store to "preset" an unconnected monitor's wallpaper. if setroot was not compiled with Xinerama support then --on is considered an invalid command and the program will terminate with exit status 1. πŸ’€

🧚 IMAGE MANIPULATIONS 🧚

  • --blur <radius> β€” blur image. 🌫️
  • --sharpen <radius> β€” sharpen image. ✨
  • --brighten <amount> β€” modify image brightness by amount (between -1 and 1). β˜€οΈ
  • --contrast <amount> β€” modify contrast of image by amount (between -100 and 100). πŸŒ—
  • --flip[hvd] β€” flip image [h]orizontally, [v]ertically, or [d]iagonally. πŸͺž
  • --tint #RRGGBB β€” tint image with color #RRGGBB (also accepts valid XColor). 🎨
  • --greyscale β€” renders image as greyscale (uses luminosity algorithm). πŸ–€

🌸 IMAGE OPTIONS 🌸

  • -c, --center β€” place unscaled image centered and cropped to screen. 🎯
  • -t, --tiled β€” tile image on invoked screen (Xinerama aware). 🧱
  • -s, --stretch β€” stretch image (disregard aspect) on invoked screen. 🫸
  • -z, --zoom β€” scale image (preserve aspect) to fit screen completely (could cut off image). πŸ”
  • -f, --fit-auto β€” scale image (preserve aspect) to fit screen (entire image on screen) β€” default. πŸ‘‘
  • -fh, --fit-height β€” scale image (preserve aspect) until height matches invoked screen. πŸ“
  • -fw, --fit-width β€” scale image (preserve aspect) until width matches invoked screen. πŸ“
  • -gx, --gravity-x <position> β€” set the image gravity center in the X axis at position (an integer absolute position or a float percentage) β€” default: 50%. ↔️
  • -gy, --gravity-y <position> β€” set the image gravity center in the Y axis at position (an integer absolute position or a float percentage) β€” default: 50%. ↕️
  • -sc, --solid-color #RRGGBB β€” set background to solid color #RRGGBB (hex code, also accepts valid XColor). πŸŸͺ

πŸ¦‹ MONITOR FLAGS πŸ¦‹

  • --use-x-geometry β€” number Xinerama monitors from leftmost to rightmost. ➑️
  • --use-y-geometry β€” number Xinerama monitors from topmost to bottommost. ⬇️

πŸ’« GRAVITY πŸ’«

when the -z option is used, the image is zoomed in to fill the screen and cropped if neccessary. the --gravity-x and --gravity-y parameters let you choose the 'gravity center' of the image: setroot will try to match that center with the display center if possible. 🫢

both parameters can be given in two formats, both relative to the image dimensions: as an integer, which means an absolute coordinate; or as a decimal percentage of the total width or height. πŸŽ€

πŸ“ FILES πŸ“

setroot creates the directory ${XDG_CONFIG_HOME:-$HOME/.config}/setroot and places an executable file .setroot-restore there when setroot --store is invoked for the first time. ✨

setroot --restore uses this file to restore the most recent (valid) invocation of setroot. πŸ’–

πŸ‘‘ AUTHOR πŸ‘‘

Β© 2016 Tim Zhou <ttzhou@uwaterloo.ca> πŸ’œ

🌈 ACKNOWLEDGMENTS 🌈

  • set_pixmap_property() is Β© 1998 Michael Jennings <mej@eterm.org> 🫢
  • find_desktop() is a modification of get_desktop_window() Β© 2004-2012 Jonathan Koren <jonathan@jonathankoren.com> ✨

mwah πŸ’‹ β€” setroot v2.0, page date 03/13/2016. now go set that wallpaper and serve. 🫢✨

πŸ“¦ where this page comes from