I was talking with Thomas Zander on irc last night about the Plasma desktop shell and how it's shaping up. I was going on about how happy I am that we're able to ship the thinnest default panel we've been able to thus far in a KDE release: KDE 3 had a 46px default, 4.0 had a 48px default, 4.1 had a more reasonable 38px default ... and 4.2 will have a much slimmer 35px default. Personally I prefer really, really thin panels but for the default we're constrained by things like the size of systemtray icons and making it look nice with them. (I have some thoughts about how we can mitigate this in 4.3 with a variable height panel ... but that's not for 4.2.)
Still, being able to shave 11 pixels off the KDE3 default and 3 more pixels off of 4.1 (which shed a few pounds already) is great. Thomas noted, however, that he has wide panels and hides them. Fair enough, that's one of the beautiful things about autohiding panels.
He noted, however, that Plasma only unhides the panel when you move the mouse in the space the panel actually exists. So, for example, if you have a panel taking up 50% of the right side of the screen and it is vertically centered, the top and bottom quarter of the screen won't untrigger a hide.
Whereas Kicker would just unhide everything on a screen edge when you came in contact with it, Plasma tries to respect people's choice of panel size. I often have a small panel in the top left of my screen for quick launch the handful of apps I use-and-close throughout the day; I really don't need it popping out when my mouse reaches for the left side of a maximized window. So Plasma's size sensitivity is a nice improvement (and it does it without polling the mouse.. woo!).
Thomas said it'd be neat if the panel 'glowed' when off screen. I thought about it for all of about 2 seconds before running off to implement it. It was just too cool of an idea to not do it right now. Excitability: 1, Sleep: 0.
I figured that if I made the input only window Plasma uses to trigger unhiding a bit bigger, say 30 px larger than necessary on all sides, and painted a small glow where the panel was when the mouse entered that input only window ... it would look to the user like the panel "sensed" the mouse was near and announced its existence. This would give Thomas a hint as to where his panel actually was without having to hunt too much: just get near it and then follow the glow. Since input-only windows don't paint to screen nor capture events (unless they go out of their way to do so), this wouldn't otherwise interfere with the user interacting with other windows. It should be completely seamless.
How hard could it be, right?
I had a proof of concept up and running in less than five minutes. I spent another hour or so on various details before going to bed (somewhere around 03:00 *sigh*) and then implemented the painting of the glow today (SVG makes this stuff sooo easy) and committed.
The only caveat is that the glow painting looks horrible without window compositing. So even though all the mechanics work perfectly without composite, there is no glow when there is no window compositor due to aesthetics. If we come up with an aesthetically pleasing solution for the non-composited scenario, turning it on is a matter of deleting a couple lines of code.
So, the end result (other than me losing an hour more sleep last night) is that if you have composite and you have a hidden panel, it will glow as your mouse nears. Think of it as your panel saying, "Oh! Hello! I was wondering when you'd return!" =)
Friday, November 14, 2008
Subscribe to:
Post Comments (Atom)

