Thursday, August 21, 2008

folderview containment with wallpaper

Below is a screenshot showing folderview as a containment with a wallpaper:



There are still a couple things missing: icon position persistence (so the position when dragging an icon to an area of the screen gets saved/restored between starts of plasma), an obvious way to get at the configuration UI and toolbox actions. (Update: just fixed the toolbox actions.)

Switching to folderview is done via the desktop settings dialog with a combobox right under the Desktop Theme selection. Easy peasy.

Jason Stubb's new systray applet also supports hiding icons; we just need an expand button to give access to the hidden icons. I'm pondering whether the hidden icons should appear in a popup or expand the widget in the panel .. hum hum .. Beyond that, the new systray supports much nicer painting of the icons and specialization of the icons letting us transition to a new spec on X11 that doesn't suck ass by mixing new and old style icons without the user seeing any difference (as well as most likely be able to support win32 systray icons on that platform).

So we have a few rough edges to sand down yet, but things are looking nice.

35 comments:

maninalift said...

Champagne moment

:)

maninalift said...

Do I have this right?. Wallpaper drawing is handled by a plugin that can be used by the default containment or by folder-view and potentially other containments?

On another point, do you know whether any/many/all of the Akademy talks recorded and whether there any plan to post them?

Antal István Miklós said...

Can't wait to have this in KDE 4.2!

JT said...

Cna you please show a screenshot with a small folderview with its wallpaper on top of a background with another different wallpaper. Thanks.

wheatbix said...

Champions :)

Also wondering; can the text at the top saying "Desktop Folder" be toggled off?

Thanks very much for this; it will make KDE 4 much more familiar to those used to older user paradigms.

That said, I think using folderview to segregate icons from widgets is a neat idea. It's sort of the reverse to Vista, which uses a sidebar to segregate widgets from icons (although widgets can also be put directly on the desktop). Both work well.

Aaron J. Seigo said...

@maninalift: that's correct. wallpapers are their own plugins now, so the choice of containment and wallpaper is now orthogonal.

it also allows us to provide really crazy/sexy wallpapers as options without bloating the defaults. i'm hoping the QtEdje one will drop into svn this week, actually.

@JT: I'm .. not .. sure what you are asking? do you mean a screenshot of a regular folderview widget in a containment? in that case it looks like it always did. wallpapers only apply when it's a containment.

@wheatbix: currently, no. though there's a patch that should make it into svn soonish that allows one to set their own label for the folderview; setting an empty label should get what you want i think.

as for being the reverse of vista, yes, it sort of is. the difference is that for plasma, widgets are first class items not a tack-on. vista tries to retain the icons as first class citizens instead, and that's something that just doesn't fly if you want a generic system for all sorts of laptops, desktops, netbooks, mobile devices, TV's, etc.

danzam said...

Very nice work!!!

Could we have in the future desktop's activities threated like virtual desktops?

maninalift said...

How easy is it to translate normal openGL to a background plugin. Would it, for example, be straight forward to adapt a screensaver to act as a wallpaper.

Indeed perhaps it would be possible to write a plugin that could display any screensaver as a background.

balinares said...

Hi Aaron,

Thank you for the wonderful work, as usual! :)

As for the systray's expanding to show hidden icons, may I suggest that it behaves the same as Qt4 QToolbars, for consistency? QToolbars in Qt4 where not all icons can be displayed have good discoverability and a smooth animation that shows them growing (beyond the toolbar area if needed) until they can display all the icons they contain.

Thanks. :)

JT said...

Hi Aaron

What I mean it, say I have a nice pretty blue wallpaper. Can I have, say, two folderview plasmoids open, each with their own different distinctive wallpapers as backgrounds, say a reddish one for one and a greenish one for another?

Forgive me if that wasn't always the intention - that would be excelelnt though.

Aaron J. Seigo said...

@balinares: yes, that's kind of what i was thinking. it's unlike other systray implementations out there, but what i like about is that, besides the consistency you note, it also doesn't disturb the layout of the rest of the panel.

@jt: ah, i see. no, that isn't currently planned. doesn't mean it won't ever happen, but just isn't currently planned.

personally, i'd prefer to be able to tag the text label at the top with a dash of colour (and perhaps a border element so even if the top is obscured you can see which is which? hrm...)

Joe said...

We need something like Amarok's project neon for the whole KDE4 project ;)

baxeico said...

IMO the distinction between different folderviews is not an issue, because they are "static". I mean, you always know that your Desktop folder is at top left of screen, your remote SFTP folder is at bottom right, and so on.

Folderviews are not meant to be moved often on your screen, so is the position that helps your brain to know which is which.

Apart from this: thank you Aaron and all Plasma devs for all these great news! And welcome back Aaron, I've missed you a lot. :)

SolidSnake said...

@ Joe,

I think there is OpenSuse Build Service with actual svn Version and Ubuntu Nightly.

Isn't is what you are searching for?

Chani said...

@maninalift: screensavers are Scary Code. they are their own little processes, and the way they draw doesn't get along very well with qt painting. I'm not saying it's impossible, just that you'd have to be pretty brave to dive into that stuff. :) I think it'd be quite the challenge.

as for opengl... well, opengl+composite kinda fails on my old laptop with intel drivers (a fix for the problem exists but was reverted) so I can't comment on that.

Joe said...

@solidsnake
Could you point me to the ubuntu ones ? The only thing i can seem to find are daily builds of ubuntu that come with gnome...

Marcel said...

When will you FINALLY let us *hide* the annoying top right cashew? :\

Aaron J. Seigo said...

@Marcel: "When will you FINALLY let us *hide* the annoying top right cashew?"

let's be sporting about it and make it a race! what do you say?

