hhannine / superpaper

A cross-platform multi monitor wallpaper manager.
MIT License
1.12k stars 46 forks source link

Cannot Set wallpaper on MX Linux xfce #45

Closed sva522 closed 4 years ago

sva522 commented 4 years ago

Hi, I'm running MX linux 19.1 with xfce. Clicking on apply button does not set any wallaper (no change on actual one).

Here is the log : `^^/superpaper >>> ./superpaper-2.0.1-x86_64.AppImage (130) 16:06:08 /tmp/.mount_superp5bEURn/usr /home/xavier/.config/superpaper /home/xavier/.config/superpaper/profiles Gtk-Message: 16:06:11.571: Failed to load module "canberra-gtk-module"

(superpaper-2.0.1-x86_64.AppImage:23820): Gtk-WARNING **: 16:06:12.408: Could not load a pixbuf from icon theme. This may indicate that pixbuf loaders or the mime database could not be found. Exception in thread Thread-1: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1115, in span_single_image_simple File "superpaper/wallpaper_processing.py", line 1289, in set_wallpaper File "superpaper/wallpaper_processing.py", line 1363, in set_wallpaper_linux File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files

Exception in thread Thread-2: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1398, in set_wallpaper_piecewise File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files

Exception in thread Thread-3: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1115, in span_single_image_simple File "superpaper/wallpaper_processing.py", line 1289, in set_wallpaper File "superpaper/wallpaper_processing.py", line 1363, in set_wallpaper_linux File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files ` I will be happy to provide other info. Thanks for your great work!

Regards,

hhannine commented 4 years ago

Would you run it with the debugging flag -d? It's doing something dumb and trying to run KDE specific code.

Could you check what your DESKTOP_SESSION and KDE_FULL_SESSION env variables are?

sva522 commented 4 years ago

Here we go : ~/superpaper `❯ bash echo $DESKTOP_SESSION lightdm-xsession

~/superpaper ❯ echo x$KDE_FULL_SESSION x

~/superpaper ❯ ./superpaper-2.0.1-x86_64.AppImage -d /tmp/.mount_superpX958jT/usr /home/xavier/.config/superpaper /home/xavier/.config/superpaper/profiles None None None None None None True Gtk-Message: 16:38:40.518: Failed to load module "canberra-gtk-module" use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p') get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat START Listing profiles for menu. perspective preset: default Listed profile: Base END Listing profiles for menu. read profile name from 'running_profile': Base perspective preset: default get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat running profile job with profile: Base Running a one-off wallpaper change. /home/xavier/superpaper/0076.jpg Canvas size: [3200, 1080] perspective preset: default Listed profile: Base Registering binding: None for profile: Base use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p') get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat perspective preset: default Listed profile: Base use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p')

(superpaper-2.0.1-x86_64.AppImage:28483): Gtk-WARNING **: 16:38:41.408: Could not load a pixbuf from icon theme. This may indicate that pixbuf loaders or the mime database could not be found. file:///home/xavier/.cache/superpaper/temp/Base-b.png DESKTOP_SESSION is: 'lightdm-xsession' Exception in thread Thread-1: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1115, in span_single_image_simple File "superpaper/wallpaper_processing.py", line 1289, in set_wallpaper File "superpaper/wallpaper_processing.py", line 1363, in set_wallpaper_linux File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files

Base single False None None None None ['/home/xavier/superpaper'] perspective preset: default Listed profile: Base perspective preset: default Listed profile: Base Unreg hotkey ('control', 'super', 'shift', 'p') Unreg hotkey ('control', 'super', 'w') perspective preset: default Listed profile: Base Registering binding: None for profile: Base perspective preset: default onApply profile: saved /home/xavier/.config/superpaper/profiles/Base.profile perspective preset: default perspective preset: default Listed profile: Base Start profile: Base Check if the starting profile is already running: Base name check: Base, Base Running quick profile job with profile: Base quickswitch file lookup: ['Base-a.png', 'Base-a-crop-0.png', 'Base-a-crop-1.png', 'Base-b.png', 'Base-b-crop-0.png', 'Base-b-crop-1.png'] Use wallpaper crop pieces: ['/home/xavier/.cache/superpaper/temp/Base-a-crop-0.png', '/home/xavier/.cache/superpaper/temp/Base-a-crop-1.png', '/home/xavier/.cache/superpaper/temp/Base-b-crop-0.png', '/home/xavier/.cache/superpaper/temp/Base-b-crop-1.png'] KDE: Using image piece list! Starting timed profile job with profile: Base Exception in thread Thread-2: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1398, in set_wallpaper_piecewise File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files

get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat running profile job with profile: Base Running a one-off wallpaper change. /home/xavier/superpaper/0076.jpg Wrote active profile: Base Canvas size: [3200, 1080] file:///home/xavier/.cache/superpaper/temp/Base-b.png DESKTOP_SESSION is: 'lightdm-xsession' Exception in thread Thread-3: Traceback (most recent call last): File "dbus/bus.py", line 177, in activate_name_owner File "dbus/bus.py", line 363, in get_name_owner File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.kde.plasmashell': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 916, in _bootstrap_inner File "threading.py", line 864, in run File "superpaper/wallpaper_processing.py", line 1115, in span_single_image_simple File "superpaper/wallpaper_processing.py", line 1289, in set_wallpaper File "superpaper/wallpaper_processing.py", line 1363, in set_wallpaper_linux File "superpaper/wallpaper_processing.py", line 1548, in kdeplasma_actions File "dbus/bus.py", line 243, in get_object File "dbus/proxies.py", line 250, in init File "dbus/bus.py", line 182, in activate_name_owner File "dbus/bus.py", line 280, in start_service_by_name File "dbus/connection.py", line 653, in call_blocking dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.plasmashell was not provided by any .service files

use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p') `

