KDE framework 5 - a humble idea

Michele Kipiel michele.kipiel at gmail.com
Sat Sep 21 12:19:35 UTC 2013


Il giorno sab, 21/09/2013 alle 01.51 +0200, Sebastian Kügler ha scritto:
> Hi Michele,
> 
> A few thoughts inline. I've also explained a bit of the technical 
> underpinnings of the ideas you propose, just to give you a general 
> understanding of how the system is handling these things, and how the concepts 
> could be described technically.
> 
> On Wednesday, September 18, 2013 11:26:21 Michele Andrea Kipiel wrote:
> > hello everybody,
> > 
> > the following message is part of an email i sent a few days ago to Marco
> > Martin, who then asked me to share my thoughts on this mailng list.
> > 
> > ***
> > my name is michele kipiel and i am a ux designer. I currently work for the
> > Kering luxury group, where i design and user test the checkout processes
> > and the overall UX of the luxury sites.
> > 
> > i recently came across a video showing the new KDE framework 5 improvements
> > (the one posted by phoronics, in case you were wondering).
> > 
> > watching that video reminded me of what immediately struck me when i first
> > tried KDE 4: the apparent lack of a true purpose for the plasmoids. as a ux
> > designer i constantly strive towards simplification and rationalization of
> > the user experience, and the first thing i noticed about the plasmoids was
> > that they didn't improve my experience in any relevant way, while taking up
> > lots of space on my small 13" laptop screen.
> 
> I think others have already pointed it out, but let me clarify that. The video 
> (it was probably me who took it) shows test and demo code. The goal here is to 
> exercise all kinds of graphical objects on the screen. This helps us in 
> porting a whole bunch of other widgets to Plasma 2. They're basically just UI 
> tests and examples and have zero purpose for an actual user.
> 
> That is to say that we're getting closer to having the basic components in 
> place to make Plasma 2 actually useful, and it's certainly a good point in 
> time to think about higher level ideas such as workflows between these 
> components.
> 
> > i asked myself a simple question: what do i need on my desktop? what i came
> > to realize is that i could really use a desktop which acts as a connection
> > point between the hundreds of apps that live on my hard drive.
> > 
> > current plasmoids act as discrete information bubbles (weather, rss, im,
> > social feeds etc..) and threy don't communicate with each other, which in
> > my opinion hampers their usefulness. in other words: what would happen if
> > KDE added a common backend to connect all the plasmoids (i'm thinking of
> > something similar to what elementary OS is doing with contractor)?
> > 
> > imagine this scenario: i have a file manager plasmoid open on my desktop,
> > along with other ones. i want to share one of my pictures to facebook. i
> > drag and drop the picture from the file manager plasmoid onto the "facebook
> > feed" plasmoid, which in turn activates the sharing feature, allowing me to
> > add a caption, tag my friends and eventually share the picture.
> 
> This gets me thinking that we can use Share-Like-Connect for this, in a 
> sligthly different manner. Many widgets and a handful of applications 
> "publish" their current document (url, or link to a file on the filesystem) to 
> other apps. The Share-Like-Connect widget uses this to offer sharing options 
> for this. I imagine, that a "gimp" plasmoid could use this same information to 
> offer a bunch of image transformations. You pick one, and the published 
> document becomes that newly transformed image, then you head over to the 
> share-like-connect widget to post it. This is just an example, but would be 
> entirely possible with how Plasma works today.
> 
> > now imagine i want to turn the picture in b/w before sharing it: i just
> > drag and drop the picture onto the "gimp" plasmoid, which shows me a
> > preview of the picture and lets me select an action form a pool of simple,
> > predefined functions. once my picture is rendered, i just have to drag it
> > from the "gimp" plasmoid onto the "facebook" one to share it.
> 
> Let's look into what we have for drag and drop support, in more detail. 
> Widgets can offer themselves for a certain mimetype being dropped onto the 
> "Desktop" (the containment in technical terms). We have applets which can 
> handle images for example. The picture frame registers itself as being able to 
> "handle" images (it doesn't tell what it does with it), so when you drop an 
> image onto the desktop, you get offered the picture frame widget. 
> Additionally, for images, you can set them as wallpapers. For text, you'll get 
> a Notes widget, etc.
> A widget defines what it can handle in its metadata, those can be two things:
> - a number of mimetypes (Picture frame has image/png, for example)
> - a regular expression to match a url
> 
> What happens when you drop "something" onto the desktop (the drop data can 
> contain either file data with a certain mimetype, or one or more urls):
> - We look through all installed applets, if we find one that can handle the 
>   dropped data's mimetype, we add that to the offers
> - If the dropped data only has a url, no data and no mimetype, we check the 
>   url's destination file for its mimetype, and use that to find suitable 
>   widgets
> - We look through all installed applets for one that supports a url and 
>   matches one of the urls passed in the dropped data
> We then end up with zero, one or more widgets that can handle the dropped 
> data, if there's one, we create that right away at the drop location, if there 
> are more, we pop up a menu offering the widgets.
> This whole mechanism also works for remote files (everything that's understood 
> by KIO).
> 
> From a higher level point of view, this means, for example:
> - You can drop an image from anywhere on the desktop and create a folderview 
>   there
> - You can drop an image on the desktop -> it creates a folderview
> - You can drop text there, get a notes widget
> 
> One thing that I had working at some point, but which never made it into a 
> release was dropping emails onto the desktop and showing a small widget with 
> the email's content. This worked by passing urls to emails in Akonadi, you 
> could drag and drop emails from kmail onto the desktop, and from there back to 
> kmail. 
> 
> Then, we have individual widgets that can receive dropped content. There, you 
> can basically do anything you like, check the dropped data and play tricks on 
> it or the urls destination. Go wild. An example for this is the pastebin 
> widget, which can post dropped content to "paste sites", depending on what 
> data it is.
> 
> That is to say that the system is already *very* flexible. I think the point 
> really is: How do we harnish this power to create awesome workflows. From the 
> user point of view, this will need a bit of design work, and probably fixing a 
> few things here and there to allow for some newly found usecases. I think one 
> of the most important shortcomings of these possible workflows I describe 
> above is discoverability. It's hard to see these workflows if they only show 
> up in small bits, on certain actions. They do not "offer" themselves to the 
> user. That may be a good thing, it should not get in the way, but there's a 
> fine line to reach how to make these things discoverable, while being non-
> disturbing.
> 
> One vision that I have about Activities is that you should be able to drop all 
> kinds of artifacts onto an activity, and in that way group these things, so 
> Activities. This is mostly possible today, but I think there are quite a bunch 
> of details in workflows which haven't been tested and polished.
> 
> > in these scenarios each plasmoid acts as a graphic frontend that exposes
> > some functions of the related programs, which don't even need to be
> > launched. it could be even possible to create predefined sequences
> > connecting different plasmoids (think of yahoo pipes, for instance).
> 
> One key difference with how the plugin system works is that the options are 
> not offered as actions, but as new objects. For example, you get offered a 
> Picture Frame widget, but not to apply a cool effect. (Not that this code 
> exists today, it just serves as a nice example that you brought up.) In the 
> SLC widget, you do actually have actions available, which again might be a bit 
> closer to the concept you present.
> 
> > i don't know whether this is possible or not, but i believe it could be a
> > massive leap forward for the KDE desktop paradigm.
> > ***
> > 
> > thank you in advance for every comment, positive or negative.
> 
> I think it would be good to do a couple of things:
> 
> - map out a few workflows that would be really useful
> - describe these workflows, possibly visually
> - design a solution around the above described discoverability problem
> - map the needed and missing functionality
> - design and implement the bits needed to realize the workflows
> - test, iterate
> 
> Hope my comments are useful.
> 
> Cheers,

hello,

thank you very much for this fantastic reply, you gave me lots of
information i was missing or unable to figure out. This really gives me
a lot to base my wireframes and workflows on, which is a great thing. 

I hope to come up with some workflow examples in a few days, so we'll
have something to talk about.

Thank you again
MK



More information about the Plasma-devel mailing list