Variety

News about Variety Wallpaper Changer

How to install

Ubuntu, Linux Mint, elementary OS, and other Ubuntu 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 variety-slideshow

This has been tested to work out of the box on the latest LTS and non-LTS versions of Ubuntu, Xubuntu, Lubuntu, Kubuntu (but see notes below for KDE), Linux Mint MATE and Cinnamon, elementary OS.

Running Variety after installation

After the installation Variety can be run from the application menus or the dash search. Or launch it from a terminal with variety.

Debian and other Debian-based systems

Variety is in Debian testing and unstable’s repos. To install simply run as root:

sudo apt-get install variety

Alternatively, you can grab any of the deb files from the PPA – ignore the differences in the versioning strings, the deb files are the same. Then install using GDebi or some other tool that will automatically resolve and install the missing dependencies.

ArchLinux

Variety is in the Community repository – https://www.archlinux.org/packages/community/any/variety/.

openSUSE

On recent versions of openSUSE install Variety from the official openSUSE repository either through yast or with zypper in variety. The same packages are available for older versions of openSUSE from https://software.opensuse.org/package/variety?search_term=variety.

Fedora, RedHat

There are now packages for RPM-based distributions, you can find them on rpmfind.

KDE

KDE provides no ways to set the wallpaper from inside a program. To use Variety in KDE you have to make some configurations or it will not work. Please read and follow the instructions here.

GNOME and XFCE

Variety uses an indicator icon. You will have to install the AppIndicator Support extension in GNOME or add the indicator plugin to the panel in XFCE.

Enlightenment

Please load the modules Modules/System/DBus Extension and Modules/Systray.

Openbox, Fluxbox, i3, xmonad and other window managers

Many of the lighter window managers do not have native desktop-drawing capabilities but rely on feh to draw the desktop. To make Variety run there, install feh, then edit the file ~/.config/variety/scripts/set_wallpaper and uncomment this line by removing the # at the front:

# feh --bg-scale "$WP" 2> /dev/null

Other distributions / running from source

Variety runs on Python 2 (2.7.3+).

1. Install Bazaar and run
bzr branch lp:variety
cd variety
.
You will have the latest trunk version of Variety inside the variety folder. I try to keep trunk always stable.

2. Install the dependencies. They are listed in the debian/control file.

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: bin/variety -v

Raspbian (Raspberry Pi)

Users are reporting Variety works well under Raspbian. The process is the same as when running from source described above.

If you are using the Raspberry Pi as a photo slideshow PC, you may also add and run unclutter to hide the mouse cursor:
sudo apt-get install unclutter

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.

Alternative modes for positioning the wallpaper on screen

Variety adheres to the global setting for positioning the wallpaper on the screen and does not provide an in-app setting for this. On Ubuntu/Unity this is a combobox in the Appearance settings, the default value is “Zoom”. In other distributions this setting is wherever the wallpaper/desktop background settings are.
For example use Scale instead of Zoom, if you prefer the images to be fully displayed on the screen and not cropped.

Dual-monitor support

On dual-monitor machines, you probably want to open Ubuntu’s Appearance settings (or whatever is the place for changing wallpaper settings on your distribution) and change the wallpaper display mode from the default Zoom to Span. You may then also want to spend some time customizing the image sources in Variety so that it fetches images with the proper resolution to cover both monitors.