you try to grasp the concept that i'm not preventing that in any way, and i will provide a containment that doesn't have a cashew in it! let's see who accomplishes their task first.

i'm pretty sure i'll win even if i don't bother writing the code any time soon given that i've been explaining this issue for that last 6 months and you apparently still haven't gotten it.

but let me try again: the idea is that if you don't like the cashew, you use a containment without one. then you just pick that containment from the list. voila.

the code required to provide such a containment is probably < 50 LOC these days, complete with wallpapers and what not.

i've got a lot of different things i could implement and various bugs to fix in front of me. some of them are actually useful and some of them are really important (the two don't always overlap). bitching at me about the cashew, given the situation described above, is a great way to keep that particular item prioritized at the bottom of my own list.

see, i can make my friends happy and happy users even happier, or i can slave to your bitching about something trivial.

let me consider that one for a minute.

JT said...

Well, I'd like a Kicker cashew at the top left or bottom left corner, as it'd be easier to hit than a button, and the other corners to have optional customisable cashews (e.g. launchers).

I think that'd be easy to code.

maninalift said...

Aaron, sorry if I seem like I'm stalking you given my number of posts on this blog ;)

@marcel little aesthetic things like that may feel awkward to begin with but usually one quickly gets used to them.

That makes me think, is the cashew part of the theming? I guess that if it isn't now it will be at some point and that might make Marcel happier.

On which subject I know that the plasma peeps are hoping for developments in Qt SVG that will involve more flexible and generic theming. I guess (hope) this will includes evaluation of general algebraic expressions for, for example, colours.

yman said...

Awesome Awesome Awesome!

Useless stuff that's nice to have. aside from persistence, it would also be nice to have an options about how they are ordered:
LTR, RTL, top-to-bottom, or bottom-to-top

and also alignment. If you choose a vertical direction, you need to choose horizontal alignment, and vice versa. Even if such choices aren't available via GUI, they should still be configurable via text configuration for i18n purposes.

I'd still want to at least have the option of left aligned, top-to-bottom ordering, because that's what I'm used to.

BTW, my plan to buy a laptop specifically so I'd have something on which to use KDE4 is proceeding quite well, although I'd be buying a much cheaper one than I'd hoped. I'm just saying this so you'd know that a super-stingy and super-lazy person like myself loves what you made so much he's actually willing to work hard and spend money just to use KDE4. Your work is awesome! I might even donate money, although I wouldn't hold my breath if I were you, since I am a super stingy person after all.

anothersysadmin said...

About how to show the hidden icons in the systray: I think that the best option could be to have a systray "expansion effect" just like standard QT4 toolbar effect, so that when you click on the >> button you get a nice animated effect that creates a larger (vertically, not horizontally) square with the rest of the icons. So there wouldn't be any "applet shifting" because it is on the vertical side (or horizontal if you have a vertical panel) and on an higher point in th Z-axys.

jamboarder said...

@anothersysadmin: Hmm... sounds almost like an.. Extender.. I wonder what might be possible if we used extender functionality in the systray?

Kevin Kofler said...

Will it be possible to disable the icon hiding in the systray? I think it's much nicer to have all the systray icons displayed without having to click some button, and I don't think I'm alone there.

Aaron J. Seigo said...

@kevin: of course. it's actually the default to show all icons.

Jonas said...

"Beyond that, the new systray supports much nicer painting of the icons"

Does that include "the black border around systray icons when composite is turned on" is now history?

Joe Kowalski said...

So since backgrounds are handled by a plugin, would it be possible to have a plugin that generates a photo spread of pictures from an arbitrary directory? Would be very cool.

Aaron J. Seigo said...

@jonas: thus far, yes. assuming that the current approach holds up through testing, it'll be like that in 4.2 and we might backport it to 4.1.x as well.

@joe kowalski: yes, sky is the limit. it even supports basic mouse interaction (click, move and release events).

JontheEchidna said...

@Joe
Neon already offers nightly kde builds. (Well, maybe more like weekly...)
Anyway, if you already have the Neon repo in your sources list, then you can install kde-nightly.

yman said...

@Aaron:
If any Plasmoid can be used as wallpaper, then effectively you have full screen Plasmoids. I wonder if the concept of full screen Plasmoids can be useful for anything?

BTW, have you decided to stop using the term "Plasmoid"? Because I can't remember you using that term lately, but you do use ""applet" and "widget".

Jake Sallee said...

Great job. I've been using 4.1 since it came out and I'm definitely happy with it. I can't wait to see all the stuff in 4.2. Thanks for all your hard work aseigo.

Aaron J. Seigo said...

@yman: "widget" is the umbrella term for "things on the plasma canvas" (plasmoids, google gadgets, masos x dashboard widgets, edje files, etc); a plasmoid is a native plasma widget (using the plasma API; so google gadgets or macos dashboard widgets aren't plasmoids); an applet is the actual C++ class that gets used, and i'm just used to referring to that class in technical discussions =)

ah, terminology.

@jake: glad to hear you're enjoying 4.1 =)

Jason Stubbs said...

With regard to showing hidden systray icons, I'd really love for the showing of hidden icons and the selecting of which icons to show could be done via the same popup (or pop-out?) window. If the button to pop out the hidden icons also showed the number of available icons, making icons hidden by default would also be doable...

Edward said...

First off, thanks for the great work!

Second, ATM, how do you access the desktop configuration in order to revert back to "Desktop" mode, rather than the new "FolderView" containment? I couldn't find the config window by right-clicking anywhere.

I managed to get back by editing the plasma-appletsrc by hand.

Thanks!

Aaron J. Seigo said...

> ow do you access the desktop
> configuration in order to revert back
> to "Desktop" mode

in 4.2, it's part of the desktop settings panel