This seems like a simple question, yet I could not find any satisfying answer using Google or Ask Ubuntu.
So I have a triple-monitor setup. Basically what I want is simply to have a different background on each of the three monitors. Now I am not speaking about different virtual desktops (aka workspaces) here. Most of the solutions I googled were about different backgrounds on different workspaces. I have only the one workspace, but three monitors, like so:
Monitor 1 (on top) is my big TV that's attached to the wall above my two normal monitors.
I am using Gnome 2 with Compiz (aka gnome-session-fallback aka Gnome Classic (with effects) in the login manager dropdown list) on Ubuntu 13.04.
I tried the following methods trying to set a different background for each monitor:
ccsm
(compiz-config-settings-manager), that is, setting a background via the window manager (Compiz). More precisely, I used the Wallpaper plugin of Compiz.gnome-control-center
, that is, setting a background via the Gnome System Settings. More precisely, I used the Background panel in the Gnome System Settings.XDG_CURRENT_DESKTOP=Unity gnome-control-center
, that is, settting a background via the Gnome System Settings, but mimicking Unity behavior. More precisely, I used the Appearance panel in the Gnome System Settings.
However, none of these methods seem to enable me to select a different background for each monitor. In each case, I can only set a single background (or possibly several that can then be cycled periodically, or used for different workspaces) for all three monitors. Then, I typically have options like center, tile, crop or scale that control how this single background is rendered across the three monitors.
The workaround I have gone with so far is to use Gimp to create one "big" background that encompasses the entire virtual resolution of all three monitors together. Basically, I create one big background image of size 3840x2160, in which I paste three backgrounds at the right places. Then I set this big background as the single background for the three monitors using possibility (1) or (3) above, and use the span option to span this big background across all three monitors. This results in three different backgrounds on the three monitors, provided the three smaller backgrounds were placed correctly on the big background image (Note: possibility (2) does not offer a span option).
However, this seems like an awful hack to achieve such a simple thing as setting a different background for each of my monitors. It also has several disadvantages:
- When I want to change the arrangement of the monitors (the big TV on top can be slided some way to the left or to the right, and I like to adjust the monitor positions accordingly using
xrandr
or an associated GUI such as the Displays panel in the Gnome System Settings, so as to keep mouse movement intuitive), clearly the upper background does not slide along with the monitor it's supposed to be displayed on, which means I only see part of the upper background. - The big background has some gray areas (dead space) in the upper corners that are uselessly loaded at login time by Compiz or Gnome when the big background is loaded.
- Worst of all, when I want to change a single one of the three backgrounds, then I have to gimp-edit the whole big background. This is too much work considering I simply want to change a single background (yep, I know about Gimp layers, but still) - this ought to be possible with a few clicks and without a heavy-weight image manipulation program.
The first point means this workaround is not robust. The second means it is not efficient. And the third means it's a pain in the butt :)
So my question is this:
Is there some way - using either Gnome 2 or Compiz - to simply tell the system that I want a different background for each monitor? This would be the logical approach to me, as it would actually tell the system what my intention is. It would also be more efficient.
Really, it feels like this cannot be such an uncommon scenario. I would think many people have multiple monitors; and at least some of those must prefer to have different backgrounds on these monitors. So can it be true that there is no straightforward solution, and users are expected to come up with awful hacks such as creating their own custom backgrounds with heavy-weight programs in order to get this to work?
Edit (2019): Nitrogen is no longer maintained. Nitrogen doesn't fully work on newer Ubuntu distros.
You can use
nitrogen
To install it, run the following command in terminal:
Because
nitrogen
doesn't have a desktop file by default when is installed, you need to run the following command from terminal to start it:How to use it?
Source: UBUNTU MULTI-MONITOR TWEAKS (FULL SCREEN FLASH FIXES, SPAN WALLPAPER ACROSS MONITORS, MORE)
From webupd8.org it seems there are 2 options. (copy from the website plus some extra things added by me):
The default Ubuntu Appearance settings doesn't let you span a single large wallpaper across both monitors or use a different wallpaper for each monitor, but there are two applications that you can use to do this.
The first one is SyncWall. Install it in Ubuntu using the following commands:
Here's how my desktops looks like after using SyncWall:
Current Features
Another such tool is nitrogen , which besides being able to set the same wallpaper to extend across displays, it can also be used to set a different wallpaper to each monitor.
Nitrogen is available in the official Ubuntu repositories so to install it, search for it in Ubuntu Software Center or use the following command:
Nitrogen doesn't have a desktop file, so run it from the command line:
To be able to set a different wallpaper for each monitor, you must disable the file manager from handling the desktop. This means you'll no longer have folders on the desktop.
In GNOME / Unity, install GNOME Tweak Tool:
Then open GNOME Tweak Tool and on the "Desktop" section, set "Have file manager handle the desktop" to OFF.
And finally, to have the wallpapers restored each time you log in, add "nitrogen --restore" to your startup applications.
Here's how my desktop looks like with different wallpapers for each monitor:
Features :
Nitrogen seems to be the best option. Syncwall seems to be using the hack you described (large image to split across several monitors.
the XFCE Desktop Manager Plugin (that comes in the xubuntu-desktop package) allows you to edit each display individually while still retaining the folders on your desktops.
A screenshot of my 2 desktops with the manager open :
in the yellow box it says "Move this dialog to the display you want to edit the settings for."
I'm sorry i cant be more help as to giving instruction on to how to install it, nor what the actual plug in is called ( I tried to find it but decided to re-install the whole package instead ) - But hopefully this leads you or somebody on the right track, and this answer can be improved through edits.
HydraPaper is the best option since 2020.
I was glad to see there actual was a Gnome/Unity answer.
That said, I still feel switching to KDE might offer a more consistent experence.
KDE's native settings manager not only allows for multiple wallpapers across multiple monitors, it allows them to be set differently for each virtual desktop AND Activity. (Activity's a like virtual desktops that contain virtual desktops and can be configured to have different settings, such as a screen-saver after 5 minutes of stillness in one activity, but no timeout when switched to another, say for presentations or movies.)
Moreover, it handles the addition and subtraction of monitors on the fly (via plugging and unplugging HDMI) without issue!!
No need to hide your icons from desktop