On Tue, Mar 9, 2010 at 6:17 PM, Chani <chan...@gmail.com> wrote: > but if we make the activity span all monitors, we run into other issues - what > happens when the number of monitors is reduced? where do all the extra > containments go? how does the user look at them again, or delete them?
There are also issues when you connect to a new monitor, or change the monitor layout, they will end up with a completely blank activity if the activity is dependent on the resolution and layout of the screens. For people using many different monitors and/or use projectors often, this means they will end up with blank activities fairly often. I do not think that is a good approach. > since I've never worked with multiple monitors, I don't really know what sort > of use cases to expect. do people often change the number of monitors they've > got? do they use the multiple-monitor thing with projectors, or just have the > projector show what's on their screen like my laptop does? do they actually > use the different monitors for different tasks? do they plug in > different-sized > monitors at different times? Changes to the number of monitors are common with laptop users using multiple monitors, since if they take their laptop anywhere it will lose a screen. Further, the two monitors often have different resolutions, since the monitor resolution is fixed. The current implementation has some very serious problems when using multiple monitors with different resolutions, to such an extent that I have totally given up trying to use activities at all. It is just too frustrating to keep ending up with unusable activities on the screen much of the time. This is due to the issue of the plasmoids in activities not being scaled to match the current monitor resolution. Please see this bug report for a more in-depth discussion: https://bugs.kde.org/show_bug.cgi?id=184162 As for projectors, most modern presentation programs have the ability to show the presentation on one screen and on the other screen show a tool with a small version of the slide, a timer, notes, a preview of the next slide and perhaps other information. So using two different screens for a presentation is, in my opinion, a better approach, and one that is supported, if actively not encouraged, by presentation programs. For that reason I think you will need to count on many people using laptops with projectors having two screens, and changing the resolution of their screens routinely. There is also the issue with people who bring their laptops to and from work, which I do occasionally. My monitor at work and my monitor at home not only have completely different resolutions, they have completely different aspect ratios as well. And neither is remotely similar to the resolution of my laptop's monitor, nor are they the same as the projectors I encounter. I personally do different things at the same time on different monitors, so being able to have different activities on different monitors might be useful. But it might make the software too complicated. If you go with this, though, it is essential that the widgets in an activity are re-scaled if the activity ends up on a monitor with a different resolution. Otherwise you would end up with activities that can and do appear on both monitors but are only usable on one of them (which is what we have now). > so... I dunno... should we build the API so that it's possible to have >1 > visible activity? or should we decide that the activity is completely global, > and then figure out how to gracefully handle changes in the number of > monitors? I have a proposal for what I consider to be a good solution, assuming you go with all screens sharing the same activity. Activities are shared across all screens, so all screens have the same activity. If you add a new screen, a new containment is added to all existing activities (I'll use "containment" as shorthand for the whole-screen containments like desktop and netbook, as opposed to the panel containment or container widget). The new containment takes the same wallpaper as what I will refer to as the primary containment, the containment that appears on the primary screen (whichever screen that happens to be). If you remove a monitor, that containment disappears, and the widgets it has are no longer running and taking memory, but its layout is remembered, so if you plug in that monitor again, or any other monitor, the containment, including all of its widgets, is placed on that monitor. Which screen gets which containment depends on the screen priority, one containment always appears on the primary screen, the second containment always appears on the second screen, and so on for however many screens there are. The advantage of this method is that it doesn't matter what the positions of the screens are, what their resolutions are, what type of screen they are, they will just work. You plug it into a new monitor and all of your activities will work just fine. It also means that the same containment will always appear on your primary screen, whatever that might be. The critical thing here is that containments have to rescale the widgets they contain depending on the monitor resolution. Otherwise you will end up useless activities when you change resolutions, which is what we have now. Now there is a possible variation on this, although I do not know whether it is a good idea or not. The idea is that you can have the same activity associated with more than one containment. So say you have a "work" activity, you can have different containments that all are associated with the work activity with different properties and/or different widgets. If you have multiple monitors, you can pick which of those containments appear on each monitor, and change them around at will, but all monitors will always have the same activity, and if you change the activity it changes on all monitors. If you plug in a new monitor but don't have enough containments, a new blank containment that has the same settings as the last-created containment in the activity will be made. If you then disconnect the monitor, those containments then just go back into the pool of containments you can pick from. It might even be possible to have the same activity on two different screens at the same time, although I am not sure you would want to. This has the advantage that you can make and customize the containments for external monitors even when those monitors are not connected. So you could set up a containment for use with a projector when you don't have a projector handy. Further, you could have it so people could change the activities independently on their two monitors, allowing them to have the same or different activities on the two monitors depending on what they are doing. You could even have an option people could set that would either force the two monitors to have the same activity or let them be independent. -Todd _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel