Saturday, December 06, 2008

tasks widget and multi screen

I've been picking something in Plasma to concentrate on each week since the freeze. This last week it was the new tasks widget and libtaskmanager. chrigi, who did much of the work for grouping and sorting in libtaskmanager, and Marco both pitched in and together we re-worked the tasks widget o that the code is a lot clearer internally in the tasks widget itself. Such pre-release bit rot is pretty common when one component, in this case libtaskmanager, gets a heavy reworking; often components that depend on it are kept in a basically building and functioning state during the worst of the chaos. Sometimes it works out really smoothly, but not always. In the case of porting the tasks widget from 4.1 to chrigi's work in libtaskmanager, it needed some love.

This was clear when I went to fix some bugs reported from beta 1 only to find it very hard to do so due to the fragility of the code. It was essentially working, but needed some clean up and general code quality lovin'. As usual, the Plasma team stepped up and things, while probably not perfect (things never are ;), is a lot nicer. Performance is up, crashes are fewer .. and now we can go about rooting out remaining bugs and problems with a lot less headache.

It was impressive to see in some cases how entire sets of methods from the widget could be removed with chrigi's new work in libtaskmanager. He removed, for instance, all management of startup tasks as being somehow different from regular tasks in the widget: all of that is now handled in the library, making the widget itself simpler. Loverly.

Work remains to be done, but it's getting there nicely. This coming week I'll be shifting my focus to multi-screen issues. In theory, with Kephal (the fancy dancy screen management framework in 4.2) we should be able to nail the remaining beasties 4.1 had in these situations. Dual head will still likely suck to some degree (Plasma's fault, not Kephal), but I want to work on getting xinerama style setups and hot plug monitors working flawlessly.

The multiscreen bug fixing work probably won't land in time for beta2, unfortunately, but we now have enough people running trunk with multiple screens that that shouldn't matter too much.

Thanks for all the bugs reported on multiscreen issues, it will be our roadmap for what to concentrate on this week. =)

14 comments:

zapp said...

Hi Aaron,
good to know that the multiscreen stuff is on your roadmap. I have a dual head (I guess) setup at work with one intel chipset and two outputs (tdmi and vga) which is driving me mad. How can we (the users) help you with this? Maybe a "what information to include in multiscreen related bug reports" note will be helpful. I for once still don't get the different multiscreen scenarios (xinerama, mergefb, twinview, dual head) entirely...

Keep up the good work!

Jordi said...

You may want to take a look the all the dualhead, etc. Reported on the general "kde" component.
I guess Kephal already close some of those but noone who really knows it have trasverse them.

TonyM said...

Great to hear you are working on multi-screen. Unfortunately, you won't be able to make some of the bugs go away because Qt itself has bugs in this area (which you probably already know, hence the existence of kephal).

I really need to look at Qt 4.5 and see if they are addressing any of the multi-screen issues they have. Try changing the resolution of your left monitor, assuming you have a 2nd to the right.

Porcel said...

Aaron,

Thank you for choosing to pay more attention to multi-screens setups. Those that want to promote kde among academic and business users need a flowless experience when working with external monitors and projectors.

My medion akoya netbook dual-boots mandriva and windows because I can´t do dual screens properly in Mandriva (kde 4.1.3). In windows, I am able to clone the content of the laptop screen to the external monitor AND scale the content appropriately so that it uses the right native resolution for each one (1024x600 for the netbook and 1680x1020 for the external one), but this isn´t possible in linux. It only outputs to both by keeping the resolution at 800x600 which is just terrible.

This is the only thing where the user experience is currently better in Windows than Linux. As a linux user and sysadmin, I would like to nail this so that I can promote kde 4 with confidence among my users.

So, I have two questions:

1) Am I clear on what I want: scaled clone output that respects each monitor native resolution and

2) What can I do to make it happen?

I am willing to put debugging time and a bit money to fix this.

Thanks again for listening and I look forward to your response.

TonyM said...

Porcel,

I don't think this is possible, even in windows. As far as I know, clone output must have the same resolution on both monitors. You are stuck with whatever modes are supported by both monitors.