hhannine commented 4 years ago

Thanks. KDE detection is being too fast and loose.

To workaround the issue run superpaper with DESKTOP_SESSION=xfce KDE_FULL_SESSION='' . /superpaper

sva522 commented 4 years ago

No change on screen. But I saw cropped image have been created in temp dir.

Thanks for your support.

Debug output is : `~/superpaper ❯ DESKTOP_SESSION=xfce KDE_FULL_SESSION='' ./superpaper-2.0.1-x86_64.AppImage -d /tmp/.mount_superpJc85gp/usr /home/xavier/.config/superpaper /home/xavier/.config/superpaper/profiles None None None None None None True Gtk-Message: 16:53:48.872: Failed to load module "canberra-gtk-module" use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p') get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat START Listing profiles for menu. perspective preset: default Listed profile: Base END Listing profiles for menu. read profile name from 'running_profile': Base perspective preset: default get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat running profile job with profile: Base Running a one-off wallpaper change. /home/xavier/superpaper/0076.jpg Canvas size: [3200, 1080] perspective preset: default Listed profile: Base Registering binding: None for profile: Base file:///home/xavier/.cache/superpaper/temp/Base-b.png DESKTOP_SESSION is: 'xfce' Removing images matching with: 'Base-a-crop' use_hotkeys: True hk_binding_next: ('control', 'super', 'w') hk_binding_pause: ('control', 'super', 'shift', 'p') get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat perspective preset: default Listed profile: Base

(superpaper-2.0.1-x86_64.AppImage:31790): Gtk-WARNING **: 16:54:05.550: Could not load a pixbuf from icon theme. This may indicate that pixbuf loaders or the mime database could not be found. Base single False None None None None ['/home/xavier/superpaper'] perspective preset: default Listed profile: Base perspective preset: default Listed profile: Base Unreg hotkey ('control', 'super', 'shift', 'p') Unreg hotkey ('control', 'super', 'w') perspective preset: default Listed profile: Base Registering binding: None for profile: Base perspective preset: default onApply profile: saved /home/xavier/.config/superpaper/profiles/Base.profile perspective preset: default perspective preset: default Listed profile: Base Start profile: Base Check if the starting profile is already running: Base name check: Base, Base Running quick profile job with profile: Base quickswitch file lookup: ['Base-b.png', 'Base-b-crop-0.png', 'Base-b-crop-1.png'] Use wallpaper crop pieces: ['/home/xavier/.cache/superpaper/temp/Base-b-crop-0.png', '/home/xavier/.cache/superpaper/temp/Base-b-crop-1.png'] XFCE: Using image piece list! Starting timed profile job with profile: Base get_display_data output: NUM_DISPLAYS = 2, RES_ARR = [(1920, 1080), (1280, 1024)], OFF_ARR = [(0, 0), (1920, 56)] Display(resolution=(1920, 1080), digital_offset=(0, 0), phys_size_mm=(598, 336), detected_phys_size_mm=(598, 336), ppi=81.55183946488295, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='HDMI-0') Display(resolution=(1280, 1024), digital_offset=(1920, 56), phys_size_mm=(376, 301), detected_phys_size_mm=(376, 301), ppi=86.46808510638297, ppi_norm_resolution=None, ppi_norm_offset=None, ppi_norm_bezels=(0, 0), perspective_angles=(0, 0), name='DVI-I-0') load_system: archive_file not found: /home/xavier/.config/superpaper/display_systems.dat running profile job with profile: Base Running a one-off wallpaper change. Wrote active profile: Base /home/xavier/superpaper/0076.jpg Canvas size: [3200, 1080] file:///home/xavier/.cache/superpaper/temp/Base-a.png DESKTOP_SESSION is: 'xfce' Removing images matching with: 'Base-b-crop' `

