I’m a person who uses a wide variety of operating systems on any given day. It’s not out of the question that I would use Fedora, Pop!_OS, elementary OS, macOS, iPad OS, iOS, and Android all on the same day (it would be a busy day, mind you, but I’m sure that has happened at some point).
While every operating system has its own strengths and weaknesses, and its own approaches to help users achieve certain tasks, there’s one paradigm that I’ve noticed dominating essentially all of the more modern, mainstream choices: the share button.
I find myself using the share button for all kinds of tasks. I admit, my primary use for that feature is sharing photos of dumb things our cats are doing to my partner while I’m working from home. But that’s just scratching the surface. I use it to text sentimental or funny web comics to her an a nearly daily basis, to share interesting articles with friends and family, to save things I want to read later to my Pocket account (it’s nice that anything that uses the share sheet can accept content directly, instead of relying entirely on a browser extension or bookmarklet), to save notes and snippets to Evernote, and to easily post things to my social media feeds.
I’m perfectly capable of using copy-and-paste, but this allows me to pass this data from the current app and the current context into another without having to lose my spot or switch gears mentally. And I’ve noticed in observing some family members and friends that, while the concept of copying and pasting (especially on mobile) is a bit of a foreign concept to them, they use the share button like mad.
It occurred to me recently, while passing data from one app into another via the share button, that the share button is really the concept of UNIX Pipes writ large and made accessible to pretty much everyone across any modern device that they’re using.
The beauty of the way that UNIX is architected is that there is a large collection of small programs that each do “one thing well.” The power comes in stringing the various tools together, which is achieved through the use of pipes. With pipes, you can take the output generated by a program, then use that as the input for a subsequent program. With a single line of text, it’s possible to do some really powerful things by using this data-sharing mechanism to get from point A to point N.
The share button isn’t quite as versatile, in the sense that there’s not really a way to string together multiple shares (I’m not sure that it would really make sense for this to exist, except perhaps if you wanted to share to multiple places, but that’s more A -> B, C, D, rather than A -> B -> C -> D). But still, the core concept is the same: I have data in one one place, and I want to take it and put it some place else to perform a new action there (with that as the starting point).
Linux desktops seem to be the one place where I’m not really seeing any widespread use of a share button. It’s not really part of any HIGs that I’m aware of, and is a bit of a foreign concept there. If I had to offer a conjecture as to why that’s the case, I suspect it’s because the designers and developers are so used to copying and pasting, and managing their clipboards, that they don’t see the benefit of having such a button. That’s painting with a fairly broad brush, though, because there are so many designers and developers, and so many different desktops and distributions for that matter.
Regardless of the reason, I do think that adding in a system-wide Share button option (perhaps a library that piggybacks on DBUS?) would be beneficial for users, and even self-proclaimed “power users.” It’s so nice being able to share content from one spot with another person, or another app, and not have to lose your spot or leave the current context.
I’m currently working on an app (I’m hoping to release in just a few weeks) that has a share button built-in, but for now, its functionality is limited. It will let you share via email, or open certain social media websites in a browser with a draft message containing a link to the content pre-populated. But if there were to be a better Share API, it would be so much more powerful. I want to be able to one-click draft a Tweet in Cawbird or a Toot (..sigh) in Tootle. I want to be able to start a new Markdown note directly within Apostrophe. I want to be able to send users looking to read full Wikpedia entries directly over to Wike, with the right page loaded in.
I’m not sure how to propose this, or ever where (FreeDesktop.org?), but if anyone wants to chat about the possibility of a share API for Linux, I’m all ears!
For Linux users or developers who have never used a share button on another OS, if you have the opportunity, I do recommend trying it.
The share button is a versatile, powerful feature that benefits nearly all users, and is a kindred spirit to the elegantly simple concept of pipes. In my opinion, it doesn’t get the recognition (or the daily usage) it deserves!