Today Sebas and I put the finishing touches on a couple of neat features and I felt compelled to share them with you via screencast because together they are just that cool! ;)
The first feature, which is mostly thanks to Sebastian (I just did some janitorial work on the patch), is the ability to drop remote content onto a Plasma::Containment such as a desktop activity or a panel. Plasma, via KIO, tries to figure out what you are dropping and then offers a set of matching widgets, if any, to create for that content.
Dropping HTML? Get a web browser widget or a link to that page. Dropping an image? Get a picture frame or an icon pointing to that image.
What happens when you drop something that one of the wallpaper plugins understands? Well, you get an entry for that wallpaper in the resulting menu of choices. That means you can drag an image from a remote system, say off a webpage, and it will download it and set it to your wallpaper. Each wallpaper plugin can define what kind of data (mimetype) it can accept, so this feature is completely dynamic depending on what wallpaper plugins you have installed. That's quite a bit more flexible than what we had in KDE 3, where the drop file types were hardcoded inside of kdesktop.
So that's one new and cool feature (remote content drops) combined with one (improved) feature many people have been asking for (wallpaper drops).
Interestingly, I told several people (including people at distributions) how a patch to do the wallpaper drops would look like. In spite of many people insisting that this feature was of imminent importance, nobody sent in a patch even though the "how" was spelled out in detail. Finally, I got around to implementing it at Tokamak 3 one evening after someone mentioned it on IRC. I was too tired to work on anything serious so I figured I may as well implement wallpaper drops. The "moral" of the story is that I'm happy to help you with the "how" of writing a proper patch for a given feature, but if you don't do it then you'll have to wait until it rises to the top of my priority list which may be, depending on the feature, unpredictable.
Without further ado, I give you "Dropping Remote Images To Set Your Wallpaper" via blip.tv (where there is also an OGG video version available and waiting for you):
Saturday, September 12, 2009
Subscribe to:
Post Comments (Atom)