hhannine commented 4 years ago

That's a shame, the debug prints look alright now and no errors are triggered from the xfce interface code. I guess I'll have to spin up an xfce VM to test this.

hhannine commented 4 years ago

Spun up my xubuntu VM and I had no problem to set the wallpaper even with two virtual displays.. And on a single display MX Linux I could not change the wallpaper.

It must be that the API that is available on Xubuntu does not work on MX Linux XFCE.. Would you know the API / terminal commands to set wallpapers on MX XFCE?

Fixing this will probably be a bit of work.

hhannine commented 4 years ago

I began prodding at the xfconf-query on MX and it seems to have the correct contents in there but I can't seem to affect the wallpaper by adjusting those through the xfconf-query. Do you know how to use this or where I can find out how MX XFCE is different?

hhannine commented 4 years ago

Good news, I found the property that applies on MX: for whatever reason the wallpaper is set in the monitorVirtual branch of the setting tree.

Would you mind running

xfconf-query -c xfce4-desktop -p /backdrop -l

on your machine so I could get a better idea if my VM keys match what you have?

hhannine commented 4 years ago

This helped solve this, for safe keeping: https://superuser.com/a/1327824

sva522 commented 4 years ago

Please find command output below:

xfconf-query -c xfce4-desktop -p /backdrop -l
/backdrop/screen0/monitor0/image-path /backdrop/screen0/monitor0/image-show /backdrop/screen0/monitor0/image-style /backdrop/screen0/monitor0/last-image /backdrop/screen0/monitor0/last-single-image /backdrop/screen0/monitor0/workspace0/color-style /backdrop/screen0/monitor0/workspace0/image-style /backdrop/screen0/monitor0/workspace0/last-image /backdrop/screen0/monitor0/workspace1/color-style /backdrop/screen0/monitor0/workspace1/image-style /backdrop/screen0/monitor0/workspace1/last-image /backdrop/screen0/monitorDVI-I-0/workspace0/backdrop-cycle-enable /backdrop/screen0/monitorDVI-I-0/workspace0/color-style /backdrop/screen0/monitorDVI-I-0/workspace0/image-style /backdrop/screen0/monitorDVI-I-0/workspace0/last-image /backdrop/screen0/monitorDVI-I-0/workspace0/rgba1 /backdrop/screen0/monitorDVI-I-0/workspace0/rgba2 /backdrop/screen0/monitorDVI-I-0/workspace1/color-style /backdrop/screen0/monitorDVI-I-0/workspace1/image-style /backdrop/screen0/monitorDVI-I-0/workspace1/last-image /backdrop/screen0/monitorDVI-I-1/workspace0/color-style /backdrop/screen0/monitorDVI-I-1/workspace0/image-style /backdrop/screen0/monitorDVI-I-1/workspace0/last-image /backdrop/screen0/monitorDVI-I-1/workspace1/color-style /backdrop/screen0/monitorDVI-I-1/workspace1/image-style /backdrop/screen0/monitorDVI-I-1/workspace1/last-image /backdrop/screen0/monitorHDMI-0/workspace0/color-style /backdrop/screen0/monitorHDMI-0/workspace0/image-style /backdrop/screen0/monitorHDMI-0/workspace0/last-image /backdrop/screen0/monitorHDMI-0/workspace1/color-style /backdrop/screen0/monitorHDMI-0/workspace1/image-style /backdrop/screen0/monitorHDMI-0/workspace1/last-image /backdrop/screen0/monitorHDMI-1/workspace0/color-style /backdrop/screen0/monitorHDMI-1/workspace0/image-style /backdrop/screen0/monitorHDMI-1/workspace0/last-image /backdrop/screen0/monitorHDMI-1/workspace1/color-style /backdrop/screen0/monitorHDMI-1/workspace1/image-style /backdrop/screen0/monitorHDMI-1/workspace1/last-image /backdrop/screen0/monitorLVDS/workspace0/color-style /backdrop/screen0/monitorLVDS/workspace0/image-style /backdrop/screen0/monitorLVDS/workspace0/last-image /backdrop/screen0/monitorLVDS/workspace1/color-style /backdrop/screen0/monitorLVDS/workspace1/image-style /backdrop/screen0/monitorLVDS/workspace1/last-image

