Bug 42778 - Configure backgrounds per monitor in Xinerama mode
Summary: Configure backgrounds per monitor in Xinerama mode
Status: CLOSED FIXED
Alias: None
Product: kdesktop
Classification: Miscellaneous
Component: wallpaper (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Aaron J. Seigo
URL:
Keywords:
: 47224 59682 71264 77896 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-05-18 17:18 UTC by Ashley Collins
Modified: 2009-01-02 20:18 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Screenshot showing the different behaviours for multiple monitor setups. (93.94 KB, image/png)
2005-06-19 22:59 UTC, David Saxton
Details
Screenshot showing the individual mode for configuring the background (91.64 KB, image/png)
2005-06-19 23:01 UTC, David Saxton
Details
Config dialog set against the xinerama desktop background (126.12 KB, image/jpeg)
2005-06-23 22:51 UTC, David Saxton
Details
Implement per-monitor configuration of background for kdesktop and kdm (59.45 KB, patch)
2005-06-24 20:57 UTC, David Saxton
Details
Implement per-monitor configuration of background for kdesktop and kdm (81.81 KB, patch)
2005-07-22 23:36 UTC, David Saxton
Details
The new Background Dialog (88.26 KB, image/png)
2005-07-22 23:37 UTC, David Saxton
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ashley Collins 2002-05-18 17:08:59 UTC
(*** This bug was imported into bugs.kde.org ***)

Package:           kdesktop
Version:           KDE 3.0.0 
Severity:          wishlist
Installed from:    Compiled From Sources
Compiler:          g++ 2.95.4
OS:                Linux
OS/Compiler notes: Debian unstable

At the moment backgrounds and wallpapers are based on the size of the whole desktop in xinerama mode.

Could that be changed to be based on the size of each monitor and then repeated across all monitors?

For example background mode "Elliptic Gradient" centered on the middle of first screen and repeated on the others.

Or wallpaper mode "Centered" or "Scaled" to be based on the geometry of the first screen and repeated on the others.

Many thanks.
Ashley

(Submitted via bugs.kde.org)
Comment 1 Jason Keirstead 2002-09-24 21:27:31 UTC
I think that another option should be to have a different background on each xinerama desktop, just as youc an have different backgrounds on each virtual desktop. Currently, when I try to apply my 1280x1024 background on my multi-monitor setup at full size, it is all skewed out of proportion because it is stretched to twice its width. 
Comment 2 Wolfgang Silbermayr 2003-04-01 16:16:42 UTC
I would also like to be able to use different wallpapers on different screens because 
I am using a 1280x1024 screen and one with 1024x786 and it really looks ugly 
when the wallpaper gets cut off on the second screen. 
Comment 3 James Tyson 2003-05-13 11:06:04 UTC
I would suggest something similar to OSX where the "Desktop Background" control panel 
actually opens twice, once on each screen to enable the user to set the background 
(gradient, colour, picture, whatever) on each screen as seperate entities. 
Comment 4 katios 2003-07-14 18:46:31 UTC
Would like too the same or different wallpaper adapted (stretched) on each
screen instead of on the virtual size, since the stretched result is ugly.
(See also bug 59682)
Comment 5 Malte S. Stretz 2004-08-02 11:34:00 UTC
*** Bug 71264 has been marked as a duplicate of this bug. ***
Comment 6 Michael Jahn 2004-08-02 19:50:26 UTC
*** Bug 59682 has been marked as a duplicate of this bug. ***
Comment 7 Michael Jahn 2004-08-02 19:50:32 UTC
*** Bug 77896 has been marked as a duplicate of this bug. ***
Comment 8 Michael Jahn 2004-08-02 19:51:12 UTC
*** Bug 47224 has been marked as a duplicate of this bug. ***
Comment 9 Jake 2005-01-12 07:07:57 UTC
I would just like to add that I believe this should be an _option_. I have found some great wallpaper that is designed for dual monitors. I would still like to be able to use one picture to span the two monitors, but I think this would be a good option to add.
Comment 10 hesham 2005-02-28 00:57:26 UTC
I would also like to suggest that the "background slideshow" be fixed as well to take advantage of this functionality to allow rotation of backgrounds across all available desktops, eg: if you want two different pictures per screen it would rotate those two instead of just the left screen for example.
Comment 11 David Saxton 2005-06-19 22:57:14 UTC
I've started coding this feature, so soon we should have per-monitor configurability of background :). I'd love to hear suggestions / criticisms of the plan so far:

There will be three different "modes" for when the user has more than one monitor:
* Single - All monitors will be treated as one background (i.e. the same as what we currently have).
* Repeated - The user will configure settings for one monitor, and they will be repeated for each monitor. So for example, the "Elliptic Gradient" background will appear once on each monitor, appropriate scaled et al; slide shows will show a random image on each monitor; etc etc.
* Individual - Each monitor can be configured individually. This will work alongside selecting the desktop, e.g. if the user selects "Screen 1" and "All Desktops", then he will be configuring the background image for monitor 1; or if the user selects "screen 2" and "Desktop 3", then he will be configuring the background image for desktop 3 on monitor 1.

The above options seemed like the only way to allow all that a user might (reasonably) want to do.

I'll attach a couple of screenshots of what the UI looks like so far, the first one showing the different modes, and the second one shows the ability to select the desktop and the monitor in the individual mode.

P.S. This is my first time I've played around with the kde code base, so wish me luck :)
Comment 12 David Saxton 2005-06-19 22:59:24 UTC
Created attachment 11517 [details]
Screenshot showing the different behaviours for multiple monitor setups.
Comment 13 David Saxton 2005-06-19 23:01:03 UTC
Created attachment 11518 [details]
Screenshot showing the individual mode for configuring the background
Comment 14 David Saxton 2005-06-19 23:40:31 UTC
I've had a slight change of plan: the "Repeated" mode described above will be replaced by an "All Screens" option in the screen select dialog; much like how the user can currently either configure All Desktops at once, or each desktop individually.

This will leave two screen configuration modes: either treating all monitors as one desktop (as it currently is), or the ability to configure the background to display per-monitor (where the user can either select each monitor individually, or apply the background to all monitors).
Comment 15 Brat Wizard 2005-06-20 01:12:48 UTC
This sounds sweeeeeet ! Thank you very much for coding it up. I will very much enjoy using it.

Let me know when you get it ready.
Comment 16 mi+kde 2005-06-20 02:03:17 UTC
Thanks for getting to this, David!

One thing, though. Please, be careful to distinguish multiple monitors joined into one screen (as with Xinerama) and multiple screens (as with DISPLAY being :0.0, :0.1, :0.2 ...).

For example, with multiple screens setting backgrounds individually is currently possible, but specifying different screen-savers (like DPMS turn off on one and slide-show on the other) is not.

Also there is a bug in localization of multiple screens. The first one (:0.0) has desktop and trash icons properly localized, for example, but the two others (I have three screens at work) ignore localization settings.
Comment 17 Pascal Cavy 2005-06-20 11:44:45 UTC
Well it seems ok to me. 
But will this code be applied to the kdm login screen background configuration part too ?
Comment 18 David Saxton 2005-06-23 22:49:19 UTC
The code used by kdm is the same as used by kdesktop, so kdm will get per-screen support as well (although I haven't tested this yet).

Most of the code now seems to be working. I'll attach a screenshot showing the config dialog against the desktop background. However, there are still a few quirks that need sorting out.
Comment 19 David Saxton 2005-06-23 22:51:10 UTC
Created attachment 11561 [details]
Config dialog set against the xinerama desktop background
Comment 20 David Saxton 2005-06-24 20:57:16 UTC
Created attachment 11573 [details]
Implement per-monitor configuration of background for kdesktop and kdm

The patch is against the svn kdebase.

I've tested thie code in a variety of setups - xinerama and non-xinerama,
different positioning / sizes of screens, etc, and it seems to work for all of
them (at least on kdesktop). The code also works for kdm, presumably in all
sorts of weird setups as well.

The only remaining issue is with the DCOP interface for the kdesktop background
- see "dcop kdesktop KBackgroundIface". Some of the function names are
ambigious now (e.g. "setCommon" - this applies to common desktop, but could
equally apply to common screen). I've so far left the DCOP interface untouched
for backwards compatibility issues, but it deserves further attention.

Otherwise, this bug looks like it can be closed :)
Comment 21 David Saxton 2005-06-27 00:46:29 UTC
*cough cough* Are there any KDE developers CC'ed into this bug report that know a little about kdesktop et al, and can comment on the patch / accept or reject it into SVN? (I know you're out there :))