24 comments:
Do you think it would be difficult to take the plasma digital clock widget and when its clicked to bring up the calender that a +add event could quickly be created to the default calender in Korganize?
I am wondering if this has been thought of but not implemented for a technical reason or if it doesn't fit with the touch screen philosophy of KDE4. I would assume a tap and hold action would be enough to bring up the option after you have tapped the click to show the calendar.
we're waiting on PIM to be solidly on akonadi before doing that integration work. hopefully 4.4 will be the turning point.
That is some positive news has I am pleased to be using KDE4 even on my work desktop machine. Now I am just waiting for everything to start being fully integrated with nepomuk and stirgi, Including my cell phone ;)
I still have one issue with akonadi... I have worked with the devs on irc and still have times when it randomly fails with unregistered dbus process error.
Great news! A question, though. You mention that dropping a picture gets you a picture frame. But what if you are using a wallpaper that supports images? Will you get a picture frame, a new wallpaper, both, or a menu where you can pick one? The same applies to, say, rss feeds, which have multiple widgets associated with them.
Todd this was answered in the post and screencast.
"What happens when you drop something that one of the wallpaper plugins understands? Well, you get an entry for that wallpaper in the resulting menu of choices. That means you can drag an image from a remote system, say off a webpage, and it will download it and set it to your wallpaper. Each wallpaper plugin can define what kind of data (mimetype) it can accept, so this feature is completely dynamic depending on what wallpaper plugins you have installed."
Essentially you get a menu asking what you want to do with the data.
Will this feature work with other non-kde browsers like Firefox and Chrome?
does this work too with folderview as the containement ? (quite a comon setup for the non advanced user) (couldn't check out trunk yet)
and nepomuk also stores the original download location ?
How do I use drag'n'drop with a maximized browser?
Right... not possible :-/ And resizing all the apps I have maximized would take ages, copy'n'pasting the url, wgetting it into a wallpaper dir, firing up the desktop config dialog and then I can select it...
I think the whole drag'n'drop business is severly broken for users like me that mainly use maximized windows.
I have some ideas which could be used to "fix" it, or at least make it somewhat usable:
- when we drag'n'drop something to a window corner, show the desktop
- create a plasmoid to be placed inside the panel that will accept drag'n'drops and offer actions. Think of it as a generic plasmoid: it would offer the functionality of the pastebin widget, for images to set it as wallpaper, etc. pp.
Great feature ! Thanks plasma-team !
>>"That means you can drag an image from a remote system, say off a webpage, and it will download it and set it to your wallpaper. "
I was wondering where the file is downloaded. Contrary to Windows where the wallpaper is a copy a the user-selected file, this is not the case in KDE (I think ?!)
@milianw
"How do I use drag'n'drop with a maximized browser?"
[ad] http://forum.kde.org/brainstorm.php?sid=b0b447e73417b2f69f8977934e1cf30b#idea65758 [/a] ;-) (well, ok this is only useful when having big sized monitor)
Already screencasted some days ago :-)
http://www.finex.org/cambiare-sfondo-trascinando-una-immagine-sul-desktop.html
it works with non-kde apps as long as they support standard drag-and-drop (which pretty much everything these days).
folderview still has it's own drop implementation that overrides the generic one. that should probably change.
if you have maximized windows, there are ways around this and the drop feature is already supported for the panel as well (it's generic to any activity or panel that doesn't override the drop process).
nepomuk tagging of download: not generically, but if it ends up in KIO perhaps. individual objects (e.g. plasmoids or wallpaper plugins) can decide how to tag the content however.
storage: wallpapers go into the user's wallpaper directory, which is usually ~/.kde/share/wallpapers. check with kde4-config --path wallpaper
some objects don't need to actually download the file locally, so it's really up to the individual object.
Great! Now I'm just waiting for the Globe wallpaper to accept street addresses.. ;)
This only works if widgets are unlocked right? That's quite bothersome for people like me who like to have widgets locked most of the time.
The same applies to extenders - if I want to drag one to my desktop, I have to unlock widgets, [probably click on (i) icon to show the extender again], drag extender to desktop and finally unlock widgets again.
Any plans to improve this?
Nice! Gwenview users will be pleased to use this!
I'll plead guilty as charged for asking how to write this and not coming up with a patch (But don't count me among the distro people here, as I worked on this on my free time). Unfortunately I got stuck and other tasks pushed this one down in my TODO list.
@How to drag and drop when maximized.
Just hit the short cut to show the dashboard and drag it there.
PS: I assign this to a corner so it is quiet easy.
But again, It will depend on whether the dashboard is the same as the desktop, or not?
But cool feature!
Scary title! I thought those features were being dropped!
@alien:
A little bit late, but: I didn't mean drag and drop when I have a fullscreen window blocking the desktop. The issue I have is that you must unlock your widgets (if you prefer to have they locked).
@Hans: the entire idea behind locking things is to render them fixed. i'm not particularly interested in having N different kinds of locking that need to be coordinated by the code properly and controlled by the user correctly.
if you want to be modifying your Plasma application often, unlock it and leave it that way.
@Hans
Sorry, did not get that.
@Aaron,
Is there a way we can have a popup when dropping on a locked desktop which says something on the lines of "Do you want to unlock the desktop and then drop this?"
Other than that, I agree with you on 'If the desktop is locked, you should not be able to change it, else it wont be "locked" anymore!'
:-)
@alien: yes, it would be possible. patches welcome, esp in this case as it's not overly difficult to do but it's not a critical issue either.
@Aaron J. Seigo:
I have my desktop set in a specific way that I'm happy with. But I still want to interact with it, for example:
- Move some special widgets, such as Bball
- Drop stuff on widgets (pastebin, image plasmoid etc.)
- Drop stuff on my desktop
- Drag around extenders and drop them to desktop
I can already do the first two points (although Bball seems broken for me). The third works with some desktop types, e.g. Folderview.
I don't know if you should be allowed to change your wallpaper by drag and drop if your widgets are locked, but some interactive wallpapers should accept drops (e.g. Globe, see my first comment).
I guess the main thing I'm not happy with currently is how extenders are handled when your widgets are locked.
This is very nice feature to get back. It is so easy to change background just from dropping it from digiKam to desktop and select from there to set as wallpaper. One missed feature to be filled back... thanks!
And on the comments I have now understood that the plasma would continue by same way as now, you need to keep it unlocked to actually use the plasma features.
Like right now, user can not drag address from konqueror to desktop and drop it there if plasma is locked. Same thing goes for files to get them as folder view or drop them to desktop if it is a folderview. This makes plasma little useless.
I do not know would it be hard to code to allow dropping stuff to desktop when it is locked. But it is needed. People use desktop as temporaly place for stuff. And the folder view plasmoids really help me when I can keep files on own boxes and drag other to desktop. But when I drop them to desktop, I use it more like a bookmark or as other function but I do not remove or move them so often. But I hate to keep plasma unlocked because then I get the "ugly" move bar to widgets when hovering top of them.
And it is not so nice to always unlock the desktop to get something done on the other applications and use the desktop as wanted, but same time keep placed widgets still and so on in the desktop itself.
ps. I store long term sites as bookmarks to konqueror. But short term sites I just drag to desktop to link them other project and share them easier way to other persons. Thats why i am waiting the functional site tagging.
@Paristo: "you need to keep it unlocked to actually use the plasma features."
yes, that's the entire point of locking the widgets.
if you want to interact with plasma-desktop as more than just a static layout, you need to have it unlocked.
"I use it more like a bookmark or as other function but I do not remove or move them so often."
ever considered using a folderview for this? maybe a new plasmoid altogether would make sense for such a usage patter, even. using the desktop in such a manual fashion to achieve, as you put it, "bookmarks" is really not very efficient or optimal.
"But I hate to keep plasma unlocked because then I get the "ugly" move bar to widgets when hovering top of them. "
suggestions/patches to make them prettier are welcome. they do serve their use case extraordinarily well right now, though.
Post a Comment