This is the script, I use to set a random wallpaper: for PROP in $(xfconf-query --channel xfce4-desktop --list | grep last-image); do

Get a random wallpaper

    randompic=...
    echo "Set $randompic on $PROP"
    xfconf-query -c xfce4-desktop -p "$PROP" --set "$randompic"
done

Regards,

hhannine commented 4 years ago

Thank you. Did you have 2 monitors? I wonder why they're duplicated in the listing. From your property output it seems that MX would be more problematic to support in comparison to regular xfce since the different displays are not simply enumerated but instead have some kind of names in the properties which will make it extremely hard to match the correct image pieces with corresponding monitors..

hhannine commented 4 years ago

Seems like it'll be necessary to scrape the names and positions of displays from the output of

xfconf-query -c displays -l

Would you post your output of that?

This would be a bit of work to get right but I think it would be necessary for regular XFCE as well since currently the ordering of displays is not matched between xfconf-query and superpaper so to me it seems likely that it should break image piece ordering for some types of setups, or if it does work currently on all setups it is pure luck.

I'm not getting a secondary display working on the MX VM so figuring this out might be a pain.

sva522 commented 4 years ago

Please find commande output below:

$ xfconf-query -c displays -l

/ActiveProfile /AutoEnableProfiles /Default/DVI-I-0 /Default/DVI-I-0/Active /Default/DVI-I-0/EDID /Default/DVI-I-0/Position/X /Default/DVI-I-0/Position/Y /Default/DVI-I-0/Primary /Default/DVI-I-0/Reflection /Default/DVI-I-0/RefreshRate /Default/DVI-I-0/Resolution /Default/DVI-I-0/Rotation /Default/DVI-I-1 /Default/DVI-I-1/Active /Default/DVI-I-1/EDID /Default/DVI-I-1/Position/X /Default/DVI-I-1/Position/Y /Default/DVI-I-1/Primary /Default/DVI-I-1/Reflection /Default/DVI-I-1/RefreshRate /Default/DVI-I-1/Resolution /Default/DVI-I-1/Rotation /Default/HDMI-0 /Default/HDMI-0/Active /Default/HDMI-0/EDID /Default/HDMI-0/Position/X /Default/HDMI-0/Position/Y /Default/HDMI-0/Primary /Default/HDMI-0/Reflection /Default/HDMI-0/RefreshRate /Default/HDMI-0/Resolution /Default/HDMI-0/Rotation /Default/HDMI-1 /Default/HDMI-1/Active /Default/HDMI-1/EDID /Default/HDMI-1/Position/X /Default/HDMI-1/Position/Y /Default/HDMI-1/Primary /Default/HDMI-1/Reflection /Default/HDMI-1/RefreshRate /Default/HDMI-1/Resolution /Default/HDMI-1/Rotation /Default/LVDS /Default/LVDS/Active /Default/LVDS/Position/X /Default/LVDS/Position/Y /Default/LVDS/Primary /Default/LVDS/Reflection /Default/LVDS/RefreshRate /Default/LVDS/Resolution /Default/LVDS/Rotation /Notify