Thanks,
David Saxton <-- not an all-knowing kde developer
Comment 22 David Saxton 2005-07-22 23:36:25 UTC
Created attachment 11884 [details]
Implement per-monitor configuration of background for kdesktop and kdm

Updated the patch to reflect changes discussed in kde-devel thread:

http://lists.kde.org/?l=kde-devel&m=112197335022184&w=2
Comment 23 David Saxton 2005-07-22 23:37:40 UTC
Created attachment 11885 [details]
The new Background Dialog
Comment 24 mi+kde 2005-07-22 23:48:14 UTC
Thank you very much, David!

Perhaps, you can also help kicker's maintainer with the bugs 108965 and 108970? He, pretty much, refuses to accept the problem as legitimate :-( Yours,

     -mi
Comment 25 David Saxton 2005-07-23 02:31:29 UTC
Hello mi,

I've looked over the bug reports, and it sound's like you've got a pretty strange setup!

Having played around with xinerama / multihead with two monitors, it's pretty confusing from a code point just to work out what does what (terminology such as screen, display, monitor, desktop, etc seems to get mixed about quite a bit, and code for handling different setups can get pretty ugly). Although many developers might be able to test a multihead setup with two monitors, the number of developers who either have enough monitors to test combined xinerema + dual head, combined with the masochism needed to get the code working in all setups, is probably somewhere around zero.

