Variety

News about Variety Wallpaper Changer

How to install

Ubuntu and derivatives

Variety can be installed on Ubuntu and its variants and derivatives from its official PPA by running these commands in a terminal:

sudo add-apt-repository ppa:peterlevi/ppa
sudo apt-get update
sudo apt-get install variety

This has been tested to work out of the box on Ubuntu 12.04, Ubuntu 12.10, Xubuntu 12.04, Lubuntu 12.04, Kubuntu 12.04 (see note below), Linux Mint 13 MATE, Linux Mint 13 Cinnamon, Linux Mint 14 Cinnamon.

Note for KDE users

KDE provides no easy way to set the wallpaper from inside a program. To use Variety in KDE you have to do the following:
Please run Variety for the first time if you haven’t done this yet. Then set ~/.config/variety/wallpaper-kde.jpg as your desktop wallpaper in KDE’s settings (NOT in Variety’s preferences) and keep it this way. Variety will update this file when changing the wallpaper, and KDE will afterwards automatically refresh the desktop.

Debian

Variety is confirmed to run on Debian Wheezy. Install the DEB file using GDebi or some other tool that will automatically resolve and install the missing dependencies.

Other Debian-based systems

You can try installing the DEB file directly using GDebi. It depends on your system whether the dependencies will be satisfiable.

elementary OS

Variety works OK on elementary OS with Pantheon. To install use the instructions for Ubuntu, shown above. If adding the PPA fails for you, please try these commands:

cd
wget http://ubuntuone.com/0mqnbkvE1xABvanVlcEQnQ -O peterlevi-ppa-precise.list
sudo mv peterlevi-ppa-precise.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A546BE4F
sudo apt-get update
sudo apt-get install variety

ArchLinux

Someone recently built a package for ArchLinux.

Other distributions / running from source

Variety runs on Python 2 (2.7.3+).

1. Download the source archive in tar.gz and unpack it to some directory. Or, alternatively, install Bazaar and run bzr branch lp:variety – this means you will be running from the latest trunk development version (which I try to keep stable).

2. Install the dependencies:

gir1.2-notify-0.7, python-configobj, python-pyexiv2, python-pycurl, gir1.2-gtk-3.0, python-dbus, gir1.2-pango-1.0, gir1.2-glib-2.0, python-imaging, python-cairo, gir1.2-gdkpixbuf-.0, python-bs4, gir1.2-webkit-3.0, yelp, imagemagick, python-lxml, gir1.2-appindicator3-0.1.

gir1.2-appindicator3-0.1 is optional – don’t worry if it is not present in your distribution, it is for Variety’s indicator icon, but Variety will fallback to a classic Gnome status icon if it is not present.

3. Now simply run it. No building or installing is necessary:

cd <folder with Variety's sources>
bin/variety -v

NOTE: If you have managed to install and use Variety on other systems, please contact me so I can put the instructions on this page. Thank you.