hhannine commented 4 years ago

Thanks! Would you run and post the results of the following queries?

xfconf-query -c displays -p /Default/DVI-I-0/Active
xfconf-query -c displays -p /Default/DVI-I-1/Active
xfconf-query -c displays -p /Default/HDMI-0/Active
xfconf-query -c displays -p /Default/HDMI-1/Active

and for the displays that return true with the above query I would like to know the outputs of the queries

xfconf-query -c displays -p /Default/DVI-I-0/Position/X
xfconf-query -c displays -p /Default/DVI-I-0/Position/Y

Replace the DVI-I-0 part as needed.

If these behave / return output as I hope they would, I should have access to all the data I need to fix the support for MX.

sva522 commented 4 years ago

On my system, I always use two screens: 1 HDMI 1920x1080 and 1 DVI 1280x1024 :

❯ xfconf-query -c displays -p /Default/DVI-I-0/Active true ❯ xfconf-query -c displays -p /Default/DVI-I-1/Active true ❯ xfconf-query -c displays -p /Default/HDMI-0/Active true ❯ xfconf-query -c displays -p /Default/HDMI-1/Active true

So : ❯ xfconf-query -c displays -p /Default/DVI-I-0/Position/X 1920 ❯ xfconf-query -c displays -p /Default/DVI-I-0/Position/Y 56 ❯ xfconf-query -c displays -p /Default/DVI-I-1/Position/X 1920 ❯ xfconf-query -c displays -p /Default/DVI-I-1/Position/Y 56 ❯ xfconf-query -c displays -p /Default/HDMI-0/Position/X 0 ❯ xfconf-query -c displays -p /Default/HDMI-0/Position/Y 0 ❯ xfconf-query -c displays -p /Default/HDMI-1/Position/X 0 ❯ xfconf-query -c displays -p /Default/HDMI-1/Position/Y 0

hhannine commented 4 years ago

Thanks. I find it peculiar that your displays just seem to be duplicated under two names with no obvious reason or difference.

Would you test if both of the following commands change your wallpaper on the "HDMI" display? Replace path/to/image with a full path to an image of your own choosing:

xfconf-query -c xfce4-desktop -p  /backdrop/screen0/monitorHDMI-0/workspace0/last-image -s path/to/image
xfconf-query -c xfce4-desktop -p  /backdrop/screen0/monitorHDMI-1/workspace0/last-image -s path/to/image

Use different images or change it to something else in between so we know for sure if both work. This is important for the determination whether the numerical index is significant or not. Though I'm not sure if this is the last word on the issue since you don't have two HDMI displays in use..

hhannine commented 4 years ago

Would it be possible for you to test either two displays connected with DVI or HDMI? It only matters that they'd have the same connection type. I'd want to understand how this monitor naming scheme works before I start working out an implementation for this.

hhannine commented 4 years ago

Comparing this to the naming scheme that is used on regular XFCE this is a fair bit different. There I have my two virtual displays named "Virtual1" and "Virtual2" but then in the backdrop property listing they're only called "monitor0" and "monitor1". I'm not seeing any other way to connect the two naming schemes there other than assume that the listing order is the same...

sva522 commented 4 years ago

I'm not sure my config is not a bit broken somehow... No, I cannot test two displays connected with same output type simultaneously.

hhannine commented 4 years ago

One way to test that would be to boot up a live image and test what the display listing is in there?

Would you be willing to test the wallpaper setting thing I asked above? If either of them work (there's no surprises) I could start thinking about how to implement this for a test build.

sva522 commented 4 years ago

Il used MX live iso and installed all update. My screen setup is the same than before.

The second line work perfectly:

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorHDMI-1/workspace0/last-image -s path/to/image

unlike

fconf-query -c xfce4-desktop -p /backdrop/screen0/monitorHDMI-0/workspace0/last-image -s path/to/image

hhannine commented 4 years ago

May I ask why did you decide to close this?