Skip to main content

Nico's blog

The Purpose of things

Hi, 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 ;) Happy sharing :)

© Nicolas Fella, 2022
Powered by Hugo, theme Anubis.