As I collapsed on the sofa for the evening, I started browsing Fosstodon to see what I'd missed throughout the day. It's FOSS had just posted about a cross-platform text expansion utility written in Rust called espanso.

Installation:

espanso's installation instructions are for .deb based distro's or advise you to use the Snap package. I didn't want to so for those of you that want to get right to it, here's what you're going to need.

Packages:

  • libxtst6
  • xdotool
  • xclip
  • libnotify4

These cover the pre-reqs listed here in the espanso manual install docs of: libxtst6 / libxdo3 / xclip / libnotify-bin

sudo zypper install libxtst6 xdotool xclip libnotify4

Once you have those, you can actually follow the rest of the instructions from espanso. But here they are:

curl -L https://github.com/federico-terzi/espanso/releases/latest/download/espanso-linux.tar.gz | tar -xz -C /tmp/

This will download the the .tar.gz file from Github that is tagged with latest and then -x extract, -z gzip, -C to a specific location of /tmp/.

sudo mv /tmp/espanso /usr/local/bin/espanso

This will then move the file from your /tmp/ directory to your /usr/local/bin. Once you've done that, restart your terminal and away you go!

Pointless Waffle:

I've been looking for a truly cross-platform solution for text expansion for years (literally). I've had to make do with different solutions for my different workstations for far too long, all of them have had their quirks and in the end I gave up on them because they just wouldn't behave. I thought I'd take a closer look at espanso as I didn't really have anything to loose except a little time.

I'll be installing it on my macOS & Windows machines tomorrow and test syncing the configuration files across the various platforms with Syncthing.

I'm really looking forward to testing it out and seeing what it can do. Big thanks to Frederico Terzi & the contributors for creating such and awesome tool and to It's FOSS for highlighting it!