Additionally, some Linux drivers have a max screen size. I have an Intel i945GM card and it is limited to 2048x2048. My built-in panel is 1400x1050, so I can't have more than 1024x768 on an external monitor. There is a work-around to allow me to have a 1680x1050 external monitor, but it disables glx and requires an X restart, yuck.

So, most of this is out of KDE's hand. However, what KDE can and should do is present you with a clear interface that communicates these limitations. Krandr still needs some work ;)

David Palacio said...

Hi Aaron,

I have a Twinview setup that works almost perfectly and would love to help to polish it more (ksplash, maybe kdm. it was fun watching the cashew jumping around the screen with each svn update recently)

CitizenKane said...

Please feel free to use me as a resource for this. I often feel like I'm one of the few people with a multi-monitor setup. I have no problem being a guinea pig to help make this rock!

Porcel said...

TonyM,

You are quite wrong about this not being possible. As I stated, I am currently doing just what I described in Windows.

I have one external monitor at 1650x1080 and the laptop one at 1024x600. The output from the laptop to the external one is scaled to the external monitor´s native resolution and it works beautifully.

So, it is indeed possible. Whether this is a limitation of Xorg, intel drivers or kde or a combination of those, I don´t know.

I have been using Linux and kde since 1999. I give presentations all day long and carry my netbook around a lot often hooking it up to an external monitor so that I can work more comfortably.

This issue is my only real show-stopping bug.

Aaron J. Seigo said...

@people wanting to help test: i'll be working on these things in #plasma on irc wednesday-friday. you'll need an svn build of KDE, the list of bugs (see link below) and some patience ;)

http://bugs.kde.org/buglist.cgi?product=plasma&component=multiscreen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=normal

@Porcel: that is a driver feature, afaik. scaling th one resolution down to another probably isn't a very commonly requested feature due to the distortion it creates making it only really useful for people doing presentations such as yourself. in any case, it's not something we address in KDE code. we rely on the drivers and x.org to provide the features; KDE can only provide access to configuration and then use them properly.

in the case of scaled clones, to KDE it would look just like one screen anyways.

Hans said...

Everyone who's using Twinview, can you please try the Plasma screensaver? (Allow widgets on screen saver).

I've got a weird issue (that Chani "refuses" to fix it - and I understand her!): I can't click anywhere. It works good when I disable Twinview.

To make it even stranger, I can scroll the Add Widget list (bring up with Ctrl+A), but left/middle/right mouse click doesn't work.

Slackware 12.0
X11 7.2.0
KDE from trunk

David Palacio said...
This comment has been removed by the author.
Porcel said...

That's the thing Aaron, there are no artifacts or weirdness in the output.

If screenshots were of any use, I would be happy to oblige. By the way, how do you show off KDE at conferences when you are doing a presentation on your laptop and a projector?

Do you just choose a very low resolution for both as that is the only thing that seems to work for me?

notanavragelosr said...

the biggest problem I've been having with multiple displays is desktop activities. As soon as you try to actually use the ZUI, it seems like plasma gets all kinds of confused.

Let's say I have two activities (A and B) and two monitors (L and R). I have it set up so that monitor A is left of B, with the two acting as one large viewing area. Normally, I have A on L, and B on R. When I zoom out, A and B appear side-by-side on BOTH monitors (L and R). This happens when I click the cashew from either monitor.

Trying to zoom in is where things get really interesting. When I click "zoom in" on activity B while viewed on screen R, I would expect activity B to fill screen R. That happens. Sometimes. Other times, activity B will be filling monitor L. Sometimes, Activity B gets cloned, and shows up on both screens. That gets kind of weird - moving widgets shows them traveling the same distance (relative to the physical monitor edges) on monitors L and R.

There just doesn't seem to be a rhyme or reason to it. My "workaround" so far is to have an activity switcher in every activity. With a few random clicks, I'm able to set up the activities relative to the monitors in the way I like.

Mr. Multiple Monitors said...

Multiple Monitors are awesome! I use six monitor everyday and I love it. I guess I'm addicted to productivity! Great Posting!