17 comments:
Nice work. I'm with you on preferring really thin panels - it was pretty huge in 4.0! This sounds great.
Pics or it didn't happen.
@chimai: it looks like this:
http://img147.imageshack.us/img147/228/glowwxz5.png
really need to do a screencast of it to show how it really feels, though.
Hi, Aaron. Nice touch. About non-composite desktops (as to ATI owners that can't have composite and video/opengl at the same time because of the lack of dri2), did you try a dithered glow? Or even a solid "bump" (three or four pixels) following the current plasma theme? Such thing would improve greatly the usability to ati-owning-panel-addictes like me. :)
Hi Aaron! I was wondering, since I already tried configuring the panel to be really thin and I got a pretty awkward issue with the system tray icons, if this is some glitch only on my machine. Aren't the system tray icons scalable ?
Nice work! The new panel look -much- better than the previous one. The new theme need a bit of work (little to glossy right now) but the buttons are nicer.
1 little thing anoy me, is to possible to set the margin between multirow task to 0px by default? A lot of space is wasted with the current margin. Here is a mockup:
http://img528.imageshack.us/my.php?image=snapshot6pc5.png
It is the same theme (I did not draw the gray border, but the pixel to put it is there, I am just lazy.
It is not perfect, It is tiny, but at least it is possible to read. The font size have been reduced by 1px, it was not nice at 10px.
@aaron : Thanks for the screenshot ;)
I'm a GNOME user since my first day in the GNU/Linux world (which was 5 years ago), but I cant help but be amazed by KDE development. Thanks a lot for the time and the work you give to the whole community!
Really cool idea. It's great that you developers find the time to show everyone out there your ideas, and how the development of something as exciting as the desktop is done. It's easy for KDE supporters and evangelizers to do our job of informing plain users more easily.
BTW, is committed to trunk? I'm compiling it to try it myself. :-)
Thing panels? I liked them too so much in the 3.5 series. I wanted all of them to look as thin as possible and sometimes I needed a bigger panel with two rows for applications.... It was great.
When 4.0 came out, I did not like at all about the panel size... so **** big and screen space taking.
Now with 4.1.2 I have used to keep the bigger panel than default. I love the one-row mode what is currently because it is just so good to use by mouse, even that you would have 20 windows open it is nice to use. Mayby we could now "copy" the idea "from" Windows 7 that system tray could have only icons (no text at all), what I wanted to see on 4.0 (so I invented that even before MS windows 7 was shown ;-) )
I have tested the playground plasmoid of two rows mode and it brings the KDE3 feelings but I preferr the big panel with one row now.... strange how the taste evols (for some people this would be going backward)...
The "sensing panel" idea is great. More "inteligence" you can get the user feel when using KDE4, thats better.
If the "glow" is done with SVG, does it allow the glow to get brighter when you move mouse closer the panel or is it just the same what "turns on"?
Like if you have panel hidden and mouse cursor is 60px away from panel it gets 10% glow, when it is 55px it glows 30% and when 50 it is 50% and when under 40px it glows 100% etc.
And then we could get the "glow" to inform the user about things what needs user attention from panel. It would "glow" blinkin, every 2second about 1second time. Got the memories of K.I.T.T on knight rider (the original ;-))
with the red "eye". That could be cool effect too somewhere...
Could it be done with the plasma-style for applications what needs attention? Example you have IM window behind browser window, and then comes message. Instead just brighting up the system-tray or blinking it littlebit, it would "scan" across it.
Or then getting the window icon (the whole thing where is the icon and text, what it is even called?) jumping littlebit from system-tray when needing attention (or when moving mouse over them etc).
These ideas are little off-topic about this glowing thing but just came up mind when reading this great new idea :-D
If my panel starts talking to me I need to up my meds! :)
Hugs
Big sister
I had a few questions for the video cast but I'm not sure I'll be able to see it live, so I'll leave them here and hope you'll be able to answer them:
- I heard Plasma is now on kdelibs in 4.2. What does this bring to the average user? Will we start receiving significant Plasma updates before major releases? Or is it just an internal thing?
- Most of the Plasma rants I read seem to be driven by ignorance from the users rather than limitations in the (future) possibilities of Plasma. Most of this could be seen as a PR problem as the marketing people use more generic slogans instead of trying to explain the most visible component of KDE4 and its flexibility. Do you have any planned change in how you explain Plasma to the users? (I guess the video cast will help "hardcore" KDE fans, but not the average user).
- In a somewhat related note (but more of a suggestion), there are frequent and unfair simplification of Plasma as a simple "Vista clone" because the default appearance has some similarities (mostly in color use and the kickoff menu). Some time ago, I read something about a "welcome" plasmoid (never heard of it again and still not sure what it's really meant to be), maybe you could have something like a plasma layout selection rangeing from "simple" (the current default + folderview as desktop), "normal" (maybe GNOME like with two panels, etc) and "advanced" (more panels, auto-hidding, more plasmoids) just to be able to show off what plasma can do to any new user and avoid people thinking of it as just one single layout.
thanks for your time.
Great idea! I love that glowing thing already.
And speaking about plasma features, might I direct your attention to this one
https://bugs.kde.org/show_bug.cgi?id=170584
Hmmm, I'm using a 25px panel just fine with 4.1 (well, 4.1 + autohide backport, with autohide disabled). It's large enough for the systray icons to fit.
I would like to see an option to turn off text on entries in the task manager- I use a vertical panel and the text is unreadable by default. Having a larger Icon with text on Tool tip would be both more ascetic and practical - alternatively automatically drop text if panel width is under a certain size and layout is vertical
@danni coy: that's one thing I've wanted to see for so long. the option to hide text labels for traskbar entries and to group multiple application windows together by default
@mmmike: you mean like windows7 taskbar ;), then I will also vote for other nice features of windows7 taskbar like peek...
Cool stuff :)
But in defense of KDE3's kicker, I must say that its autohidden panels have the same behaviour of unhiding only when the mouse is exactly over them. Then you have the option of triggering unhiding when touching the whole edje, or just a corner, or the corner at the oposite end of the screen :)
Post a Comment