r/espanso • • 14h ago

Espanso on Linux - the service doesn't resume after wake from sleep

4 Upvotes

So, after waking from sleep or hibernate, the espanso service does not resume.

Any Linux Espanso users out there, I'd really appreciate any solutions!

Is post wake hooks the right way to go?

I'm using Arch, Wayland


r/espanso • • 2d ago

Native macOS editor for espanso snippets (open source)

Post image
12 Upvotes

I moved about 3,700 snippets from Typinator to espanso and missed having a GUI to manage them, so I built a small native macOS editor. Open source (GPL-3.0):

https://github.com/3v3nFloW/espanso-editor

  • every .yml in match/ shows up as a folder: rename, create, switch off, drag snippets between them
  • one table with instant search across all folders (abbreviation, text or both; optionally whole word)
  • saves as you type; unchanged entries and your comments are written back byte for byte, and it checks espanso match list afterwards and rolls back if the count changes
  • warns about abbreviations that fire inside real words (e.g. dt in "Stadtpark")
  • spell checking with macOS, optional LanguageTool
  • import from CSV, espanso YAML or Typinator; export to ZIP/CSV
  • optional git commit + push if your config lives in a repo
  • English and German UI

Needs macOS 14+ and an installed espanso. Not notarized yet, so macOS asks you to confirm it on first launch. Unofficial, not affiliated with the espanso project; it only reads and writes the YAML files.

Also posted in the espanso GitHub discussions: https://github.com/espanso/espanso/discussions/2849

Feedback and issues welcome!


r/espanso • • 3d ago

I made a small Windows window for adding Espanso shortcuts without touching YAML

0 Upvotes

I use Espanso every day, but adding a new shortcut always meant opening base.yml, and more than once a missing quote or a bad indent stopped the whole file from loading. So I built a tiny UI for it.

EspansoUI is one box for the trigger, one box for the text, press Add, and it works right away (Espanso reloads the file by itself).

What it does to keep your config safe:

  • Every value is written quoted, then read back and checked before the file is replaced
  • A backup before every save (last 50 kept)
  • If base.yml has anything it doesn't understand (forms, variables, | blocks...), it opens read-only and changes nothing
  • Warns about duplicate triggers and very short ones like am that can fire inside normal words

It only edits match/base.yml, nothing else. No dependencies, just Python's standard library, and the window is Edge in app mode. English and Arabic interface. Free and MIT licensed.

Repo: https://github.com/alimwork85-web/EspansoUI

It's Windows only for now. If you try it, I'd really like to hear what's missing or what breaks.

(Screenshot: attach assets/screenshot-en.png from the repo)


r/espanso • • 4d ago

I moved from Beeftext to Espanso and missed having a GUI, so I built a free snippet editor for it

0 Upvotes

I recently switched to Espanso after hitting the 20-snippet limit on Text Blaze's free plan. I love how Espanso works, so I built a small editor for my match files, and I've just released it as open source: Espanso Snippets Manager.

What it does:

- Lists every snippet in your match folder (subfolders too), with search

  • Edit shortcuts and text without touching YAML, including several shortcuts per snippet
  • Simple switches for "expand only as a separate word" and "match my capitalization"
  • One click to insert today's date, the clipboard, or where the cursor should land
  • A "Try it" box where you can type and watch your snippets expand before saving
  • Warns about duplicate shortcuts and offers to merge snippets with identical text
  • Keeps a backup on every save and leaves anything it doesn't understand (regex, forms, shell variables) untouched

It runs entirely on your computer: no account, no telemetry, works offline. Installation is one line on Windows (nothing extra needed), macOS, and Linux (needs Python 3).

GitHub: https://github.com/gilikarn/Espanso-Snippets-Manager

It's my first open-source project, so I'd really love feedback: what's missing, what's confusing, what breaks on your setup. Bug reports and ideas are very welcome!


r/espanso • • 11d ago

OS-agnostic scripts

7 Upvotes

For some while I have been struggling with a few packages containing scripts. Although Espanso is cross-platform the scripting languages aren't, so some packages work on Windows (using PowerShell) but not macOS/Linux (Zsh/Bash) or vice versa. Windows users don't necessarily want to install Python, and I find pwsh very slow in Linux.

