NAME

X11::Wallpaper - set X11 wallpaper using best available helper program

VERSION

version 1.1

SYNOPSIS

use X11::Wallpaper qw(set_wallpaper);
set_wallpaper( "./foo.jpg", {
  mode => 'full',   # default, or: aspect, center, tile
  setter => 'feh',  # override setter
  display => ':0.0' # override X display
} );

my @cmd = set_wallaper_command(...); # just give me the command

DESCRIPTION

This module provides an interface for setting the background on X11 systems, by recruiting a suitable helper script (feh, Esetroot, hsetroot, chbg, xli etc.) and providing appropriate options.

METHODS

set_wallpaper($image_path, %args)

Sets $image_path as the desktop wallpaper. The following args are supported:

mode

May be 'full' (fullscreen, stretched to fit - the default), 'tile', 'center' (do not stretch) or 'aspect' (fullscreen, preserving aspect ratio). For the latter two options, the background for any borders around the image is set to black.

setter

Manually specify the program to use, e.g. 'qiv', provided it is in this module's dictionary of commands.

display

Override the X display to use, e.g. ':0.0'. Otherwise defaults to the value of the DISPLAY environment variable.

@cmd = set_wallpaper_command($image_path, %args)

As with set_wallpaper, except returns the command (as a list of arguments) instead of executing it.

CREDITS

Inspired by the awsetbg shell script by Julian Danjou, which in turn is derived from fbsetbg by Han Boetes.

TODO

Skip the middle man and code against the X11 libraries directly. But that wouldn't be quite as portable...

AUTHOR

Richard Harris <RJH@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Richard Harris.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.