Page MenuHomeLubuntu Development

Properly implement different wallpapers for different monitors
Open, 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.EditedSat, Nov 16, 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