Multiple screen wallpaper in Linux?

8

1

How can I wallpaper multiple monitors in Linux in an automated way?

Basically how I normally do it is open up GIMP, and then grab several images and composite it together into a single large image that would span all monitors. This approach works, but it can be time consuming so I am wondering if there exists an application that can take care of this?

Some features that I would be interested in:

  1. Can resize a single image to cover both monitor for example.
  2. Different way of resizing the image, such as keeping the aspect ratio or not
  3. Composite more than 1 image together so that one screen will display one image and the other screen will display another image
  4. I'm using xinerama (Really Nvidia Twinview)
  5. Have the ability to do some basic modification to the image such as:

    • Crop one or the other image so that the whole image will fill the screen
    • Ability to move the image around so it can get aligned
    • Would be nice to be able to scale each image separately

I've done some searching and in general what I found was:

  1. Single image as wallpaper stretched cross two screen
  2. Two image, one for each screen but no ability to modify the image/etc
  3. Couple others, but basically most that I found were not able to use multiple images with one image on each desktop and independently modify each image to fit/work on that screen, and also unable to switch between single image stretched cross all screen or multiple images.

Pharaun

Posted 2010-08-18T19:52:47.850

Reputation: 360

I thought Xinerama was not compatible with Twinview. At least, not on my computer. Are you really using them both somehow? Also, what desktop environment do you use? (KDE 3? 4? Gnome? etc.) – David Z – 2010-08-18T20:06:18.853

My understanding was that Twinview "simulates" some of the Xinerama controls so that apps will know not to maximize cross 2+ screen, etc... I am not really using a desktop environment at all, right now my current setup is just Openbox + pythonbar + Conky. Currently using feh to set my wallpaper. – Pharaun – 2010-08-18T20:09:02.533

Answers

4

The 'nitrogen' tool might do exactly what you need. When you run the tool, you first add one or more directories containing images, then set up you backgrounds the way you want, including setting different images on the two screens.

Now, nitrogen stores this information in .config/nitrogen/bg-saved.cfg

You restore the saved setup using 'nitrogen --restore', but of course, you could also change that file first, and then call nitrogen.

Jan de Vos

Posted 2010-08-18T19:52:47.850

Reputation: 156

3

This is an old thread but seeing that feh isn't properly demonstrated, I felt obliged to do so. The problem with Nitrogen is that once you have multiple monitors you cannot automatize the way you fit the image to each screen.

feh --bg-fill ~/Pictures/Wallpapers/MyWallpaper.jpg

will fit the image to your background without losing the aspect ratio. If you put two files, first one will go to the first monitor, the other to the second, like this:

$ feh --bg-center imagePathForFirstMonitor imagePathForSecondMonitor

You can also randomize the image you select by using the -z option and * for the folder contents, like this:

feh --bg-fill -z ~/Pictures/Wallpapers/*
# This command puts a random image for each monitor you have

feh is at the same an image viewer and has tons of other options that you can explore by man feh or reading the sources below.

Sources:

https://wiki.archlinux.org/index.php/feh

https://feh.finalrewind.org/

Ege

Posted 2010-08-18T19:52:47.850

Reputation: 31

How can I get the list of paths to my monitor files? – user3598726 – 2019-01-06T15:40:29.980

Sorry I will edit it, it should be the image path for the each monitor. So you simply put the image locations – Ege – 2019-01-07T17:17:13.997

2

I don't know such application, but you could write a script that does what you want using ImageMagick to edit/compose the images and feh to set the wallpaper. For example, this ImageMagick's montage command:

montage a.jpg b.jpg c.jpg -geometry +0+0 -tile x1 -resize x1080 out.jpg

will compose the files a.jpg, b.jpg and c.jpg into a single image (out.jpg) after resizing each input to be 1080px high.

Hope this helps, at least until you find a better solution.

cYrus

Posted 2010-08-18T19:52:47.850

Reputation: 18 102