Dan's Musings

Screenshots and Files in Text-Only Communication

Motivation

This article details a method for sharing screenshots and files easily even if the only way to post them is via text.

Several means of communication on the internet only support text. When chatting via IRC or filling out a text box in a contact form or locked-down ticketing system, text is the only avenue.

Meanwhile, even if some tools allow the sharing of these artifacts via the usual means, sharing via text might be desirable. Copying text around is really easy, for example.

Main Idea

The main idea is to get the artifact (screenshot or file) into a hosting service and then share the link to the artifact. With the right tooling, this is just as easy as using any other tool to share it.

Method

The idea is to use rclone to upload a screenshot or file, again use rclone to generate a link to it, place that link in the clipboard, and then notify the user via desktop notification.

I have written a script called screen2dropbox that does this. I have I successfully adapted this script to be able to run on both Linux and Mac by creating scripts that paper over the differences between different Linux and Mac environments for making screenshots, dealing with the clipboard, and sending desktop notifications. I have also have created a windows version.

The idea is to simply associate the script with a key binding. In my case, I use CTRL+D for taking a screenshot and CTRL+G for uploading a file on Windows and Linux. I forget how I got the keybinding to work on Mac, it was through some third party tool, but it was convenient enough when I was on such a machine.

Then I simply wait for the notification to pop up. Once it does, I can paste the link wherever.

Discussion

I came up with this because I use Pidgin to connect to my different chat services. Many of the plugins for that client do not support file or screenshot uploads. With this new tool, I can paste screenshots into Slack again while using Pidigin. Once I got it working, I found another benefit: pasting screenshots can be done to any text-based interface now!

I can paste screenshots into places that never supported screenshots. I can use the tool in IRC chat rooms. I can use the tool in text-based emails. I can paste screenshot links into ticketing systems that do not support image upload.

Finally, there's the added benefit that I have full control over the links and the images and files themselves. I can delete the link later, ask rclone to ensure it expires after some time, delete or edit the file later, etc.

Caveats

Rclone doesn't work with everything. At work, we use google workspace, and I need screenshots and files that I upload and take resting on the company Google Drive. I also need to lock down permissions for those screenshots.

These features are not available with rclone, so I made a custom script toolchain for images and files using gdrive. It works well, though it took some doing.

The other caveat is that links are pasted into chat applications instead of actual screenshots, which can sometimes be less convenient. Discord and GroupMe don't render dropbox links for me, while Slack renders Google Drive links just fine, it only renders a downscaled version. Plus, there's this big ugly link. I find I can live with that though.

Conclusion

Having a script that can create screenshots and put their link in the clipboard has surprising benefits, allowing the use of applications that do not support file attachments or screenshots while also still being convenient and useful in applications that do. It also grants the user full control of the link and file. It is easily set up on all three major OS's, and is proving very useful.