# setxdmbg

Sébastien Ballet
`<slacker6896 at gmail dot com>`
June 26, 2019

SYNOPSIS

    setxdmbg --help
    setxdmbg --image <path> [OPTION]...

DESCRIPTION

setxdmbg is a command line tool to generate and set XDM display manager background image.

OPTION

`-h`|`--help`

  Prints this help page.

`-i`|`--image` `<path>`

  Full path to the source image used to generate the XDM background image.

`-l`|`--log` `[<path>]`

  Full path to the file in which setxdmbg must log its activity. Default to `/dev/stdout` when <path> is not specified.

`-p`|`--physical-screen` `<screen>`

  Displays the XDM background image on a given physical screen only.

  <screen> can be any existing output supported by `xrandr` (ex. `VGA-1`, `HDMI-0`, `DVI-D-0`,…) or the keyword primary to select the primary screen.

`-T`|`--top-border` `<height>[:<color>]`

  Defines the height, and optionally the color, of the border at the top of the XDM background image.

  `<color>` can be any color supported by the imagemagick primitive `-fill` (ex: `red`, `#ddddff`, `rgb(255,255,255)`,`none`,…). When `<color>` is not specified, default to `black`.

`-B`|`--bottom-border` `<height>[:<color>]`

  Defines the height, and optionally the color, of the border at the bottom of the XDM background image.

  `<color>` can be any color supported by the imagemagick primitive `-fill` (ex: `red`, `#ddddff`, `rgb(255,255,255)`,`none`,…). When `<color>` is not specified, default to `black`.

`-x`|`--extra-image-op` `<image-op>`

  Adds <op> to the list of extra image operator to apply to the source image to generate the XDM background image. The following `imagemagick` operators are supported :

  - -adaptive-blur <radius[xSigma]>

  - -adaptive-sharpen <radius[xSigma]>

  - -auto-gamma

  - -black-threshold <value[%]>

  - -blue-shift <factor>

  - -blur <radius[xSigma]>

  - -brightness-contrast <B[xC][%]>

  - -charcoal <factor>

  - -colorize <percent>

  - -fill <color>

  - -contrast

  - -contrast-stretch <BP[xWP][%]>

  - -emboss <radius>

  - -enhance

  - -fft

  - -flip

  - -flop

  - -gaussian-blur <radius[xSigma]>

  - -grayscale <method>

  - -monochrome

  - -negate

  - +noise <type>

  - -ordered-dither <map[,level…]>

  - -paint <radius>

  - -posterize <levels>

  - -radial-blur <angle>

  - -raise <thickness>

  - +raise <thickness>

  - -sharpen <radius[xSigma]>

  - -sketch <radius[xSigma[+angle]]>

  - -solarize <percent-threshold>

  - -tint <value>

  Attention, extra image operators can be time consuming the first time the XDM background image is generated.

  Note that `-fill`, which is not an operator, is required by operators `-colorize` and `-tint`, and thus, the use of one of these operators requires to pass the argument `--extra-image-op` twice like in example below :

          $ setxdmbg -i /path/to/image.jpg -T 32 -B 32  \
                     -x -fill red \
                     -x -colorize 20

  For more about image operators supported by `setxdmbg`, read this page.

DIRECTORIES and FILES

`/var/cache/setxdmbg`

  Cache directory used to store the latest XDM background image and its configuration.

`~/.setxdmbg`

  Cache directory used to store the latest XDM background image and its configuration when `setxdmbg` is run by a normal user. This is to allow any user to test `setxdmbg` without to have to run XDM.

`xdm.<XDISP>.pixmap`

  The latest generated XDM background image . Stored in the setxdmbg’s cache directory.

  XDISP is the X server display name, without field screennumber, and to XDM resource name format, that is, with underscores in place of dots and colons.

  For instance the value of XDISP in case of X server display name `:0` is "`_0`". it is "`_1`" in case of X server display name `:1`, it is "`com_foo_bar_0`" in case of X server display name `com.foo.bar:0`.

`xdm.<XDISP>.pixmap.inf`

  Contains information on the latest generated XDM background image.

  These information are internally used to prevent re-generation of the same image when `setxdmbg` is run repeatedly with the same configuration (ie. same image source, same targeted screen, same border height, operator-ops,…)

  XDISP is the X server display name, without field screennumber, and to XDM resource name format, that is, with underscores in place of dots and colons.

  For instance the value of XDISP in case of X server display name `:0` is "`_0`". it is "`_1`" in case of X server display name `:1`, it is "`com_foo_bar_0`" in case of X server display name `com.foo.bar:0`.

EXAMPLES

- Set image on primary screen only

        $ setxdmbg --image /usr/share/wallpapers/xdm.jpg \
                   --physical-screen primary \
                   --top-border 16 \
                   --bottom-border 32

- Set image with blur effect

        $ setxdmbg --image /usr/share/wallpapers/xdm.jpg \
                   --top-border 16 \
                   --extra-image-op blur 16x4

- Set image with paint effect and gaussian noise

        $ setxdmbg --image /usr/share/wallpapers/xdm.jpg \
                   --bottom-border 16 \
                   --extra-image-op -paint 4 \
                   --extra-image-op +noise Gaussian