Page MenuHomeLubuntu Development

Properly implement different wallpapers for different monitors
Stalled, Waiting on Upstream, NormalPublic

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.

Event Timeline

tsimonq2 triaged this task as Normal priority.Apr 13 2019, 12:22 PM
tsimonq2 created this task.
tsimonq2 added a parent task: T41: Lubuntu 19.10.
wxl added a subscriber: wxl.Aug 11 2019, 1:23 PM

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.

wxl edited parent tasks, added: T100: Lubuntu 20.04; removed: T41: Lubuntu 19.10.Aug 11 2019, 1:23 PM
wxl mentioned this in Projects Needing New Code.

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.

wxl added a comment.Aug 12 2019, 9:59 AM

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.

wxl moved this task from Needs Review to Blocked on the Development Team board.

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

hmollercl added a comment.EditedNov 16 2019, 7:02 PM

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

kc2bez added a subscriber: kc2bez.Dec 19 2019, 6:42 AM

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.Sun, Jan 26, 1: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.