A pan-and-zoom image slideshow in Python, using Clutter. Integrates nicely with Variety.

Related tags

variety-slideshow
Overview

A pan-and-zoom image slideshow for Linux

Written in Python using Clutter (via PyGObject).

It can work as a standalone command-line utility, or as a "component" of Variety Wallpaper Changer (https://peterlevi.com/variety).
Run it with "--help" to see options.

If you also have Variety installed, it will provide a tab in its preferences for configuring and running Variety Slideshow, i.e. Variety serves as the GUI frontend for the Slideshow. variety-slideshow is listed in the Recommends section of Variety's package.

Demo and more info: http://peterlevi.com/variety/2016/02/0-6-0-released-with-variety-slideshow/

Installation on Ubuntu

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

Licensed under GPL3. Copyright (c), Peter Levi

Issues
  • Slideshow either freezes with black screen on start, or fails to exit cleanly in Virtualbox 5.0

    Slideshow either freezes with black screen on start, or fails to exit cleanly in Virtualbox 5.0

    Trying out Variety-slideshow for the first time in a Virtualbox VM running Debian testing/unstable. Sometimes, the slideshow app runs fine, but freezes when exiting (clicking, pressing Escape) on the last frame drawn. Other times, I just get a black screen when running slideshow: Ctrl-C does not help, and I have to go into the virtual console to kill the slideshow program.

    Slideshow freezing on exit:

    [email protected]:~$ variety-slideshow
    /usr/lib/python2.7/dist-packages/varietyslideshow/varietyslideshow.py:19: PyGIWarning: GtkClutter was imported without specifying a version first. Use gi.require_version('GtkClutter', '1.0') before import to ensure that the right version gets loaded.
      from gi.repository import GtkClutter
    
    ** (variety-slideshow:2465): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
    pci id for fd 9: 80ee:beef, driver (null)
    OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
    OpenGL Warning: glVertexArrayRangeNV not found in mesa table
    OpenGL Warning: glCombinerInputNV not found in mesa table
    OpenGL Warning: glCombinerOutputNV not found in mesa table
    OpenGL Warning: glCombinerParameterfNV not found in mesa table
    OpenGL Warning: glCombinerParameterfvNV not found in mesa table
    OpenGL Warning: glCombinerParameteriNV not found in mesa table
    OpenGL Warning: glCombinerParameterivNV not found in mesa table
    OpenGL Warning: glFinalCombinerInputNV not found in mesa table
    OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
    OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
    OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
    OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
    OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
    OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
    OpenGL Warning: glDeleteFencesNV not found in mesa table
    OpenGL Warning: glFinishFenceNV not found in mesa table
    OpenGL Warning: glGenFencesNV not found in mesa table
    OpenGL Warning: glGetFenceivNV not found in mesa table
    OpenGL Warning: glIsFenceNV not found in mesa table
    OpenGL Warning: glSetFenceNV not found in mesa table
    OpenGL Warning: glTestFenceNV not found in mesa table
    libGL error: core dri or dri2 extension not found
    libGL error: failed to load driver: vboxvideo
    OpenGL Warning: crPixelCopy3D:  simply crMemcpy'ing from srcPtr to dstPtr
    ^[email protected]:~$
    

    Slideshow freezing on start:

    [email protected]:~$ variety-slideshow 
    /usr/lib/python2.7/dist-packages/varietyslideshow/varietyslideshow.py:19: PyGIWarning: GtkClutter was imported without specifying a version first. Use gi.require_version('GtkClutter', '1.0') before import to ensure that the right version gets loaded.
      from gi.repository import GtkClutter
    
    ** (variety-slideshow:1969): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
    pci id for fd 9: 80ee:beef, driver (null)
    OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
    OpenGL Warning: glVertexArrayRangeNV not found in mesa table
    OpenGL Warning: glCombinerInputNV not found in mesa table
    OpenGL Warning: glCombinerOutputNV not found in mesa table
    OpenGL Warning: glCombinerParameterfNV not found in mesa table
    OpenGL Warning: glCombinerParameterfvNV not found in mesa table
    OpenGL Warning: glCombinerParameteriNV not found in mesa table
    OpenGL Warning: glCombinerParameterivNV not found in mesa table
    OpenGL Warning: glFinalCombinerInputNV not found in mesa table
    OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
    OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
    OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
    OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
    OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
    OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
    OpenGL Warning: glDeleteFencesNV not found in mesa table
    OpenGL Warning: glFinishFenceNV not found in mesa table
    OpenGL Warning: glGenFencesNV not found in mesa table
    OpenGL Warning: glGetFenceivNV not found in mesa table
    OpenGL Warning: glIsFenceNV not found in mesa table
    OpenGL Warning: glSetFenceNV not found in mesa table
    OpenGL Warning: glTestFenceNV not found in mesa table
    libGL error: core dri or dri2 extension not found
    libGL error: failed to load driver: vboxvideo
    OpenGL Warning: crPixelCopy3D:  simply crMemcpy'ing from srcPtr to dstPtr
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    
    (variety-slideshow:1969): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:1186: GL error (1282): Invalid operation
    
    opened by jlu5 2
  • Variety Settings take too long to load

    Variety Settings take too long to load

    The Variety settings do not load at all until I close all the Variety processes. Once I kill the process and start loading it from the command line I can see the following screen over the time of 18 minutes from command to actual opening of the window(The window has not opened yet).

    ERROR: 2018-03-17 19:35:46,133: reload_config() 'Could not create Downloader for type 19, location Recommended by Variety. Adapts to your taste as you mark images as favorite or trash.'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/VarietyWindow.py", line 420, in reload_config
        dlr = self.create_downloader(type, location)
      File "/usr/lib/python2.7/dist-packages/variety/VarietyWindow.py", line 555, in create_downloader
        raise Exception('No Smart user yet, not a problem')
    Exception: No Smart user yet, not a problem
    /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:854: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
    /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:854: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
    /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:854: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
    ERROR: 2018-03-17 19:37:56,517: _run() 'sync: Could not load or create smart user'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 516, in _run
        self.load_user(create_if_missing=True)
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 128, in load_user
        self.new_user()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 136, in new_user
        self.user = Util.fetch_json(Smart.API_URL + '/newuser')
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/newuser (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccf4113b50>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    ERROR: 2018-03-17 19:38:16,997: reporting_thread_method() 'Stats: Could not report config'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/VarietyWindow.py", line 999, in reporting_thread_method
        self.smart.stats_report_config()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 851, in stats_report_config
        res = Util.fetch_json(Smart.API_URL + '/stats/%s/report-config' % statsid, data=data)
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/stats/n6my5l1j7l/report-config (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccb01bd5d0>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    ERROR: 2018-03-17 19:40:56,740: reporting_thread_method() 'Stats: Could not report config'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/VarietyWindow.py", line 999, in reporting_thread_method
        self.smart.stats_report_config()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 851, in stats_report_config
        res = Util.fetch_json(Smart.API_URL + '/stats/%s/report-config' % statsid, data=data)
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/stats/n6my5l1j7l/report-config (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccf4113c50>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    Exception in thread Thread-15:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
        self.run()
      File "/usr/lib/python2.7/threading.py", line 1073, in run
        self.function(*self.args, **self.kwargs)
      File "/usr/lib/python2.7/dist-packages/variety/PreferencesVarietyDialog.py", line 1078, in _f
        self.parent.smart.load_user(create_if_missing=True)
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 128, in load_user
        self.new_user()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 136, in new_user
        self.user = Util.fetch_json(Smart.API_URL + '/newuser')
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/newuser (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccb01e6250>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    
    ERROR: 2018-03-17 19:43:36,485: reporting_thread_method() 'Stats: Could not report config'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/VarietyWindow.py", line 999, in reporting_thread_method
        self.smart.stats_report_config()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 851, in stats_report_config
        res = Util.fetch_json(Smart.API_URL + '/stats/%s/report-config' % statsid, data=data)
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/stats/n6my5l1j7l/report-config (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccb029de50>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:854: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
    ERROR: 2018-03-17 19:46:40,805: _run() 'sync: Could not load or create smart user'
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 516, in _run
        self.load_user(create_if_missing=True)
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 128, in load_user
        self.new_user()
      File "/usr/lib/python2.7/dist-packages/variety/Smart.py", line 136, in new_user
        self.user = Util.fetch_json(Smart.API_URL + '/newuser')
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 534, in fetch_json
        return Util.request(url, data).json()
      File "/usr/lib/python2.7/dist-packages/variety/Util.py", line 506, in request
        verify=False)
      File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 502, in request
        resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 612, in send
        r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 504, in send
        raise ConnectionError(e, request=request)
    ConnectionError: HTTPSConnectionPool(host='vrty.org', port=443): Max retries exceeded with url: /api/newuser (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fccb0336210>: Failed to establish a new connection: [Errno 110] Connection timed out',))
    /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:854: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
    

    System Info: Ubuntu 17.10(2 users both using variety), 16GB RAM, Intel Core i7 6700HQ. Please ask if any more info is required

    OK, it seems that this thing is taking too long to start, I am posting this thing now at 2:23 PM UTC will keep you updated

    opened by akxer 1
  • The indicator icon selects dark, no change

    The indicator icon selects dark, no change

    My light series theme can't see the icon clearly

    opened by Hentioe 0
  • Custom image no longer selectable for Indicator Icon

    Custom image no longer selectable for Indicator Icon

    Wrong place to post this.

    opened by mshmm 0
  • Error when selecting

    Error when selecting "View at Chrome OS Wallpapers"

    Wrong place to post this.

    opened by mshmm 0
  • Aspect ratio calculation didn't fit my needs

    Aspect ratio calculation didn't fit my needs

    I had a lot of scanned pictures for a slideshow, in different aspect ratios. Many of them, if not most, were far too large once scaled to fit the screen.

    So this PR adds an option "--aspect-ratio-target" that modifies the AR calculation (basically, "max" to enlarge or "min" to fit the whole picture on the screen).

    Apart from that: awesome work, exactly what I was looking for!

    opened by bluthg 0
  • Pexels plugin

    Pexels plugin

    Please make a plugin for this site : https://www.pexels.com/

    There is an API available so we can enjoy those nice free pictures for our wallpapers ;)

    opened by alkaphreak 0
  • Link to picture information

    Link to picture information

    What do you think about a feature that puts a link in picture, or menu item to open the website where the photo was downloaded. This will be uselful to answer the curiosity that some aleatory wallpapers make. (eg. a location of a beautiful place or landscape, who is the person in the photo). I would be glad helping to develop this feature.

    opened by gimoteco 0
  • Slideshow won't accept folder change

    Slideshow won't accept folder change

    [migrated from https://bugs.launchpad.net/variety/+bug/1715796] Setting slideshow folder as only custom folder, (/media/drive/blah/blah/blah/photos) doesn't display any images other than the single image in /home/me/Pictures. I can change the folder but the change isn't reflected, it'll only show /Pictures. Even changing to ~/Desktop continues to show /Pictures.

    v0.6.4 xubuntu 17.04 log here

    This bug may no longer be present; I'm not sure I use Variety any more.

    opened by SimonDedman 0
  • variety-slideshow with imagemagick options

    variety-slideshow with imagemagick options

    I am using variety-slideshow as my default screensaver on Ubuntu 17.04 (with three monitors).

    I would love it if slideshow had the same clock/imagemagick options as the wallpaper changer, namely the ability to overlay the current date and time on the image.

    opened by cmcinroy 0
  • Wallpaper goes buggy upon using xrandr

    Wallpaper goes buggy upon using xrandr

    Hey @peterlevi, at first, thank you for your program, I really enjoy using it 👍 💯
    But a short time ago I ran into a problem while using xrandr to set up a multi monitor setup. The exact command was: xrandr --auto --output "DP1" --primary --mode 1680x1050 --right-of "eDP1". Once I executed the command the wallpaper just went blurry and was not looking really nice. There was a quite simple fix: Just going a picture back and forth made it appear back normal. Still i was curious if there is a command just to reload the current picture. (want to integrate it in a script)

    Greetings Chris

    opened by christian-heusel 0
  • i3wm support

    i3wm support

    Hey,

    i really like the app. However, is it possible to use it properly in i3wm with the desktop mode? If i start it in desktop mode a new window is created that is managed by i3 instead of that the actual desktop background is replaced.

    best, s-bl

    opened by s-bl 1
  • adding Python 3 support

    adding Python 3 support

    Hi @peterlevi , Do you have plans for porting variety-slideshow to Python 3? If not, would you be willing to accept a PR if I contributed it?

    The only dependency used in variety is the gi package... and python3-gi has been in the Ubuntu archive since 12.04. Besides gi.repository, the variety codebase uses only standard library modules... so that would be a straight forward effort to support Python 3.

    There are basically 2 ways to approach Python 3 compatibility:

    1. convert entire source to Python 3 syntax and drop Python 2 support
    2. modify variety-slideshow so there is a single codebase that supports both Python2 and Python3 (with conditional imports and such)

    Which way would you like to see variety go?

    Thanks!

    -Corey

    opened by cgoldberg 1
  • Use iNotify to watch folders for changes

    Use iNotify to watch folders for changes

    This is important for the integration with Variety, when the slideshow is run on "changing" folders, such as the folders of Variety's download sources.

    Need to handle correctly combining this with non-random "order".

    opened by peterlevi 0
Owner
Peter Levi
Loves to tinker with code since around 25 years ago. Proficient in Python & JavaScript. Created 2-3 quite popular apps for Linux, e.g. Variety.
Peter Levi
Enjoy Twitch on your GNU/Linux desktop

GNOME Twitch Enjoy Twitch on your GNU/Linux desktop. Install Dependencies meson >= 0.36.0 (install only) ninja (install only) gtk+-3.0 >= 3.20 libsoup

Vincent 430 Jun 1, 2021
Display and control your Android device

scrcpy (v1.17) Read in another language This application provides display and control of Android devices connected on USB (or over TCP/IP). It does no

Genymobile 49.4k Jun 4, 2021
Source code for Gramps Genealogical program

The Gramps Project ( https://gramps-project.org ) We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete f

Gramps Project 1.2k Jun 5, 2021
Desktop client for the TinyTinyRSS feed reader.

FeedTheMonkey FeedTheMonkey is a desktop client for TinyTinyRSS. That means that it doesn't work as a standalone feed reader but only as a client for

Jeena Paradies 116 May 24, 2021
A free & open tool for transcribing audio interviews

oTranscribe oTranscribe is a free web app designed to take the pain out of transcribing recorded interviews. Pause (ESC), rewind (F1) and fast-forward

null 574 Jun 4, 2021
The HTML Presentation Framework

reveal.js is an open source HTML presentation framework. It enables anyone with a web browser to create fully featured and beautiful presentations for

Hakim El Hattab 56.5k Jun 6, 2021
Linux Application Launcher

Master: Dev: Application Launcher for Linux ?? Ulauncher is a fast application launcher for Linux. It's is written in Python, using GTK+. App Search F

Ulauncher 2k Jun 5, 2021
Open multi-site list manager for Unix-like systems. (ex-wMAL)

Trackma Trackma aims to be a lightweight and simple but feature-rich program for Unix based systems for fetching, updating and using data from persona

z411 523 Jun 4, 2021
A black hole for Internet advertisements

Network-wide ad blocking via your own Linux hardware The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content, without installi

Pi-hole 31.4k Jun 5, 2021
A cross-platform tool for optimizing PNG and JPG files.

Made by @kilianvalkhof Other projects: ?? Polypane - Develop responsive websites and apps twice as fast on multiple screens at once ??️ Superposition

Kilian Valkhof 620 Jun 1, 2021
Predictive AI layer for existing databases.

Website | Docs | API Docs | Community forum MindsDB is an open-source AI layer for existing databases that allows you to effortlessly develop, train a

MindsDB Inc 3.8k Jun 7, 2021
Mobile Shell

Mosh: the mobile shell Mosh is a remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local e

Mosh (mobile shell) 10k Jun 4, 2021
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A free and open source resume builder. Go to App What is this app all about? Reactive Resume is a free and open source resume builder that’s built to

Amruth Pillai 2.8k Jun 7, 2021