I wanna set 4 different wallpapers in my 4 workspaces by setting in CCMS (wallpaper plugin). It just only work if show_desktop (gconf-editor->apps/nautilus/preference) is unchecked. But after that I can not right-click on my desktop anymore. Is it possible to make wallpaper-plugin work without "disable" my desktop?



And to make it possible to save my answer ("no" is a bit short) this a possible workaround that changes your actions to open a file on the desktop from 1 move with the mouse and 1 click on an icon to 2 clicks on icons and 1 mouse move:

You need to use places>desktop to get to your desktop icons. So you can add in an option to show desktop from the launcher. Rightclick desktop (w/o compiz wallpaper active ;) ) and choose 'add launcher'. See image...

enter image description here

(command nautilus "/home/your_username/Desktop")

Add in an icon, move this launcher from desktop to ~/.local/share/applications and pin this to the launcher.

enter image description here

  • Because you shared the gnarly root image, i'm giving a +1 – lazyPower Jun 24 '11 at 10:03

i don't know if this helps or not, but i wanted to do the same thing. i have 3 different monitors (running via xinerama), and i want a different background on each one. i also want it to rotate every once in a while.

the problem is that a lot of the software out there needs randr to run. but we can get around that. i could never get anything to work properly as far as wallpapers go.

so i wrote a simple bash script that handles all of this for me. basically, i have a folder of images that i want to use for each background. then i use imagemagick to stitch 3 pics together from that directory, and then i can display that new single pic as a spanned pic on the desktop. so it is really one actual png file, but it appears as each desktop has its own background. the imagemagick portion doesn't hit your system hard. but for some reason, the call to gsettings will slow your box down for 10 seconds or so.

beware that this script could really be beefed up. it doesn't check to make sure that files are proper images (jpgs, pngs...), and makes a lot of assumptions.

here is the script i use:

#this is the directory that holds all of the pics you want to show

# We want indexes 1 and over

#We don't want to exceed the number of pics we have (upper bound)
RANGE=$(ls $PIC_DIR | wc -l)

#Initialize this

#Function to generate a random number using our bounds
function generate_random_number()
    while [ "$file_number" -le $FLOOR ]
        let "file_number %= $RANGE"

# so we get a number that will represent the picture we want to use.
# We get the size of the directory, and generate a random number
# between 0 and that size.  Then, we get the file that
# corresponds to that number.

# We have to add a 'p' to the file number to get it to
# work with sed, so we add it here

#get the file name based upon the file number
FILENAME1=$(ls $PIC_DIR | sed -n "$file_number")

#Do it all over again for the second pic
FILENAME2=$(ls $PIC_DIR | sed -n "$file_number")

#Do it all over again for the third pic
FILENAME3=$(ls $PIC_DIR | sed -n "$file_number")

# Here is where we will stitch the pics together. 
# My monitors are turned vertically, so their resolution is
# 1050x1680.  We will always reuse the same name for the 
# output file, so that we aren't creating hundreds of files.
${montage -geometry 1050x1680+0+0 ${PIC_DIR}/${FILENAME1} ${PIC_DIR}/${FILENAME2} ${PIC_DIR}/${FILENAME3} ${PIC_DIR}/out.png

# Set the wallpaper.  
$(/usr/bin/gsettings set set org.gnome.desktop.background picture-uri file:///${PIC_DIR}/out.png >> /dev/null)

# Set the image to span
$(/usr/bin/gsettings set org.gnome.desktop.background picture-options "spanned" >> /dev/null)

so you can call this just via the command line, or you can set it up to be called via cron. in that case, use "crontab -e" to open your cron. this must be called in a special way though. say you want your background to change once an hour, you need to do this:

0 * * * * DISPLAY=:0.0 /home/myuser/path/to/my/script >> /dev/null

the key is to make sure to include the DISPLAY remark.

the beauty of this is that it runs in gnome2 or compiz, and is really easy to do. i don't know why the xorg process takes such a hit when you call the gsettings command, but it does, and it will lag your system for about 10 seconds. but this can be used on pretty much any gnome-based system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.