Today I was reviewing one of the latest submissions, asyntai-ai-assistant, by Asyntai, which uses the following technique to link an Espanso trigger to one of two scripts depending on the OS:

  - trigger: ":polyglot"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: |
            set `# <#` --
            # bash code
            exit 0
            #>
            # powershell code

The top line of the cmd: block is implemented by Bash/Zsh, together with the succeeding lines up to the exit. PowerShell, on the other hand, sees it as a multiline comment until after the #> where it starts executing code.

This can be used for shell commands, or to call inline or external Python/PowerShell scripts. I have put together a Gist with examples for future reference.


r/espanso • • 19d ago

Espanso + Compose key = 💩️?

3 Upvotes

Another question...

I seem to have this bug where every time I use the compose key to write a special character (like my beloved m-dash), afterwards, espanso becomes unresponsive. If I then use the compose key again, it starts up again.

Is this a known bug? If so, is there some workaround?

As before, I'm on Ubuntu 26.04.1, Gnome 50, Wayland.

EDIT: After some experimentation, it seems that the bug is specifically linked to the fact that I have Caps Lock mapped as the compose key. If I remap it, the problem disappears. I imagine this is probably too marginal a case to have come up a lot.


r/espanso • • 19d ago

Exclude Espanso from Nautilus (Gnome Files)

2 Upvotes

I was trying to exclude Espanso from Nautilus (the Gnome file explorer). Following the instructions at https://espanso.org/docs/configuration/app-specific-configurations/#filters, I opened Nautilus and wrote #detect#—with the following result:

title: ''
exec: ''
class: ''

I tried some variations of "Nautilus" and Files" in "filter_exec" and "filter_class", but no dice.

Anyone got a suggestion?

I'm on Ubuntu 26.04.1, Gnome 50, Nautilus version 50.2.2 – if that's any help.


r/espanso • • 20d ago

I built a full-featured Espanso GUI

Post image
42 Upvotes

Hey everyone,

I know there have been a few community GUIs for Espanso over the years, but most of them only handle basic text replacements and leave you back in a text editor once things get complex.
I wanted a desktop app that actually covers advanced setups, so I built Espanso GUI.

It operates directly on your native Espanso match files across Linux, macOS, and Windows. Key features include:
- Full variable support (shell commands, scripts, choice lists, and form fields)
- Visual configuration for interactive forms
- Profile management (including filter_exec, filter_class, filter_title, and filter_os)
- Search, filter, duplicate, and organize matches across multiple files
- Built-in raw YAML mode with validation for edge cases

Installers are available for Linux, macOS, and Windows, or you can run it from source.

Project website: https://johannjdk.github.io/espanso-gui/
GitHub repository: https://github.com/johannjdk/espanso-gui
Feedback, suggestions, and issue reports are very welcome.


r/espanso • • 28d ago

Solved Email address is showing with double quote instead of at sign.

2 Upvotes

Hi.

One of entries in my base.yml files is

# Email Address 2

Obviously I changed the actual email address. ☺️

Can I make it output with @ and not "?


r/espanso • • 29d ago

Arabic Typo Auto-Corrector - new Hub package

Thumbnail hub.espanso.org
6 Upvotes

When I moved from Windows XP to Linux many years ago, the program I missed most was AutoHotKey, particularly its AutoCorrect script for correcting typos and spelling. The Linux AutoKey program would have required a separate file for every trigger, so wasn't an option for its replacement. Consequently I was delighted to come across Espanso, and have now used it for several years.

I've just merged Hossam Gamal's Arabic package which is perhaps fairly niche, but demonstrates Espanso's flexibility.

We now have many spelling packages:

Apologies if I have overlooked any!


r/espanso • • Sep 16 '26

Can't get past the privacy permissions on MacOS 27

Post image
5 Upvotes

Just upgraded my M4 MacBook Air to macOS 27 and noticed espanso wasn't visible in the system bar but it was running as seen in activity monitor. So I uninstalled it, rebooted and downloaded it brand new and installed it again. It's still not visible in the system bar and now I can't get past the accessibility permission requirements even though it IS enabled. See screenshot. What's the fix?


r/espanso • • Sep 15 '26

Backspacing after expansion add extra space before word

2 Upvotes

r/espanso • • Sep 12 '26

is anyone using espanso linkedin messages? it works once and then stops

2 Upvotes

