The Purpose of things

For once this is not a post about KDE Connect (at least not directly). Besides KDE Connect I also work on several other KDE projects, one of them being the awesome Purpose framework created by Aleix Pol.

After Nate highlighted my latest work on Purpose (the new share menu in Dolphin) in his blog post I received quite some feedback. I’m glad that many people like the idea, but I also received some criticism/suggestions for improvements. This is always welcome as long as it is fair and objective. This was true for most comments, but unfortunately not all of them. I won’t even bother to reply to unfair and personal attacks for a useful feature, but rather like to respond to appropriate criticism and inform you about my future plans for Purpose.

First of all, for those who don’t know what Purpose is, it is an extensible framework to fulfill the developer’s purpose while providing an abstraction. Right now the only use-case is exporting/sharing a file, but more could be added in the future. It is used by Dolphin, Spectacle, Okular and other KDE applications and can export files to Email, Telepathy, KDE Connect, Nextcloud, Telegram (I did that one myself), Twitter, Imgur and many more.

For the share menu in Dolphin’s I received some critisism/suggestions for improvements:

Send via Bluetooth and send via KDE Connect are still separate in Dolphin’s context menu and should be in the ‘Share’ sub-menu as well. I 100% agree on that. In fact send via KDE Connect is already in the ‘Share’ sub-menu and I’ve uploaded a patch to remove the old entry. As for Send via Bluetooth: Someone would need to turn Bluedevils FileItemActionPlugin into a Purpose plugin. I’ll probably do it myself as soon as I find the time for it.

Dolphin’s context menu will be even more cluttered with this. It actually achieves the opposite. By combining actions like Send via Bluetooth and Send via KDE Connect into a sub-menu the top-level menu will be less cluttered.

I’m not going to use it, so I don’t want to have it. You can disable it in Dolphin’s settings.

I’m never going to use option XY, but it’s still there. Fair point. Some options are loaded conditionally, so e.g. the Telegram option is only present if Telegram is actually installed. For others this is not the case. I’m planning to make a config module to en-/disable options.

I don’t want to share my files by accident. Virtually all of the options require more than one click to do something, so it needs a weird accident to actually do something unwanted.

I’d love to see more applications/services adopting Purpose. So if you are a developer interested in integrating your application with Purpose please get in touch with me and we will figure out a solution. I’m especially looking at you, fellow KDE developers 😉

13 thoughts on “The Purpose of things”

Thanks so much for your work on this, Nicolas. I feel that this Purpose Share menu is a super awesome and useful feature, especially since it’s consistent across apps that use it. As more and more of our apps adopt it, it becomes seen as simply a standard feature of the kind that makes KDE software stand out. I’m looking forward to seeing it in Gwenview and Kate/KWrite too!

I also really appreciate this and added a ‘share’ menu to Kdenlive’s render dialog a few weeks ago and it will be in the 18.08 version. Great to quickly send your video work to your phone! Or to share through other social media. And very easy to integrate in an application so thanks!

“Virtually all of the options require more than one click to do something, so it needs a weird accident to actually do something unwanted.”

Well, I just did Share -> Imgur in Spectacle, and my screenshot got uploaded without any confirmation, and without giving me the delete hash. Now the screenshot with personal information is on Imgur with no way for me to delete it.
So no, it doesn’t need a weird accident – just a simple misclick (clicking “Imgur” instead of “Send to Device” in this case).

I have a suggestion how to make it fool proof:
Instead of submenu items, you may consider adding a single “Share with … ” option, which opens a dialog, where the user can choose by radio button, drop down list (or similar) the desired service and confirm the choice by an additional “Send” button.
This dialog would also give you the opportunity to add an description of the consequences made by the choice.
Furthermore, you could also add a button to offer the installation of even more sharing services.
What do you think?

Not bad. I will probably never use this feature, but it’s nice to be able to disable it and stuff. 🙂
Still, Dolphin doesn’t preserve extended file attributes (xattr) when copying files on file systems that support them. 😦