import commands, sys, os, os.path, time
import logging
+try:
+ import PIL, PIL.Image
+except ImportError:
+ PIL = None
__all__ = ("init", "set_image")
if commands.getstatusoutput("xwininfo -name 'KDE Desktop'")[0] == 0:
changers.append(KDEChanger(*args, **kwargs))
+ logging.debug("Testing for Unity")
+ if commands.getstatusoutput("xlsclients | grep -qi unity")[0] == 0:
+ changers.append(UnityChanger(*args, **kwargs))
+
logging.debug("Testing for Gnome")
if commands.getstatusoutput("xwininfo -name 'gnome-settings-daemon'")[0] == 0:
changers.append(GnomeChanger(*args, **kwargs))
def convert_image_format(self, filename, format='BMP', allowAlpha=False, extension='.bmp'):
"""Convert the image to another format, and store it in a local place"""
if not os.path.exists(filename):
+ logger.warn('The input file "%s" does not exist, so it will not be converted', filename)
+ return filename, False
+ if PIL is None:
+ logger.warn('PIL could not be found, not converting image format')
return filename, False
- import PIL, PIL.Image
self.remove_old_image_cache()
output_name = os.path.join(self._ConvertedWallpaperLocation, '%s%s' % (time.time(), extension))
logging.debug(cmd)
return not self._runProgram(cmd)
+class UnityChanger(BaseChanger):
+ name = "Unity"
+ def set_image(self, file):
+ cmd = ['gsettings', 'set', 'org.gnome.desktop.background', 'picture-uri', 'file://'+file]
+ logging.debug(cmd)
+ return not self._runProgram(cmd)
+
class KDEChanger(BaseChanger):
name = "KDE"
def set_image(self, file):