From 406ba45f5e82ff67acd96f7ed6ba871b775e9133 Mon Sep 17 00:00:00 2001 From: Gabriele Musco Date: Fri, 23 Feb 2018 16:16:47 +0100 Subject: [PATCH] added support for MATE desktop --- hydrapaper/__main__.py | 9 +++++++-- hydrapaper/wallpaper_merger.py | 12 ++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/hydrapaper/__main__.py b/hydrapaper/__main__.py index 476857e..89d14d9 100644 --- a/hydrapaper/__main__.py +++ b/hydrapaper/__main__.py @@ -579,8 +579,13 @@ def on_wallpapersFlowbox_child_activated(self, flowbox, selected_item): ) def apply_button_async_handler(self, monitors): + desktop_environment = os.environ.get('XDG_CURRENT_DESKTOP') + if desktop_environment == 'MATE': + wp_setter_func = WallpaperMerger.set_wallpaper_mate + else: + wp_setter_func = WallpaperMerger.set_wallpaper_gnome if len(monitors) == 1: - WallpaperMerger.set_wallpaper(monitors[0].wallpaper, 'zoom') + wp_setter_func(monitors[0].wallpaper, 'zoom') return #if len(self.monitors) != 2: # print('Configurations different from 2 monitors are not supported for now :(') @@ -602,7 +607,7 @@ def apply_button_async_handler(self, monitors): saved_wp_path ) ) - WallpaperMerger.set_wallpaper(saved_wp_path) + wp_setter_func(saved_wp_path) def set_favorite_state(self, wp_path, wp_widget, isfavorite): if isfavorite: diff --git a/hydrapaper/wallpaper_merger.py b/hydrapaper/wallpaper_merger.py index 31e3141..8605e0e 100755 --- a/hydrapaper/wallpaper_merger.py +++ b/hydrapaper/wallpaper_merger.py @@ -8,7 +8,7 @@ TMP_DIR='/tmp/HydraPaper/' -def multi_setup_pillow(monitors, save_path): +def multi_setup_pillow(monitors, save_path, wp_setter_func=None): images = list(map(Image.open, [m.wallpaper for m in monitors])) resolutions = [(m.width, m.height) for m in monitors] widths = [r[0] for r in resolutions] @@ -22,9 +22,17 @@ def multi_setup_pillow(monitors, save_path): final_image.paste(i, o) final_image.save(save_path) -def set_wallpaper(path, wp_mode='spanned'): +def set_wallpaper_gnome(path, wp_mode='spanned'): gsettings = Gio.Settings.new('org.gnome.desktop.background') wp_key = 'picture-uri' mode_key = 'picture-options' gsettings.set_string(wp_key, 'file://{}'.format(path)) gsettings.set_string(mode_key, wp_mode) + +def set_wallpaper_mate(path, wp_mode='spanned'): + gsettings = Gio.Settings.new('org.mate.background') + wp_key = 'picture-filename' + mode_key = 'picture-options' + gsettings.set_string(wp_key, path) + gsettings.set_string(mode_key, wp_mode) +