Warning: this post belongs to the category of the evil teaser ones, that announces features for the release after the next near one 😀
KDE SC 4.4 has some improvements to the notification system, as I shown there, but still some problems remains:
The popup can still be very big, covering a big part of the screen, stealing input area or just being too big for smaller screens.
Also, being notifications and jobs shown in the same window, it automatically shows again and again the same information, being the individual job progress when a new notification arrives r vice versa.
So, things are changed a bit in trunk (so what will be 4.5) let’s look at a video worth more than 1024 words:
This is of course still subject to change a lot before 4.5 release, but it’s on the right track.
When a new notification arrives, it is shown by a popup on its own, without jobs progress. This popup only shows a notification at a time partially covering all the others (maximum 4 total) in order to save space. to see a covered notification is enough to pass the mouse over its title.
The big popup accessible by clicking the “i” button is still quite big indeed but is only shown when the user asks explicitly for it. it shows the usual individual job progress and the old notifications browser introduced in 4.4, where is possible to filter by application. Is a convenient place to search what happened to the PC when you were away for instance.
Similarly, when there are jobs running, the big popup is not shown, but only a really tiny global progress bar, that can even covered by the windows, so won’t be blocking any mouse input to precious areas of the screen.
Another nice thing is that if you compare it with widgets like The microblog plasmoid or the opendesktop ones you see that a very common design pattern is emerging for similar things, making the experience pretty consistent.
As presented on this blog a bit ago the central and more important view for Plasma Netbook Shell is this so called “Newspaper” activity: applets are positioned in an arbitrary number of columns (default two), one on top of the other, scrolling when there isn’t enough space, giving you actually an “almost infinite” vertical real estate
At the beginning this was decide just for a screen size issue, but with time this has been revealed to be a damn good metaphor that could have been expanded, so let’s see what the direction is.
As said pretty much over the place, the “netbook” is not a little laptop is a totally new class of device, that is kinda inept to do what the computer has been used for ages, create content.
The shift we are seeing now, is a shift on using the computer to create content only in certain moments (i.e. work ;p) and most of the time just “consuming” content or creating only really lightweight type of content (hello microblogging).
A different beast, a different use
This is what has been called (and somewhat mistaken for) the shift towards the web based content, but is not just limited to that, the web is just the pipe to convey this content and often the web browser is a kind of a suboptimal tool to access some kinds of that content, but this is another story.
The netbook is the perfect device for a quick check of that content when you are on the move, or not want or have the possibility to use a bigger but sometime inconvenient computer.
Now, there is something that needs full focus of the attention of the user ad of the machine, like reading a big article on a website or watching a movie, and there is something that instead most of the times needs a quick “peek” at it to see if there is something changed, and -maybe- only in this case I’ll give full attention on that task, like:
microblogging: what my friends are saying? or just update your status with a line or two of text.
Facebook or sites like that: often just used as microblogging, if i need some more advanced features of the website i will give full attention to it
Weather: often all is needed is just a quick answer: will it rain tomorrow?
Email: at start just want to see the titles of the few last emails, only if there is something that looks important i will give the attention to emails right now.
There are other examples, like appointments, to-do lists and similar things.
The concept of giving “full attention” is indicated in plasma by that little “full screen” icon i talked about here, this is available both in the usual plasma desktop and in the scrolling page layout of the netbook. this button will launch an application, like akregator for the news widget and gwenview for the picture frame or just open the a web browser to the proper URL in the case of services like remember the milk or the weather.
Pages and activities
The concept of the newspaper is perfect for that, it contains widgets that will give this quick “peek” on the possible information sources one could be interested on the internet, giving a quick idea, as soon as the device is turned on on what could be interesting/important and what definitely won’t be.
This video gives a typical work flow of the netbook Plasma interfaces: it shows how is easy to add and remove “pages” and organize widgets in them, keeping the concept of “activity” that was introduced in the plasma desktop, so one could have a page that informs on what’s going on in several social networking sites, or showing some news from rss sources and so on, having another page activity that is more work oriented perhaps showing appointments and work related emails (widgets for emails and appointments still won’t be available in KDE SC 4.4, but they are in the works)
Here you can see some widgets that can attach to web services: the microblogging client, the 3 opendesktop plasmoids, and the Remember the milk client
The first thing one can notice is how they look very similar, they’re pretty good at their task and some guidelines on how to do a widget like that can be extrapolated:
You may want to follow this look and behavior when the service you want to connect offers a list of “stuff” that can always be interesting to give to the user, such as microblogs, news items, friend list, email messages, whatever.
This list should be presented as occupying the total or nearly total area of the plasmoid (maximizing the content, minimizing the “chrome”)
don’t make assumptions on how big the widget will be, test it from a very small size (always think to run your widget in a cellphone and ask yourself if it would look usable in there), to very big
when there isn’t enough space, make it scroll the content, some UI elements (like the input field of the microblog applet) are in fact less important than the content, so shouldn’t be always visible stealing from the content, you may want them to scroll away as well
make it work in the panel, so in 90% of the cases you may want show the content in a popup
Scrollbars nested in other scrollbars are not really good, so when embedded in the newspaper the widget should get longer to not have a scrollbar (well if it won’t become -exaggeratedly- long)
Some of those points, like scrolling, automate resize and panel-friendliness will be got almost for free using standard Plasma components, like Plasma::ScrollWidget and Plasma::PopupApplet
In the future I hope (is this a new year resolution? i don’t know :P) more and more of this kind of widgets will surface, with the procedure to create them more and more easy and automated when possible (and I also hope to see them written in the simple javascript bindings). This kind of widgets will also be the key to start to colonize new type of devices, from cellphone like tiny things to 10 foot interfaces like mediacenters
Ah, by the way, hopefully
Where I will give a talk about all this stuff 😀
Those are not radically new features, but rather a refinement of what it was available in KDE Plasma Desktop 4.3
When the mouse cursor is over a task, the corresponding window gets highlighted (dimming all the others), this works for groups too, highlighting the goup’s windows. This was already available in 4.3, but it’s works in a way more reliable way now.
What’s new is that now moving the mouse cursor over the taskbar tooltips triggers the highlight effect too, useful to quickly pick a window from a group, since the thumbnails are now clickable too, activating the proper window.
Another new and very useful feature (even if a bit “hidden”), is seen around the middle of the video: if you click on a task group with Ctrl pressed, it doesn’t open the usual popup menu, but it triggers the present windows effect, giving you a fullscreen chooser of the group windows
Tasks should have text or not? The text in the taskbar is a really important disambiguation, so should always be shown when possible. but in some cases it’s just messy because there is not enough room. so now with vertical tiny taskbars or when there are really many tasks the text is authomatically disabled and enabled as soon as possible.
Going a bit more deeply on how KDE SC 4.4 will support multitouch, here are 3 longer videos:
The first one shows marble. Is now possible (with the usual disclaimer on devices and systems that support it, hoping it will become a more pervasive feature) to zoom the earth with a two fingers gesture, making a retty natural interacion
The second one shows Plasma: it’s possible to move, resize and rotate the widgets with two fingers, making them a bit more “real objects”. Another place of Plasma that supports multitouch is the “Blackboard” widget (painting with two fingers simultaneously ftv) and all the animated scroll widgets, such as the one used in the microblogging plasmoid and in the netbook and the webkit based widget.
The last one shows in detail the Webbrowser widget, in particular two fingers scrolling (note that is still possible to select text with a single finger, while scrolling with two) and pinch zoom with two fingers again, all correctly maped to any transformation the widget can have.
A while ago i received from Nokia a cute Dell Latitude Xt2 multitouch tablet pc, to produce some demos of a really really nice new feature of Qt 4.6: multitouch.
Qt provides two ways to acessing multitouch: one more abstract, where the type of gesture and direction of fingers movement already “parsed” so you already know if the user wants to zoom, scroll or rotate, that’s QGesture that’s useful to control for instance scrolling and zooming in a web browser.
If you want instead something more raw, the position of every finger now and on the last sampling, you have instead QTouchEvent. That’s useful if you want for instace paint with multiple fingers on a paint program or want implement some weird type of gesture not provided as stock. oh, and no It’s a rather different (and more simple) concept compared to Multi pointer X, since is a single event with multiple positions, rather than multiple simultaneous events.
So I tought that in KDE we have soe things that would make as an impressive demo with multitouch, so why not give it a try with Marble and Plasma :). So that’s the result (thanks to the trolls for the final edit):
This OGG version, unfortunately this is only a “raw” version, without music and titles, but gives the idea
It will be supported in KDE 4.4. Th only catch is that right now X11 doesn’t support it (..yet:p), so just as a tech demo will be possible to try it on the windows and mac builds of KDE
The bug hunting and stabilization period is starting to pay off. Those days I’ve taken the systemtray and the notification system as a target and started hammering on it…
The target were mosty two
Slash the count of bugs related to notifications… and 13 were closed, other 13 remains, most of them can be probably be closed as well, just need to wait and see how the last patches behave in the various situations.
Refine and take into shape a neat little feature entred just 2 days before te freeze, that by itself closes several bugs too.
So, what it is? sometimes notifications pop up when the pc is unattended, sometimes is something not important at all and if it gets lost in oblivion who cares, sometimes it could be quite important, for instace somebody on IM attempted to contact you and now he is offline, maybe it’s the case to write him/her an email uh?
Now notifications, while they behave exactly as before, being displayed for a short time and then disappearing, they are also “archived” for a short time (varying depending if the pc is used or not) and they are separed by application, so it’s easy to look inside all the old notifications of kopete for instace.
This screenshot shows the notifications popup of the systemtray opened: the user asked to see all the kopete notifications, so only them are visible, even tough there were some from kmail too.
Is not the first time the user switches to the kopete notifications: the oldest two were already present the time before, so now they appear “collapsed”, while the newest ones are open.
Since I saw Plasma for the first time, I immediately imagined it as something really organic, where you can manipulate the objects on the canvas like one would do with real objects, just grab them with one or two hands and move them, rotate them, stretch them to make them fit as you like.
Now Qt 4.6 among a ton of new features has really qute multitouch capabilities, and made this possible, here is a sneak peek:
Won’t say more for now, more on that later :p
I did the first part of the video, than the trolls put some pepper into it (love the epic music :p)
another quick micro thing that will be in Plasma for KDE 4.4: until now, the taskbar items appeared and disappeared “magically” and when a task disappeared between other two, every task immediately disappeared from where it was, appearing in the proper place. That is sooo computer behaviour, one of the little things that makes computer to look innatural and scary…
This is made really easy by the new Qt 4.6 animations framework, and for now there will be just a little taste of things like that, then with Qt 4.7 this will become almost automagic, since it’ll support animated layouts natively
Another screencast of yours truly: this shows the Plasma netbook shell running on a bog standard Asus EeePc 1005Ha.
It can be seen the new neat animations of the search and launch interface when results are loaded. What’s neat is that it seems to run quite well on this pretty basic hardware and animations are just as smooth as they should be 🙂
For KDE 4.4, we’re giving a bit of touchscreen friendliness around Plasma, a thing common on touchscreen based uis is the so called flick lists and scroll views. They can be web browsers, simle item views, image explorers and so on.
You just touch (or drag with the mouse, it’s not limited to touchscreens of course) a random point of the view, drag it a bit, release and the contents will be launched with a neat animaton effect, with a resembrance of something real.
In Plasma, if you use the ScrollView widget you’ll get that for free, and if the item view contains some sub widget that wants to listend to mouse clicks as well, is sufficient to call the function ScrollView::registerAsDragHandle(QGraphicsWidget *), with some eventfilter magic, the element registered will still react to mouse click, but will pass them to the view as well. An example of this is the icon view of the Plasma netbook shell: if you click on an application icon it will launch the application, but if you press the mouse over one, move it and release, the application pointed from that icon won’t be launched, instead all the icon view will scroll and will still scroll for a while if the mouse moved over a certain speed.
There is a small video that show this behaviour over several plasmoids: the web browser, the microblog, the OpenDesktop knowledge base client and the Search and Launch interface of the netbook shell.
The WebView widget will behave like that as well, and if you implement a custom one and you want that behaviour -for free-, you just have to call Plasma::Animator::self()->registerScrollingManager(yourwidget), and provided you gave the proper Q_PROPERTY to your widget, all the magic will be done behind the scenes. The properties you’ll need are:
scrollPosition: the position in pixels of the contents relative to the viewport
contentsSize: the size of the contents: for instance an image could be 1680×1050 pixels big, even if the widget that is vieweing it is just 200×200
viewportGeometry: the actual viewport of the contents could be the bounfingRect() of the main widget or could even be something smaller: for instance excluding the area taken up by the scrollbars, if present.
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.