Skip to content

Advanced Usage

Tobias Stoeckmann edited this page Jun 19, 2019 · 1 revision

Multi-monitor setup

Specifying outputs

Monitors are accessed through RandR, the successor of Xinerama. With RandR it is possible to directly address monitors independently of their index order. To get the required output names, simply call xrandr:

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 8192 x 8192
Virtual-1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   preferred     60.00 +
   1920x1200     59.88* 
   ...

In this example, the output Virtual-1 is connected and has a resolution of 1920x1200.

Specify the output with the command line option --output like this:

$ xwallpaper --output Virtual-1 --zoom file.jpg

Different modes on multi-monitor setups

It is possible to use different modes and input files for output devices. Simply prepend the output to the desired mode. Let's assume a setup in which I have two monitors, Virtual-1 and Virtual-2. In order to zoom file1.jpg on Virtual-1 and tile file2.jpg on Virtual-2, the command line looks like:

$ xwallpaper --output Virtual-1 --zoom file1.jpg --output Virtual-2 --tile file2.jpg

If you have previously used the command line tool xrandr, then this chaining of options should be familiar to you.

Using the whole screen (across all monitors)

If you want to specify an input file that should be used on the virtual screen which spans across all outputs, then disable RandR by using the command line option --no-randr. Specifying --no-randr implies that you cannot specify outputs through --output because in that case RandR would be required. This example would tile the input file file1.jpg across all screens, using the internal X server's logic to tile properly even after modifying the output's resolution:

$ xwallpaper --no-randr --tile file1.jpg