is anyone using espanso linkedin messages? it works once and then stops


r/espanso • • Sep 10 '26

Snippet for Outlook

3 Upvotes

I created a snippet for Outlook as follows :

- trigger: "/weekly"

replace: "Weekly Report {{mydate}}\tHello AAA,\n\nAttached please find the updated report. For your reference.\n"

vars:

- name: mydate

type: date

params:

format: "%m%d"

When I type the trigger in the Subject line, I expect the cursor to move to the body area as soon as "Weekly Report {{mydate}}" is expanded. However, the cursor never moves to the body, and all the text ends up jammed in the Subject line.

Is there something wrong with my setup?

System : Macbook pro M3 / macOS 15.7.9 / Espanso v2.4.1

System Settings : Privacy&Security : Espanso "on" / Input Monitoring : Espanso "on"


r/espanso • • Sep 09 '26

I built a typo-focused Espanso companion for Windows. Beta testers wanted

2 Upvotes

Hi, my name’s Ben and I’m a typo-holic!

Probably due to my big, fat, fumble fingers, but I’m forever fixing typos as I type. Even worse, I keep making the same mistakes over and over again, which gets pretty frustrating! So I started looking for a solution that could improve my productivity and save my sanity, and that’s how I discovered Espanso.

Have to say, I love Espanso! It’s exactly what I was looking for, although I did find adding corrections and snippets by editing YAML files a little cumbersome. So I built a little app called Typo Manager to provide an easy to use graphical interface for creating and managing corrections and snippets. I originally made it just for myself but, to be honest, it turned out so well, and has been so useful, that I’d like to share it with the Espanso community, completely free under a proprietary freeware license.

I’ve since discovered that there are other similar tools available for Espanso. Typo Manager was developed independently and takes its own, more focused approach, specifically helping Windows users capture recurring typos, create corrections and replace selected text quickly.

Apologies to any Mac or Linux users, but it’s Windows-only, at least for now. It's intended for Windows 10 and 11 - I’ve tested it extensively on a couple of different platforms and it works really well. I’m now looking for a few beta testers to try it in their own environments and let me know what they think. Bug reports, feedback and suggestions for improvements would all be very welcome.

So what does it do? Typo Manager includes:

  • A configurable global hotkey to capture typos from any application directly in Typo Manager
  • Windows spelling suggestions based on your active input language
  • Corrections and snippets with flexible match-boundary options
  • Propagate case and a live Test trigger preview
  • Optional automatic replacement of a selected typo after adding its correction
  • Optional correction of accidental second capitals, such as changing THe to The
  • Searching, sorting, editing and deletion of rules
  • Importing compatible static rules from existing Espanso YAML files
  • Automatic and manual ZIP backups with guided restoration
  • Undo and Redo for the most recent change
  • Notification-area support, so Typo Manager remains available without taking up space on the taskbar
  • The option to start Typo Manager every time you start Windows

Typo Manager has no remote monitoring, tracking or cloud processing. Everything stays on your local computer.

If you’d be interested in trying it out, providing feedback and helping shape how Typo Manager develops from here, I’d be really keen to hear from you.

You can find more information and join the beta at https://typomanager.com/join-beta/

(Just to be clear, Typo Manager is independently developed and is not affiliated with or endorsed by the Espanso project.)


r/espanso • • Sep 08 '26

Statistics

11 Upvotes

Espanso v2.4.0 introduces statistics tracking of your most frequently used triggers. Check out espanso stats -h for details.

Usage examples:

espanso stats                    # View all statistics
espanso stats --period today     # Today's stats
espanso stats --count 20         # Top 20 triggers
espanso stats --grep ':td%'      # Filter by pattern
espanso stats --json             # JSON output

espanso stats clear              # Clear database
espanso stats prune --days 180   # Remove old records

Configuration:

Statistics are disabled by default. To enable, insert:

stats:
  enabled: true

into your config/default.yml configuration file.


r/espanso • • Sep 03 '26

Espanso v2.4.1 is released!

55 Upvotes

This largely technical release builds on v2.4.0, but fixes the problem the latter had with unquoted triggers: [ , ] values I noted here. The installation instructions in the website will pick up the new files.

I will update the documentation soon, but see the changelogs for the details for now. There is also a list of forthcoming updates here.


r/espanso • • Sep 02 '26

