[HN Gopher] Espanso - Cross-Platform Text Expander Written in Rust
___________________________________________________________________
Espanso - Cross-Platform Text Expander Written in Rust
Author : kartikarti
Score : 121 points
Date : 2025-05-14 14:11 UTC (4 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| treetalker wrote:
| Can anyone recommend a good TextExpander to Espanso snippet
| converter?
| mariocesar wrote:
| I used ChatGPT for that and it worked fine, you can even take
| screenshots and tell it to create the YAML config file for you
| _HMCB_ wrote:
| I've been using this for about 6 months. Love it.
| bayindirh wrote:
| I'm using it on KDE for quite some time now. It's very useful,
| but sometimes types too fast and eats keystrokes. Other than that
| it's flawless. Can recommend to anyone.
| stavros wrote:
| Can you not configure the text speed?
| behnamoh wrote:
| I found Espanso very useful, but some bugs made me move on to
| Raycast, BetterTouchTool, etc. for similar functionality. For
| example, if Espanso config file is on a cloud drive, it doesn't
| automatically sync or read the file upon reboot.
|
| I'm planning to move back to Espanso though, as Raycast is moving
| in the wrong direction with all the AI non-features.
| KetoManx64 wrote:
| Can't you just write a startup script that waits 1 minutes
| after a reboot and then restarts the Espanso service to apply
| the freshly downloaded config?
| bryanrasmussen wrote:
| that seems less than optimal, the whole service needs to
| restart 1 minute after a reboot?
|
| on edit: changed system to service
| henriquemaia wrote:
| Have been using it for some years now. On Linux at least, it's
| easy to install and maintain.
|
| The size of my snippets list is now a testament of its
| usefulness. On the appropriate context (an online meeting, for
| instance), it feels like a superpower.
| hypertexthero wrote:
| Anyone know how to change the default :date output to YYYY-MM-DD
| instead of MM/DD/YYYY on macOS?
|
| I've tried the following in _default.yml_ and reloading the
| config, but it's not working and Claude, Gemini, and myself are
| stumped :) matches: - trigger: ":date"
| replace: "{{mydate}}" vars: - name:
| mydate type: date params:
| format: "%Y-%m-%d"
| hypertexthero wrote:
| Solution: Edit the _# Print the current date_ section in...
| /Users/$USER/Library/Application Support/espanso/match/base.yml
|
| ...to read: # Print the current date -
| trigger: ":date" replace: "{{mydate}}" vars:
| - name: mydate type: date params:
| format: "%Y-%m-%d"
| kemitchell wrote:
| I shell out to POSIX `date` on Linux and I believe also on
| Windows: - trigger: ";tod" replace:
| "{{mydate}}" vars: - name: mydate
| type: shell params: cmd: date
| --iso-8601
| Wolfbeta wrote:
| Put it in match/base.yml
| dorian-graph wrote:
| I know it's not perhaps helpful, but I have the _exact_ same
| code, and it's worked for ages on macOS. Do other matches work
| correctly?
|
| I have it in `~/.config/espanso/match/base.yml`.
| jatins wrote:
| I found it really buggy when I used it to the point in was
| unusable
| sunaookami wrote:
| On macOS it often doesn't paste text and will just delete
| everything while getting stuck which is very annoying :/
| bsnnkv wrote:
| The single best way to insert emojis into text, I cannot function
| without this tool
| Wolfbeta wrote:
| Also works with Android
|
| https://github.com/lochidev/Expandroid
| frellus wrote:
| I love espanso. I use it daily. Simplicity is perfect, it does
| one thing and does it well.
| kamranjon wrote:
| This is how you do a Readme / went in having no clue what a text
| expander was and within 5 seconds understood what it was from a
| small gif.
| thangalin wrote:
| My cross-platform, FOSS text editor, KeenWrite[1], does something
| similar[2]. Pressing Ctrl+Space inserts the nearest matching
| variable into the text.
|
| [1]: https://keenwrite.com/
|
| [2]: https://youtu.be/CFCqe3A5dFg?list=PLB-
| WIt1cZYLm1MMx2FBG9KWzP...
| ipsum2 wrote:
| What are some interesting use cases people are using Espanso for?
| VPenkov wrote:
| I use it to shorten common requests I have for my colleagues,
| e.g. to not forget their code reviews, or alias phrases I
| commonly use to a :command. It's handy as a form filler too.
|
| I've seen people using it to insert emojis, lorem ipsum text,
| or fixing common typos. It's quite powerful because you can
| even do HTTP requests and mash them with your text.
|
| There is Expanso Hub here, it contains numerous other examples:
| https://hub.espanso.org/
|
| I'm now thinking about writing an expansion to help me
| reference tickets, e.g. expand :searchticket <string> to a list
| of up to 5 URLs. Since it happens inline, I don't have to
| "submit" the list to anything/anyone until I've cleaned up the
| message.
| 0xPIT wrote:
| This is basically what Data Detectors natively does in macOS, is
| it?
| majkinetor wrote:
| Autohotkey is go to on Windows for stuff like this, and its
| called hotstrings [1]. Hotstrings are much more powerfull.
| Trigger can for example run arbitrary function. AFAIK on linux,
| you can run it using wine.
|
| [1] https://www.autohotkey.com/docs/v2/Hotstrings.htm
| nixpulvis wrote:
| IIUC they can also run arbitrary scripts with Espanso.
| majkinetor wrote:
| Arbitrary scripts, yes. AHK has a dedicated language which
| has a lot of hotkey stuff in it (hence the name). Other types
| of scripts are incomparable.
| n8henrie wrote:
| I love espanso! The cross-platform support is huge (I use it on
| macOS, windows, and X11 and Wayland-based Linux systems).
|
| Moreover, the original creator (Federico) and the current head
| maintainer to whom he has handed most of the day-to-day
| (AucaCoyan) are two of the _kindest_ people I have ever come
| across in open source. All issues and contributors are treated
| with respect, it really is refreshing to feel so welcome when
| trying to contribute.
| lamg wrote:
| I think the problem Espanso is trying to solve should be
| addressed by GUI toolkits, like GTK, QT, etc. Otherwise, living
| with an authorized keylogger in our system in order to introduce
| unicode characters seems overkill.
| tathagatadg wrote:
| Just installed it and started using. It is timely as I have to
| fill a number of forms today on government sites so looking
| forward to using it. What are some best practices you have come
| up with for reducing the cognitive load for the trigger lifecycle
| - that is detect the need, come up with one that fits an easy to
| retrieve mental model? Namespacing obviously comes to mind, and
| some trigger design should be as conflict free as possible, yet
| brief: :i.a - address :i.n - name
| :i.p - phone
|
| Debating if I should feed my zsh history to chatgpt and as it to
| come up with some. Any other advice from the power users?
| mk4p wrote:
| I was using `,.` as the trigger, as I don't think there are any
| real-life uses of that simple combo. -
| ,.a.macro - ,.b.macro
|
| etc.
| BarryGuff wrote:
| I still prefer AlomWare Toolbox, because it can autotype things
| from different triggers other than just hotkeys or hotstrings,
| such as the text in PC notifications when they appear.
| millzlane wrote:
| Espanso looks promising but Atext (paid) fits niche very nicely
| for me.
|
| With atexts gui it makes building new entries easy. I even have a
| keyboard shortcut to use highlighted text to quickly make a new
| entry.
|
| I have used it to write emails, make automation's for certain
| websites that take keyboard shortcuts. I use it to build query
| searches for certain websites I use frequent (kinda like firefox
| back in the day).
|
| https://www.trankynam.com/atext/
___________________________________________________________________
(page generated 2025-05-18 23:02 UTC)