xstarfish is a command that generates a random wallpaper. I am attempting to use it with Ubuntu 14.04 and Unity.

Anyways, I've set all of the following gsettings to false, but I still just have a black wallpaper, the xstarfish one becomes visible sometimes just as I log out.

gsettings set org.gnome.settings-daemon.plugins.background false
gsettings set org.gnome.desktop.background show-desktop-icons false
gsettings set org.gnome.desktop.background draw-background false

I have no idea where to go from there. It just seems to me as if xstarfish doesn't want to draw the desktop background, not a problem with something else drawing on top of it.


I just stumbled across this page, and thought I should point out that I just (like, tonight!) released an HTML5/JavaScript port of Starfish/xstarfish at http://micah.cowan.name/starfishjs/, fulfilling my personal desired to have an easy-to-use cross-platform version of Starfish (though, sadly, it of course can't automatically set your desktop background - you have to right-click the image to save it and do that yourself!)


The program does not seem to work with modern desktops.

As you say, it generates an image. By default, it generates a pattern with a size of 256x256.

I do not know if there is a better way, but you could do the following:

  • Install ImageMagick (for the composite command):

    sudo apt-get install imagemagick
  • Create a new pattern with this command:

    xstarfish --outfile wallpaper_tile.png
  • Create a new wallpaper (e.g. 1920x1200)

    composite -tile wallpaper_tile.png -size 1920x1200  xc:none wallpaper_out.png
  • Set the new wallpaper (change this: <your_absolute_image_path>):

    gsettings set org.gnome.desktop.background picture-uri file://<your_absolute_image_path>/wallpaper_out.png

Here is a small script. It creates a 1920x1200 image (change the dimensions in the script). Place the code in a new file (e.g. "set_wallpaper").



xstarfish --outfile "$HOME"/wallpaper_tile.png
composite -tile "$HOME"/wallpaper_tile.png -size "$size"  xc:none "$HOME"/wallpaper_out.png
gsettings set org.gnome.desktop.background picture-uri file://"$HOME"/wallpaper_out.png

exit 0

Save file and make it executable:

chmod +x set_wallpaper

and start it for a test.

So that the image is changed after a time, you can create a new CRON job:

crontab -e

and add a line like this:

15 * * * *       <script_path>


15 * * * *       myapps/set_wallpaper

That your wallpaper is changed every 15 minutes.

  • Your solution helped, but I found a simpler way to do it(you inspired me though). And I've posted an answer too. Apr 20 '15 at 19:31

I fixed this by telling xstarfish to create an output file

xstarfish --outfile /location/of/file.png -d 60

This tells xstarfish to update the background file every 60 seconds.

Then I just set the background to that file in the unity menus, when xstarfish updates the background, the wallpaper also updates(for some reason).

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.