273 Comments

  1. sudo apt-get install variety

    E: dpkg was interrupted, you must manually run ‘sudo dpkg –configure -a’ to correct the problem.

  2. Thank you so much for Variety app. It really makes the background experience so much more interesting in my Lubuntu.

  3. I just tried Ubuntu 17.04 with the “Gnome on Wayland” session. I notice that the Variety app. icon no longer appears in the tray, although Variety runs as usual in the background. All other tray apps, including legacy ones, seem to be working as expected. Perhaps this will sort itself out. This use case may seem esoteric, but, with 17.10 Ubuntu users will be using Wayland by default so I thought this worth a mention.

  4. No more rpm on RPMfind for Fedora 25, installation throws error. I used v5 rpm long before and enjoyed this app a lot, but now I can’t even install it.

    • Fedora users:

      Please note that I have never built or provided myself installation files for Fedora – I don’t have experience with Fedora/RedHat myself and I am not familiar with rpm, nor with how the processes work for getting software into Fedora’s repos. The RPMs on rpmfind were uploaded by someone from the community, not by me.

      I rely on the community again to build and update RPMs for Variety or get it into Fedora’s repos. If you have the necessary knowledge and are up for the task, please step up and contact me, I’ll assist with whatever is in my control.

      In theory, nothing should prevent Variety from running there, as long as the dependencies are installed – it relies on fairly standard GNOME libraries. The only one thing that is Ubuntu-specific is AppIndicator, but it is not a hard dependency, Variety can run without it.

  5. The link “any of the deb files from the PPA” not working.

  6. Variety doesn’t appear to be available on rpmfind any more.

  7. hello,

    I am on FedorA 25 and i have this error :

    ”’
    No protocol specified
    Unable to init server: Could not connect: Connection refused
    No protocol specified
    Unable to init server: Impossible de se connecter : Connection refused
    /usr/lib/python2.7/site-packages/variety/__init__.py:109: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version(‘Gtk’, ‘3.0’) before import to ensure that the right version gets loaded.
    from gi.repository import Gtk, Gdk, GObject # pylint: disable=E0611
    Traceback (most recent call last):
    File “/bin/variety”, line 38, in
    import variety
    File “/usr/lib/python2.7/site-packages/variety/__init__.py”, line 111, in
    from variety import VarietyWindow
    File “/usr/lib/python2.7/site-packages/variety/VarietyWindow.py”, line 24, in
    from variety.FacebookHelper import FacebookHelper
    File “/usr/lib/python2.7/site-packages/variety/FacebookHelper.py”, line 55, in
    from variety.Util import Util
    File “/usr/lib/python2.7/site-packages/variety/Util.py”, line 17, in
    import requests
    File “/usr/lib/python2.7/site-packages/requests/__init__.py”, line 64, in
    from . import utils
    ImportError: cannot import name utils
    ”’

    Have you a idee to resolv this ?
    And have you news from VRTY.ORG ?

    thx

  8. For Fedora 25 fresh install requires additional package: –

    dnf install webkitgtk3

  9. Where is the black people? I l love variety, but i wanna see more diversity!

  10. Any workarounds for the fact that the tray icon doesn’t appear on GNOME Shell + Wayland (I’m on Fedora 25; switching to Xorg works fine)?

  11. Is there any way to disable the preview of upcoming wallpapers as opposed to just re-positioning it to top, bottom, left, or right?

  12. I got this working in Fedora 25 by doing the following:
    1. go to Xorg session
    2. install webkitgtk3
    3. download variety source from https://copr.fedorainfracloud.org/coprs/sergiomb/builds_for_Stable_Releases/build/456954/
    4. run/configure variety via gui
    (optional)
    5. go back to wayland and run variety (warning you will get no gui using wayland) But you can still send commands out such as variety -n for next wallpaper.

    I haven’t fully tested this but so far it seems OK.

  13. Any ideas why it’s grown to more than 2Gb resident memory (4GB virtual)? This is a bit OTT.

  14. If it’s ubuntu etc it’s already in the repositories, you can install via synaptic or similar.

  15. I am trying to run it from source but I get the following output:

    /home/nik/src/variety-0.6.3/variety/__init__.py:108: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version(‘Gtk’, ‘3.0’) before import to ensure that the right version gets loaded.
    from gi.repository import Gtk, Gdk, GObject # pylint: disable=E0611
    /home/nik/src/variety-0.6.3/variety/VarietyWindow.py:27: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version(‘Notify’, ‘0.7’) before import to ensure that the right version gets loaded.
    from gi.repository import Gtk, Gdk, GdkPixbuf, GObject, Gio, Notify # pylint: disable=E0611
    /home/nik/src/variety-0.6.3/variety/AddPanoramioDialog.py:19: PyGIWarning: WebKit was imported without specifying a version first. Use gi.require_version(‘WebKit’, ‘3.0’) before import to ensure that the right version gets loaded.
    from gi.repository import Gtk, WebKit, GObject # pylint: disable=E0611
    /home/nik/src/variety-0.6.3/variety/QuoteWriter.py:19: PyGIWarning: PangoCairo was imported without specifying a version first. Use gi.require_version(‘PangoCairo’, ‘1.0’) before import to ensure that the right version gets loaded.
    from gi.repository import Gdk, Pango, PangoCairo, GdkPixbuf, GObject
    Traceback (most recent call last):
    File “bin/variety”, line 39, in
    variety.main()
    File “/home/nik/src/variety-0.6.3/variety/__init__.py”, line 225, in main
    window.start(arguments)
    File “/home/nik/src/variety-0.6.3/variety/VarietyWindow.py”, line 140, in start
    self.prepare_config_folder()
    File “/home/nik/src/variety-0.6.3/variety/VarietyWindow.py”, line 262, in prepare_config_folder
    shutil.copy(varietyconfig.get_data_file(“config”, “variety.conf”),
    File “/home/nik/src/variety-0.6.3/variety_lib/varietyconfig.py”, line 47, in get_data_file
    return os.path.join(get_data_path(), *path_segments)
    File “/home/nik/src/variety-0.6.3/variety_lib/varietyconfig.py”, line 64, in get_data_path
    raise project_path_not_found
    variety_lib.varietyconfig.project_path_not_found

  16. I thinks my previous post of moksha is accidentally missed, so I post it again. 🙂

    # Enlightenment
    # Needs Modules/System/DBus Extension loaded to work
    if [ “echo $DESKTOP | grep Moksha” ]; then

    OUTPUT_DIR=”$HOME/.e/e/backgrounds”

    TEMPLATE=’
    images { image: “@[email protected]” USER; }
    collections {
    group {
    name: “e/desktop/background”;
    data { item: “style” “4”; item: “noanimation” “1”; }
    max: @[email protected] @[email protected];
    parts {
    part {
    name: “bg”;
    mouse_events: 0;
    description {
    state: “default” 0.0;
    aspect: @[email protected] @[email protected];
    aspect_preference: NONE;
    image { normal: “@[email protected]”; scale_hint: STATIC; }
    }
    }
    }
    }
    }

    OFILE=”$OUTPUT_DIR/variety_wallpaper_$RANDOM”

    DIMENSION=”$(identify -format “%w/%h” “$WP”)”

    if [ ! -z “$DIMENSION” ]; then
    WIDTH=$(echo $DIMENSION | cut -d/ -f1)
    HEIGHT=$(echo $DIMENSION | cut -d/ -f2)
    IMAGE=”$(echo “$WP” | sed ‘s/[^[:alnum:]_-]/\\&/g’)”

    if [ -z “$HEIGHT” -o “$HEIGHT” = “0” ]; then
    ASPECT=”0.0″
    else
    ASPECT=$(echo “scale=9; $DIMENSION” | bc)
    fi
    fi

    printf “%s” “$TEMPLATE” | \
    sed “s/@[email protected]/$ASPECT/g; s/@[email protected]/$WIDTH/g; s/@[email protected]/$HEIGHT/g; s|@[email protected]|$IMAGE|g” > “$OFILE.edc”
    edje_cc “$OFILE.edc” “$OFILE.edj” 2>/dev/null
    rm “$OFILE.edc”

    ## Get the current number of virtual desktops
    desk_x_count=$(enlightenment_remote -desktops-get | awk ‘{print $1}’)
    desk_y_count=$(enlightenment_remote -desktops-get | awk ‘{print $2}’)

    ## Get the current number of screens
    screen_count=1
    # If xrandr is available use it to get screen desk_x_count
    if command -v xrandr >/dev/null 2>&1; then
    screen_count=$(xrandr -q | grep ‘ connected’ | wc -l)
    fi

    ## Set the wallpaper for each virtual desktop
    for ((x=0; x<$desk_x_count; x++)); do
    for ((y=0; y<$desk_y_count; y++)); do
    for ((z=0; z $LAST_WALLPAPER_FILE
    exit 0
    fi

  17. I thinks my previous post of moksha is accidentally missed, so I post it again. 🙂

    # Enlightenment
    # Needs Modules/System/DBus Extension loaded to work
    if [ “echo $DESKTOP | grep Enlightenment” ]; then

    OUTPUT_DIR=”$HOME/.e/e/backgrounds”

    TEMPLATE=’
    images { image: “@[email protected]” USER; }
    collections {
    group {
    name: “e/desktop/background”;
    data { item: “style” “4”; item: “noanimation” “1”; }
    max: @[email protected] @[email protected];
    parts {
    part {
    name: “bg”;
    mouse_events: 0;
    description {
    state: “default” 0.0;
    aspect: @[email protected] @[email protected];
    aspect_preference: NONE;
    image { normal: “@[email protected]”; scale_hint: STATIC; }
    }
    }
    }
    }
    }

    OFILE=”$OUTPUT_DIR/variety_wallpaper_$RANDOM”

    DIMENSION=”$(identify -format “%w/%h” “$WP”)”

    if [ ! -z “$DIMENSION” ]; then
    WIDTH=$(echo $DIMENSION | cut -d/ -f1)
    HEIGHT=$(echo $DIMENSION | cut -d/ -f2)
    IMAGE=”$(echo “$WP” | sed ‘s/[^[:alnum:]_-]/\\&/g’)”

    if [ -z “$HEIGHT” -o “$HEIGHT” = “0” ]; then
    ASPECT=”0.0″
    else
    ASPECT=$(echo “scale=9; $DIMENSION” | bc)
    fi
    fi

    printf “%s” “$TEMPLATE” | \
    sed “s/@[email protected]/$ASPECT/g; s/@[email protected]/$WIDTH/g; s/@[email protected]/$HEIGHT/g; s|@[email protected]|$IMAGE|g” > “$OFILE.edc”
    edje_cc “$OFILE.edc” “$OFILE.edj” 2>/dev/null
    rm “$OFILE.edc”

    ## Get the current number of virtual desktops
    desk_x_count=$(enlightenment_remote -desktops-get | awk ‘{print $1}’)
    desk_y_count=$(enlightenment_remote -desktops-get | awk ‘{print $2}’)

    ## Get the current number of screens
    screen_count=1
    # If xrandr is available use it to get screen desk_x_count
    if command -v xrandr >/dev/null 2>&1; then
    screen_count=$(xrandr -q | grep ‘ connected’ | wc -l)
    fi

    ## Set the wallpaper for each virtual desktop
    for ((x=0; x<$desk_x_count; x++)); do
    for ((y=0; y<$desk_y_count; y++)); do
    for ((z=0; z $LAST_WALLPAPER_FILE
    exit 0
    fi

  18. I have installed on Ubuntu 16.10 but have an issue with upgrading after reciving the following message:
    “The following packages have unmet dependencies.
    variety : Depends: variety-slideshow but it is not installable”

    I have checked the ppa and the yakkety and zesty archive only have the variety package not variety-slideshow.

    @PeterLevi can the variety-slideshow be added to the ppa?

    Many thanks.

Leave a Reply

Required fields are marked *.


css.php