Espanso Cross-Platform Text Expander
espanso.org
espanso.org
From a quick glance, it looks like for getting the text, it listens to all the keyboard events globally. I can imagine many potential problems and shortcomings with this approach, but on the other side, this is probably the most simple and most generic solution, working for almost every application.
For sending the text, it does sth similar, i.e. it just injects global key events. Probably first some key backspace events to delete the old text, and then the keys for the replacement text.
https://github.com/espanso/espanso/blob/dev/espanso-inject/s...
But maybe I understand the code wrong. I did not delve too deep into it.
Maybe for some subset of applications and OS, it could work, but Espanso works with virtually everything on Mac and Linux. (Windows too I think but I don’t use it there.)
It does require a high degree of trust, but otoh it is extremely useful.
It is one of the most useful pieces of software I have ever used, so I’m willing to extend it a level of trust similar to my OS or password manager.
I often type the same shortcuts in my Android device out of habit. So you can tell that I'm waiting for an Android version! I'm working around it by adding words to custom dictionary in Google Keyboard. But I'd love to be able to use the same .yaml file for my phone. I'm not necessarily talking about sync as I don't change the file often.
One more thing about is the GUI search bar they have added. It has rough edges (doesn't react to my shortcut, etc.) but I'm sure it will get better.
Love Espanso! Thanks and all the best to Federico, the creator and maintainer.
Also, here is a gist of my non-work specific Espanso snippets. I share (overshare??) what I am listening to on Spotify many times a day with my friends and coworkers, so the Spotify specific one gets used a lot!
https://gist.github.com/jdoss/64c663e24cca2052842701e13db77d...
I used to work in social media management, I used to have bunch of `insert_generic_response` for birthdays to weddings to inquiries. I would have a random response generated with an Espanso hotkey for each purpose.
Now, I store my token, curl commands, documentation, code snippets well.... being a DevRel I still use `insert_generic_response` but with more technical content!
I also would feel bad if I didn't mention that the main developer seems incredibly nice. I looked at this as a rust project to which I might be able to make minor contributions as a newb (which I still haven't done unfortunately). Federico goes out of his way to respond (quickly) to GH issues or posts on the subreddit in the kindest way imaginable.
I wish it was available for Android. For now, I use the text expansion feature built into Gboard, but it has a short text limit, which limits its usefulness.
[1]: also this is not easily confused with another similar program when searching like AK/AHK.
It was cool to use and show off to colleagues but it was such a hacky piece of work as I used xev to grabs a windows input and worked off of that.
This looks _much_ better!
Also, is there any package that lets you cycle between your clipboard as you type anywhere?
I'm not sure what you mean but if you want really nice clipboard management, with great UX, CLI and scripting capabilities, check out CopyQ[1]. Have been using it for a year and love it.
So I have espanso trigger on a shortcut and autofill queries with the clipboard being used as a placeholder.
Thanks
- Write repetitive stuff across any application, eg. my email is pretty long, so I expand it with a short ':e' trigger)
- Expand boring code, eg. functional programming functions to snap into pipelines
- Drop emojis here and there (https://hub.espanso.org/all-emojis)
- Write accented letters not available on the keyboard (I use a US keyboard, but I need to write Italian on a daily basis)
- Drop lorem ipsum paragraphs
With some setup, the config is synced between my personal and work Macbooks. I think I will also use it for email templating soon.I have been using the US international keyboard both at home and at work. It is a blessing so that I don't have to change keyboard layouts when changing languages, since it provides grave and acute accents (e.g. for French), the double s German letter and umlauts, euro symbol, etc. and also plays nice with programming languages and UNIX shell: for instance, quick access to slash, curly and square brackets with the same modifier key, backticks without modifier keys. Another advantage is that the layout is the same as the US keyboard you are already used to, just that some keys have new effects.