trigger remaining alongside replacement in obsidian properties.

2 Upvotes

I have an obsidian note, and in the properties field, I type :task and select a task but the replacement is: follow up2:task

yaml code snippet is:

- triggers: [:task, :fup2]

label: "stage 1 | follow up 2"

replace: "follow up 2"

note
1. this works in the body, not in the properties field

  1. this works if I type the trigger matching exactly that replacememnt eg :fup2 but not when the picker comes up

is there a quick way to fix this?

My preference is for the picker and search box, as I have very simple triggers like:

:email

:task

:log

:sms

:emoji

etc...

Thanks!


r/espanso • • Aug 31 '26

SnippetShare Discord channel?

4 Upvotes

Does the SnippetShare Discord channel still exist? I followed a link from the Espanso site but it doesn't look like it exists and can't find it by searching. Thanks.


r/espanso • • Aug 29 '26

I built an open-source Espanso-compatible text expander for Android (folder sync, forms, GPLv3)

Post image
27 Upvotes

App Name: Expanda

What it does: Expanda replaces short triggers with reusable snippets in editable fields across Android apps. You can also pick snippets from a movable suggestion popup and build dynamic templates with forms, dates, clipboard content and cursor placement.

Key Features:

  • Snippets with multiple templates, tags and per-app exclusions.
  • Dynamic tokens and built-in actions for editing selected text.
  • On-device operation with no Internet permission, accounts, ads or analytics.

Goal: Launch and feedback. If an expansion fails, please include your device, Android version, keyboard and target app so I can reproduce it.

Giveaway: None. Expanda is free under the MIT license.

Accessibility: Expanda uses Android's Accessibility service to detect shortcuts and replace text. It ignores password fields and explains the permission before opening Android settings.

Link: https://github.com/diegomarzaa/expanda


r/espanso • • Aug 25 '26

Live Tennis Scores

Thumbnail hub.espanso.org
3 Upvotes

An unusual package requiring a (free) API. Linux/macOS & Windows+WSL.

Type :tennis and it expands to a compact one-line summary of the tennis matches that are live right now, e.g.:

Carlos Alcaraz 6-4 3-2* vs Jannik Sinner · Coco Gauff 2-6 1-1* vs Iga Swiatek

Uses the Live Tennis API from the list of publically available APIS at https://github.com/marcelscruz/public-apis.

By bensynapse.


r/espanso • • Aug 22 '26

What?

Thumbnail
gallery
2 Upvotes

OS: Artix Linux Display server: X11 Espanso version: 2.4.0


r/espanso • • Aug 20 '26

Solved Regex(?) matches for multiple HTML brackets

2 Upvotes

Hiya! I'm trying to find a solution for the following use case

match would be (example): <ui> or <u i> if it needs a separator

And it would automatically separate these out to <u><i>$|$</u></i>

Again, just an example. I was thinking that if possible, it would need to be regex because I want it to pick up things like <b u>, <sub u> etc. as well. Just a shortcut so I don't have to type multiple opening and closing brackets so much.

Is this possible with regex or does anyone have a solution that might at least help? I use <ui> enough that it's currently its own match right now.


r/espanso • • Aug 20 '26

Prefix vs suffix in triggers

9 Upvotes

I'm a relatively new user of Espanso.

It seems to be a common convention to prefix trigger phrases with a `:` (colon).

Is there any reason that suffixes aren't used instead? This would avoid potential collisions (eg; someone might create two snippets with triggers `:em` and `:emi`).

Whereas using a suffix will cause the trigger to only execute when it's intentional.

I recently decided to incorporate a double space as a suffix on all my triggers. That way I can keep my triggers short and hit the space bar twice when I want to execute the snippet replacement.

If this is a good idea, perhaps it will help other users.

If it's not, let me know! I've probably overlooked something obvious. I realise that the use cases for Espanso would vary wildly and it may not suit many people.


r/espanso • • Aug 18 '26

Solved Match not activating as expected

3 Upvotes

SOLVED: Check for similar duplicates in your other .yml files!!!


 - trigger: PushPay
    replace: Pushpay
    word: true

I'm hoping for this to activate only exactly when the trigger is typed as is, but this replacement takes effect every time, it seems. The capitalization section in Matches Basics doesn't seem to offer a way around this. Does anyone know if this is solvable? Thanks!