32 Comments

  1. It would seem that gir* related deps are Ubuntu-only as they are directly related to Unity (which distro’s such as Fedora will never support in a reasonable way.) Do you know of any alternative packages that can do the same thing w/o Unity-support?

    • Hm, not exactly. Here is how I understand things.

      The gir* packages (coming from “gi.repository”) contain the so-called “GObject bindings” from Python to GTK. This is the current up-to-date interface for using GTK from Python, although it seems that one can still use the older so called “PyGTK” . I don’t think these libraries are Unity-specific or Ubuntu-specific, as Variety installs and runs without problems on other distros as well – e.g. Debian and Arch, as well as on other non-Unity and non-Gnome desktop environments like LXDE, XFCE, KDE, etc.

      Now, I’m definitely not an expert, as I had no GTK experience before Variety and the whole thing with PyGTK, PyGI, GObject introspection, etc. is very confusing for a newcomer, and I still haven’t spent any decent amount of reading on the subject, so I might be very off in the definitions.

      I tried searching for RPMs for these and it seems that the package names are not exactly the same, as I can’t find any RPMs with the same name as the respective DEBs. Still there are things like this: http://pkgs.org/mageia-2/mageia-core-updates-i586/python-gi-3.2.0-3.mga2.i586.rpm.html, so I suppose everything is still available for Fedora, Mageia, etc., just the packaging is different. But with my own limited knowledge on the subject, and my lack of experience with Fedora and the other RPM-based distros, I simply cannot help any more than this, sorry. I’d be very glad if someone more experienced in the subject casts some light.

  2. Hello
    i want installed variety on fedora 18 but it have dependencies . i Install the dependencies:

    gir1.2-notify-0.7, python-configobj, python-pyexiv2, python-pycurl, gir1.2-gtk-3.0, python-dbus, gir1.2-pango-1.0, gir1.2-glib-2.0, python-imaging, python-cairo, gir1.2-gdkpixbuf-.0, python-bs4, gir1.2-webkit-3.0, yelp, imagemagick, python-lxml, gir1.2-appindicator3-0.1.

    but fedora can’t find all dependencies look to output

    [behrooz@localhost ~]$ sudo yum install gir1.2-notify-0.7, python-configobj, python-pyexiv2, python-pycurl, gir1.2-gtk-3.0, python-dbus, gir1.2-pango-1.0, gir1.2-glib-2.0, python-imaging, python-cairo, gir1.2-gdkpixbuf-.0, python-bs4, gir1.2-webkit-3.0, yelp, imagemagick, python-lxml, gir1.2-appindicator3-0.1.
    [sudo] password for behrooz:
    Sorry, try again.
    [sudo] password for behrooz:
    Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
    Loading mirror speeds from cached hostfile
    * fedora: http://ftp.cs.pu.edu.tw
    * rpmfusion-free: mirror.karneval.cz
    * rpmfusion-free-updates: mirror.karneval.cz
    * rpmfusion-nonfree: mirror.karneval.cz
    * rpmfusion-nonfree-updates: mirror.karneval.cz
    * updates: http://ftp.kddilabs.jp
    No package gir1.2-notify-0.7, available.
    No package python-configobj, available.
    No package python-pyexiv2, available.
    No package python-pycurl, available.
    No package gir1.2-gtk-3.0, available.
    No package python-dbus, available.
    No package gir1.2-pango-1.0, available.
    No package gir1.2-glib-2.0, available.
    No package python-imaging, available.
    No package python-cairo, available.
    No package gir1.2-gdkpixbuf-.0, available.
    No package python-bs4, available.
    No package gir1.2-webkit-3.0, available.
    No package yelp, available.
    No package imagemagick, available.
    No package python-lxml, available.
    No package gir1.2-appindicator3-0.1. available.
    Error: Nothing to do

    how i can install on fedora ?
    sorry for English
    Thanks

  3. Found a way to install variety on Fedora 17 (64-bits) without many problems. Just follow the next few steps and you will be up and running in 10 minutes or less.

    1. Make sure you meet the following dependancies:
    - python-beautifulsoup4
    - python-configobj
    - pyexiv2
    - python-imagine
    - ImageMagick
    I know there are much more dependancies, but I haven’t found any functions that didn’t work (yet).

    2. Download and unpack variety (source-code link on the website)

    3. Start bin/variety -v

    4. If you want to have variety automatically started with the startup of Fedora, you have to manually change the path in gnome-session-properties. This points to /usr/bin/variety, but when you install it manually the chances are big that you’ve unpacked it in a different directory.

    That’s all, have fun!

    Peter, thank you very very much for this extensive/complete/marvelous/etc piece of software!

    • Phew, thanks a lot for this comment. Quite a lot of people were asking about Fedora and I’m very glad that someone with Fedora managed to get it running and posted the instructions here. Now let’s see if anyone is up for building an RPM – I simply don’t have the time to get myself educated on this matter.

  4. Also installed it on Mint 14 Cinnamon without any problems, using the repository mentioned above.

  5. Hi Peter,
    I apologize for asking again, but i had to re-install Kubuntu again. How do i set wallpaper-kde as as the desktop paper again? was it thru the menu? did i have to copy and paste it somewhere? or make some change in script?

    Dave

    • Answering here so others see the answer too – you set ~/.config/variety/wallpaper-kde.jpg as your desktop wallpaper in KDE’s settings (NOT in Variety’s preferences) and keep it this way. Then Variety will update this file when changing the wallpaper, KDE will afterwards automatically refresh the desktop.

  6. Hi Peter,
    nevermind, i found my old notes. will try again. thanks

    Dave

  7. Hi Peter. I have Variety installed in Crunchbang Waldorf, i mean GDebi installs the deb without errors, but i can’t find the app anywhere after install. It’s not in usr/bin and terminal doesn’t know the command “Variety”.

    Is it impossible to use it in Openbox or something like that?

    • Variety installs in /opt/extras.ubuntu.com/variety – try looking for it there. (Run bin/variety in that folder).
      Regarding Openbox – it shouldn’t be a problem as long as there is a way to set the desktop wallpaper from the command line. If it does not work out of the box, you’ll have to edit ~/.config/variety/scripts/set_wallpaper.

      • Thanks, Peter. I found it, but the bin won’t open Variety. Can i still get it to work if i edit that config file? Exactly what should i put there?

        • Do I understand correctly – you still can’t run it?
          Please open a terminal and run “/opt/extras.ubuntu.com/variety/bin/variety -v” and check what you get there. Are there any notable errors?

  8. Yes, can’t run it. “/opt/extras.ubuntu.com/variety/bin/variety -v” gives this error: (variety:3898): GLib-GIO-ERROR **: Settings schema ‘org.gnome.desktop.background’ is not installed

    • Yes, this looks like an unnecessary dependency on GSettings at initialization that will need fixing. If you are up for some editing you may want to comment this line at /opt/extras.ubuntu.com/variety/variety/VarietyWindow.py:92:
      self.gsettings = Gio.Settings.new('org.gnome.desktop.background') by adding a # at front. This should fix it for you till a proper fix is released.

      • Thanks, Peter. I did that and it did change things a bit, but Variety still won’t run. Variety’s “Welcome window” opens, but nothing else.

        I can’t paste the “/opt/extras.ubuntu.com/variety/bin/variety -v” outcome here, but you can read it in https://dl.dropbox.com/u/4692661/variety

        • Most of the errors there are not fatal, but you still have to check several things:

          1. After the Welcome dialog Variety only shows in the “system tray”. This means a Unity indicator icon, or, as a fallback – a Gtk.StatusIcon. I don’t know what your environment uses for a “status tray”, but if you don’t see Variety there, then your system tray mechanism is not supported. There are also errors about svg format not supported in the log, that might also be a reason for not seeing the tray icon.

          2. You will have to edit set_wallpaper and get_wallpaper in ~/.config/variety/scripts to work in your specific setup. At the moment get_wallpaper does not work, and we don’t know about set_wallpaper. You can test these separately, without running Variety at all. There are comments inside the files for what they expect as input. get_wallpaper is not really that much needed, but without set_wallpaper working Variety cannot change the wallpaper.

          3. Even if you don’t see Variety in the tray, it can still be operated with via commands.
          Please after you run it, try issuing “/opt/extras.ubuntu.com/variety/bin/variety –preferences” which should open the preferences. “variety –next” should change the wallpaper – as long as the set_wallpaper script works, that is.

          • Ok, Peter. I don’t know how to edit (what to put in there) get_wallpaper or set_wallpaper, but my system is Crunchbang Waldorf 64bit.

            After trying to run Variety by clicking the bin in opt/… i put this “/opt/extras.ubuntu.com/variety/bin/variety –preferences” in terminal, out comes this https://dl.dropbox.com/u/4692661/preferences%20outcome

          • Please use “dash dash preferences”, not just one “dash”.
            /opt/extras.ubuntu.com/variety/bin/variety --preferences

            Regarding set_wallpaper – I don’t know your system, but there must be some way to set the desktop wallpaper from the terminal, that’s what you need in set_wallpaper. Openbox, as far as I understand, does not provide a standard way for this, so it varies from system to system and I don’t know your specific setup. Google is your friend here. This seems relevant: http://mindlessblathering.wordpress.com/2012/04/29/setting-wallpaper-from-the-cli/.

            For now you can leave get_wallpaper alone, or make it simply echo the full path to some image on your disk, so it doesn’t log errors, e.g. echo /path/to/some/image as the only command in it.

            I don’t think the rest of errors and warnings in the log are fatal.

  9. Peter

    No longer working in Cinnamon 1.8. Cinnamon appears to use Dconf – org.cinnamon.background and not Gconf – org.gnome.desktop.background.

    Cheers

    Steve

  10. Got it after a bit of fiddling:
    gsettings set org.cinnamon.background picture-uri “file://$1″ 2> /dev/null
    in ~/.config/variety/scripts/set_wallpaper

    All working.

    • Ok, thanks for the info. I’ve reported this as a bug: https://bugs.launchpad.net/variety/+bug/1178214

      Can you please help with the necessary modification to ~/.config/variety/scripts/get_wallpaper – we need a way to identify that the DE is Cinnamon >= 1.8 so that we use “gsettings get org.cinnamon.background picture-uri” and not the default Gnome way.

      What are the outputs of env | grep -i DESKTOP_SESSION and env | grep -i cinnamon?

  11. Trying to get Variety to work on MATE desktop 1.6. Currently have it working on a machine that’s Xubuntu with Gnome Shell installed and MATE desktop on top of those, but I’m having enough problems I need to do something. On a different machine, tried installing Ubuntu 12.04 server with no options, add MATE desktop, add Variety, no luck. Tried Mint 13, add MATE desktop, nope. Tried Ubuntu Unity (all Ubuntu is 12.04x), first just MATE desktop, second adding Gnome Classic then MATE desktop, uh-uh. Tried all of these again (I’m determined), installed Variety via deb (gdebi) to get dependencies. Nope. Really want the MATE 1.6 desktop with Variety, if not possible, will grit my teeth and go to Gnome Classic desktop. I’m sensing that it’s just a package or two that’s needed (have manually doublechecked dependencies and versions, including python, to no avail). Any further suggestions? I’m barely above being an end-user, but I’ve got time to experiment. :)

  12. Output as requested:
    env | grep -i DESKTOP_SESSION
    DESKTOP_SESSION=Cinnamon
    GNOME_DESKTOP_SESSION_ID=this-is-deprecated
    manjaro@manjaro ~ % env | grep -i cinnamon
    DESKTOP_SESSION=Cinnamon

    No mention of version, so if DESKTOP_SESSION=Cinnamon, then perhaps cinnamon –version ??
    Apologies for the late reply, I only received an email after Paul’s recent post above.

    Steve

  13. I am running zsh so:
    DTV=`cinnamon –version`; echo $DTV
    Cinnamon 1.8.2
    Might work.

  14. Hello. sorry for my English.
    I’m testing Ubuntu 13.10 Variety was working fine a few month, but now it crashes when i chose preference with – Error segmentation (made ??memory dump)
    Thanks

    • Try renaming ~/.config/variety so that you start clean. If it still crashes, try reinstalling variety (sudo apt-get install –reinstall variety). If this does not help, this is probably caused by either some file corruption or some other bad state of your python installation.

    • Actually just noticed you talk about 13.10, not 13.04. Well, 13.10 is still very alpha, breakage can happen anywhere, I have not even tried running Variety on it… It could be some new bug in some of the Python modules or in GTK.

  15. Thanks. Renaming ~/.config/variety helped once. preference is shown at first start but when i choose it in menu it is still crashes.
    it’s very alpha i know sorry.
    Other my programs working fine.
    Thanks for helping.

Leave a Reply

Required fields are marked *.

*