Friday, April 10, 2009

easily amused

Let it never be said that I'm not easily amused: the Weather wallpaper shows the weather outside on your desktop. Tonight it was a bit cloudy, so it showed an evening landscape with clouds. A little while later the clouds blew away outside and the wallpaper morphed (there's a nice 1 second fade :) into a nightscape with a clear starry sky. How cool is that?!

I also couldn't stand that the tab bar, that totally looked like it had a button like a scroll in it, wouldn't let me grab and drag it. So I implemented that. So not only are tab bars in Plasma animated (thank Marco for that) but you can now grab the tab selection and drag it to another tab. As a bonus: it's all animated. Click on it, throw it a bit and it moves over.

Which leads me to wonder: if we got rid of the visual representation of tabs as .. well .. tabs and instead had something that looked like a bar with labels where one of them was selected, which was the original Oxygen style concept (and when the artists were harassed into not doing that I was very upset) and is the current Plasma approach, what else would we come up with? The only downside I can see right now is that click-drag-reorder isn't as easy, but click-drag-different-tab is just so ... natural!

Other than that, I spent the last day or two working out little regressions that were pissing me off, like how the popup for the tasks widget weren't perfect or how the line edit in the application launcher didn't get focuse when opened ... little things that just rub me the wrong way.

I'm also increasingly excited about the netbook stuff as we move forward with it because it's allowing us to put into practice the promised and inherent flexibility of the Plasma framework in a way that has real, practical purpose. It helps remind me that this isn't just a "make a desktop" project, something the world really doesn't need in my opinion, but a "make a way to make user interfaces we need" project.

Oh, and wallpapers that adapt to the world outside. It's like my computer is a living thing observing the world ... and sharing the same DataEngine as all the other weather stuff.

Did I mention we also have a geolocation DataEngine now? ;)

5 comments:

Mats said...

I have a question about data engines. If a data engine collects info from say a externa webserver. If the webserver does not respond is the whole plasma desktop stop it execution or is the data engine running in its own thread or are you supposed to do everying in asyncronous mode.

illissius said...

Am I understanding this correctly? You grab the tab-selection indicator thingie on tab A, drag it to tab B, and as a result the contents of tab B are now shown instead of the contents of tab A?

Why would you do this, which involves moving your mouse to point A, pressing, and holding down the mouse button while you move it to point B, when you could just move it to point B and click (i.e. click on tab B to select it)? While potentially cute, preserving easy reordering of tabs via drag and drop looks more important to me.

Of course, we should probably note the distinction between static tab bars, like those in a configuration dialog, and dynamic tab bars, as in a web browser. The two are alike in many ways -- you select a tab to show its contents and hide the others' -- and differ in others: in one case, the tabs are always the same and reordering them doesn't make much sense, while in the other, they aren't and it does. Given this, is it a better idea to make them look and behave the same, and reap the benefits of intuitiveness-via-consistency, or to make them look and behave differently and gain some functionality?* Actually, the web browser example is somewhat closer to the taskbar metaphor, but the taskbar doesn't support drag and drop reordering either (even though it should), nor do most web browsers** let you do things like minimize a tab (even though they should).

* This is oversimplifying: you can also make them look the same and behave differently, allowing drag and drop reordering in one but not the other, which is common and has its own disadvantages: people expecting configuration dialogs to support tab reordering after experience with a web browser, or not expecting that the web browser would support it -- and not even trying -- after experience with a configuration dialog. (Having them look the same while having drag and drop do two different things (selection vs. reordering) would, of course, be a disaster.)

** Notable exception of Opera, which I use, once you enable it. (Used to be default, until they decided to ape Firefox's UI as closely as possible to gain market share, which I don't believe worked.) Also 99.99% odds that Firefox has an extension for it.

Tux Maniac said...

Cool work Aaron! Where's the mandatory video?

Aaron J. Seigo said...

@Mats: all network access is done out of process so the "web server doesn't respond" scenario doesn't affect plasma; currently DataEngines themselves are still in process, though i've been doing some research into how to transparently move them out of process as well.

@illissius: yes, for dynamic vs static tab bars, the behaviour should be different and probably exactly along the lines you note.

and it is, as you also note, not really "dynamic vs static" so much as "representing collections of documents vs showing a number of pages"

@Tux Maniac: i was just way to tired last night to be bothered to do up screencasts. i did consider it, but i'd just gotten home from a dinner out with friends where we made a huge 5 course meal from scratch; i love cooking but just like a long coding session it leaves me happy and tired :)

yman said...

So the next logical step is to provide an option to have the date, time, and weather information determined by the current location, as provided by the geolocation data engine.