If you're feeling brave enough, you could delve in and fix the code.

Alternatively, you could identify what you like about dual head, and see if kde can be improved in these areas. In the long run, this is pretty much the only viable option - even if combined xineram + dual head working, it would quickly suffer from bit rotdue to lack of people using it.

Comment 26 mi+kde 2005-07-24 04:43:40 UTC
The reason, I do not use Xinerama is that one of my four monitors is completely different from the three others (a CRT, with bigger resolution than the LCDs). The secondary reason is that DRI/GLX does not work on Radeon cards in Xinerama mode -- only using the MergedFB option.

And the MergedFB option, in turn, only works to unite two heads of the _same_ card. And I have two (an AGP and a PCI). You think, KDE can help solve all these issues?

As for bit-rot, I upgrade fairly often, so I'll spot a regression quickly :-)
Comment 27 Kasper Sandberg 2005-07-24 07:57:48 UTC
#26:
it is not true that radeon doesent work with glx in xinerama, i do it on my laptop + tvout
Comment 28 mi+kde 2005-07-24 17:53:26 UTC
Kasper! Please, look into your /etc/X11/xorg.conf or XF86Config and find the "MergedFB" option in the video card section. I'm sure, it is there.

In any case, only one of my two radeon cards (PCI) is even supported by DRI on FreeBSD. The other one (AGP) is too new :-(
Comment 29 David Saxton 2005-07-27 01:58:19 UTC
Some good reasons there mi, I guess. It wasn't until recently that I was able to have glx working on both screens with nvidia drivers.

Well...if you want stuff fixing, you'll still need to do it yourself, as there don't seem to be any kde developers who have both the ability and the inclination to do xinerama+dualhead. In most cases, it's probably a matter of making a few minor adjustments to the code to handle config issues. If you need help, I'll try and provide it...

As for this bug, it's getting frustrating to have received so little feedback from kde developers (although thanks to those that have given feedback - in particular, Aaron Seigo).

Comment 30 mi+kde 2005-07-27 04:11:59 UTC
Why can't we all just get along, right?
Comment 31 David Faure 2005-07-28 12:55:55 UTC
Aaron: you seem to have some clue about this topic, which I don't. Please commit if the patch is OK with you, I certainly have no objections myself.
Comment 32 Aaron J. Seigo 2005-07-28 18:05:13 UTC
yes, i've been talking with David Saxton on irc about it for a bit and it will make it into 3.5 =)
Comment 33 Matt Rogers 2005-08-20 01:40:34 UTC
SVN commit 451134 by mattr:

Apply the patch to configure backgrounds per display in
Xinerama mode. 

Fixes bug 42778. If it works, praise David Saxton who wrote it and if
it doesn't work, blame me.

David: Thanks for the patch!

BUG: 42778



 M  +27 -14    doc/kdm/kdmrc-ref.docbook  
 M  +3 -1      kcontrol/background/bgdefaults.h  
 M  +362 -105  kcontrol/background/bgdialog.cpp  
 M  +17 -8     kcontrol/background/bgdialog.h  
 M  +120 -40   kcontrol/background/bgdialog_ui.ui  
 M  +166 -1    kcontrol/background/bgmonitor.cpp  
 M  +66 -2     kcontrol/background/bgmonitor.h  
 M  +368 -7    kcontrol/background/bgrender.cpp  
 M  +68 -3     kcontrol/background/bgrender.h  
 M  +66 -12    kcontrol/background/bgsettings.cpp  
 M  +30 -8     kcontrol/background/bgsettings.h  
 M  +4 -1      kcontrol/kicker/positiontab_impl.cpp  
 M  +2 -2      kcontrol/kicker/positiontab_impl.h  
 M  +66 -52    kdesktop/bgmanager.cc  
 M  +2 -2      kdesktop/bgmanager.h  
 M  +10 -0     kdesktop/kdesktop.kcfg  
 M  +11 -8     kdm/kfrontend/krootimage.cpp  
 M  +1 -1      kdm/kfrontend/krootimage.h  
Comment 34 mi+kde 2005-08-20 01:56:02 UTC
Can the patch from attachment 11884 [details] be simply applied to 3.4.2?.. Thanks!
Comment 35 Aaron J. Seigo 2005-08-20 07:45:43 UTC
no, as we don't add new features to previous releases, just bug fixes. this will be in 3.5, however, which will be out soon.
Comment 36 FiNeX 2009-01-02 20:18:57 UTC
Bug closed. Kdesktop is no more mantained.