Page MenuHomeLubuntu Development

Properly implement different wallpapers for different monitors
Closed, ResolvedPublic

Description

Hans has written a workaround which is usable for ensuring multiple monitors can each have their own wallpapers. Last I checked upstream rejected this, so we have to implement it as a distro patch I think (unless we want to put some Openbox conditionals in upstream code).

We should properly implement this, so a workaround isn't needed.

Related Objects

Event Timeline

tsimonq2 triaged this task as Normal priority.Apr 13 2019, 5:22 PM
tsimonq2 created this task.
tsimonq2 added a parent task: T41: Lubuntu 19.10.

The script Hans wrote is totally usable and is better than the suggested workaround of using nitrogen to handle the wallpaper, since this requires not using pcmanfm-qt to manage the desktop. No one rejected Hans' script, but it's not really a solution. The problem one finds reading the upstream issue is that both different display servers and window managers look at things differently, so there's not really a generic solution. Ultimately this is going to need new code upstream.

the script can be used as a starting point if someone wants to do something. But I use xrandr to get the actual dimensions of the screen I believe that it is not generic.

Right, exactly. It is, after all, xrandr, not waylandrandr. Also, I guess that some window managers see multiple displays as one whole display while others see them as separate, apparently regardless of what xrandr says.

I thought that lxqt should be getting the same info I get with xrandr for their monitor config. https://github.com/lxqt/lxqt-config/tree/master/lxqt-config-monitor
They said they used lxrandr-qt before, but now they use libkscreen.
Not sure if libkscreen can handle wayland but might be a way to go. There exist kscreen and it gives the information needed (number of monitors, size and position)

I have an idea, instead of use xrandr to get the current monitor configuration to use ~/.config/lxqt/lxqt-config-monitor.conf [currentConfig] info.

[currentConfig]
settings\1\connected=true
settings\1\currentMode=71
settings\1\currentModeHeight=800
settings\1\currentModeRate=@Variant(\0\0\0\x87\x42p\x3\xda)
settings\1\currentModeWidth=1280
settings\1\enabled=true
settings\1\hash=3dec8dac1b5e4b5d524f5b9e6e200374
settings\1\name=LVDS1
settings\1\primary=true
settings\1\rotation=1
settings\1\xPos=0
settings\1\yPos=0
settings\2\connected=false
settings\2\hash=
settings\2\name=TV1
settings\3\connected=true
settings\3\currentMode=72
settings\3\currentModeHeight=1024
settings\3\currentModeRate=@Variant(\0\0\0\x87\x42p\x14\x37)
settings\3\currentModeWidth=1280
settings\3\enabled=true
settings\3\hash=a7e2997749dc33d4398a096ebba2d7b3
settings\3\name=VGA1
settings\3\primary=false
settings\3\rotation=1
settings\3\xPos=1280
settings\3\yPos=0
settings\4\connected=false
settings\4\hash=
settings\4\name=VIRTUAL1
settings\size=4

and we should do the "intervention" here https://github.com/hmollercl/pcmanfm-qt/blob/master/pcmanfm/desktopwindow.cpp#L618
in the
// really generate the background pixmap according to current settings and apply it.
void DesktopWindow::updateWallpaper()
function

for documentation purposes, I already did the modifications and is in a pull request waiting for review and aproval to be merged https://github.com/lxqt/pcmanfm-qt/pull/1043

PR already merged, we should wait new release to have it for 20.04 or package the git.
https://github.com/lxqt/pcmanfm-qt/commit/dfdf1fa0db00330d927e664c8e6829c0835adfa7

I have tested this from unstable-ci and it works as intended, I think we should add this to default settings so that it is set by default.

I tried to let it as default in the code, but tsujan didn't let me.
We will have to change it in the xdg that goes to ~/.config/pcmanfm-qt/lxqt/settings.conf entry PerScreenWallpaper=true

Do we want to patch this or wait for a release? I personally feel like we shouldn't wait as a release may not come in time.

instead of patching we might have to take a whole git version, there are to much commits from the last release. We should try to get a new release and establish a deadline to get it or do the git/patch

wxl changed the task status from Open to Upstream.Jan 26 2020, 7:51 AM

Flipping this to upstream since we'll wait for them and if it gets down to the wire, we'll do what @hmollercl suggests and take the git version.

This is already present in 0.15 which is in 20.10