← Homepage
[Outreachy reports] · · 4 min read

Outreachy report #49: September 2023

This month, I want to talk about one of the things that brings me the most joy in my line of work: replacing a proprietary tool with a free and open source one.

In January of this year, I toyed with the idea of semi-automating some repetitive tasks by introducing scripts that could write, for example, letters of participation. I talked about it on my report. I created that prototype using a tool called Rocket Typist.

Rocket Typist is a “text expander”: it’s triggered by a keyword, which is then promptly replaced by whatever you’ve determined to take its place. It’s quite different from a fully automated workflow because it lacks any contextual information that could allow it to work on its own; it depends on the person using it to determine when it should be employed, and for what. It follows a similar principle to the act of writing smile and getting a 😄 emoji as a result.

Rocket Typist wasn’t the ideal tool for us: it’s proprietary, paid, and macOS exclusive. Since we had an extremely busy first semester, any explorations I wanted to make to find an alternative had to be put on hold—we had much, much more to take care of then. However, our recruitment of initial application reviewers was so successful this cohort it allowed me to use the time I’d usually employ to review applications to experiment with a free and open source alternative called Espanso. Espanso is…

  • ✅ Licensed under GPL 3.0
  • ✅ Multi-platform (Linux, macOS, Windows)
  • ✅ Fairly easy to use if you’re comfortable with YAML and configuration files—the latter makes it easy to share scripts with other people!

I have a basic knowledge of YAML thanks to my use of Hugo, the static site generator that powers this blog. I wrote my first couple of scripts in less than 30 minutes, and decided to do a test run with Tilda after we were assigned the responsibility of pinging some mentoring organizations that hadn’t replied us yet. One of our Friday sessions involved a quick demonstration of the software’s capabilities, some instructions on how to install it and make the scripts work on her end, and the task of reporting back any problems.

Espanso has two expansion modes: replacements and forms. Replacements are simple 1:1 input/output, you write a keyword like smile and the software replaces it with 😄. Forms are more akin to what I was trying to do back in January: after being triggered, the software asks for some data (let’s say intern name, mentoring organization, cohort dates) and then outputs text manipulating that data to fill the gaps.

We did detect a few issues during our demo, mainly an inconsistency to paste our intended output in some applications after filling out a form (it would output a ‘v’ instead of the intended result). I’d later find out it had something to do with the way Espanso was determining how to inject its text expansion.—changing the backend parameter to Inject solved it completely on my end.

Another annoying issue was the lack of text wrapping on Espanso’s GUI when filling out a form with long paragraphs. Sometimes that would create a window so wide it could prevent the user from reading the full contents of the form.

A screenshot of a form window of an email sent to mentoring organizations asking if they intended to participate in the December cohort. The long paragraphs create a wide window.

I solved this by (1) trusting the user will know the full contents of the intended output (2) guiding the user to submit the correct required data with no preview of the intended output.

A screenshot of a form window asking for an intern name, mentoring organization, stipend amount, and cohort dates. The window is small, making navigating through input fields easier.

Those two issues are mentioned quite frequently in the Espanso community, so I did my best to comment on all prominent related threads and issues talking about my experiences with them and my proposed solutions.

Tilda said this tool made the task of sending multiple emails less daunting, and I agree—what would take me 20-30 minutes now takes me less than 10! Sage has requested that I investigate integrations with shell scripts, and that’s my next step (along with testing Espanso on other platforms). Additionally, Karen suggested that we should approach Espanso’s developer asking about his interest in mentoring an intern through Outreachy since it’s in our best interest to keep the project alive.

Overall, I’m impressed and extremely happy with Espanso. What started with a test with a proprietary tool is starting to become a mean to process improvement with a libre tool, and that makes me so proud of my work!