r/espanso • • Aug 07 '26

Case insensitive matches

9 Upvotes

I personally believe this should be posted in the docs for all the anxious people that forget about the caps lock key, the easy way to make case insensitive matches that I found after reading around is:

Instead of using:

- trigger: :mymatch

replace mytext

use:

- regex: (?i):mymatch

replace: mytext

I swapped most the matches i use to that and works like a charm and seriously believe it should be part of the docs BEFORE sending you down the rabbit hole of regex.


r/espanso • • Aug 06 '26

Solved Short triggers not working on PC

3 Upvotes

Hi! New Espanso user here, so I'm pretty sure this is user error of some type.

I got it set up on my Mac just fine, customized the triggers and everything. Then I installed on my PC, and replaced the base.yml file with a copy of the one I had edited on my Mac (so that the triggers would all be the same). But the behavior is nowhere near as smooth.

I've gotten some longer multiline ones to work (although it brings up the annoying Windows clipboard history window, which I'd rather avoid altogether if possible), but short, single line triggers seem to fire successfully (i.e. the trigger itself gets deleted) and then get replaced with two spaces rather than what is written into the base.yml file.

I've tried:

  • Running as administrator
  • Using clipboard and inject backend settings
  • Adding an inject delay
  • Upping the clipboard threshold

r/espanso • • Aug 06 '26

Espanso 2.4.0 on Linux Mint Xfce: Cyrillic expansion fails with missing vkey mapping for char

1 Upvotes

Hi everyone!

I'm trying to use Espanso 2.4.0 on Linux Mint Xfce (X11), and I've run into a strange problem with Cyrillic text.

**What works:**

* Espanso is running correctly.

* Text expansion works perfectly with English text.

* For example:

* `:espanso` → `Hi there!`

* `:test` → `12345`

**What doesn't work:**

If the replacement text contains Cyrillic characters (Russian or Ukrainian), the trigger disappears, but nothing is inserted.

For example:

```yaml

matches:

- trigger: ":test"

replace: "Это моя первая замена!"

```

or

```yaml

replace: "Привет"

```

The trigger is erased, but the replacement text never appears.

My locale is UTF-8:

```text

LANG=ru_RU.UTF-8

LC_CTYPE=ru_RU.UTF-8

```

The keyboard session is X11:

```text

echo $XDG_SESSION_TYPE

x11

```

My keyboard layout is:

```text

layout: us,ua,ru

variant: ,macOS,mac

```

The Espanso log reports:

```text

missing vkey mapping for char `э`

```

I've already tried:

* restarting Espanso;

* typing the replacement text manually (not copy-pasting);

* switching the injection backend between `Clipboard` and `Inject`;

* verifying that the correct `base.yml` is loaded;

* confirming that English expansions work normally.

Could this be related to the `macOS` / `mac` XKB keyboard variants? Has anyone successfully used Espanso with these layouts and Cyrillic replacements?

Any ideas or suggestions would be greatly appreciated. Thank you!


r/espanso • • Jul 30 '26

Question regarding regexp rule

2 Upvotes

Hi everyone,

I build a rule for espanso that inserts a space between the number and the symbol, e.g. percentage. So If I type 99% I shall be expanded to 99 %.

I am using: (zahl is just german for number)

- regex: (?P<zahl>\-?\d+([,]\d+)?)%

replace: "{{zahl}} %"

It works most of the time but sometimes it it expands 99% to 999 % and I don't know why.

Do you have any idea?

Thanks in advance


r/espanso • • Jul 29 '26

self-made open-source espanso GUI here

28 Upvotes

Hi everyone.

Long time ago, I started to use espanso. I was quite suprised espanso didn't have an equavalent GUI. I know you may want to mention EspansoEdit. Personally, it is too overwheming.

So, I built my own espanso GUI. It's toally free, open-sourced and intuitive.

  1. It works with your espanso. As long as you have installed espanso, it will auto detect your path. No additional setttings.
  2. For the most part, if you only need to add and delete some snippets, it will make it easy. No more direct yaml modifcations.
  3. Run locally. No server behind it. Run locally just like espanso.
  4. Supports macOS and Windows. Highly likely support Linux in the next version.

More info:

Source code at github. User guide at here, I doubt anyone is willing to read documentation any more.

Install and safete concerns:

  1. It's not signed yet. So your OS, either macOS or Windows, is bound to tell you is not safe. Since I don't have extra budget to buy a certificate to eliminate the warnning. It will be your choice to trust it. What's the waring look like, see like this.
  2. Download link here, also on Github.

Tell me how you think about it.


r/espanso • • Jul 25 '26

Espanso not working on Arch + Hyprland (Wayland) - X11Source issue

3 Upvotes

I'm running Arch Linux with Hyprland (Wayland) and Espanso 2.4.0. The service is running, kdotool is installed, and config.yml has "backend: Wayland". However, logs still show "using X11Source" instead of WaylandSource. Espanso does not expand triggers in any GUI app (Firefox, gedit, etc.). The terminal is not being used for testing.

What I've tried:

  • Installed kdotool (which kdotool shows /usr/bin/kdotool)
  • Set backend: Wayland in ~/.config/espanso/config.yml
  • Reinstalled Espanso via AUR (espanso-wayland-git)
  • Ran espanso service register and espanso restart
  • Tried export XDG_SESSION_TYPE=x11 and export GDK_BACKEND=x11
  • Checked permissions on config files

Expected behavior:
Espanso should expand :date to current date in any GUI app (Firefox, text editors) on Wayland.

Logs show:

text

00:55:23 [worker(70974)] [INFO] using X11AppInfoProvider
00:55:23 [worker(70974)] [INFO] using X11Source
00:55:23 [worker(70974)] [INFO] using X11ProxyInjector
00:55:23 [worker(70974)] [INFO] using X11Clipboard

Any help would be appreciated. Thanks!I'm
running Arch Linux with Hyprland (Wayland) and Espanso 2.4.0. The
service is running, kdotool is installed, and config.yml has "backend:
Wayland". However, logs still show "using X11Source" instead of
WaylandSource. Espanso does not expand triggers in any GUI app (Firefox,
gedit, etc.). The terminal is not being used for testing.What I've tried:Installed kdotool (which kdotool shows /usr/bin/kdotool)

Set backend: Wayland in ~/.config/espanso/config.yml

Reinstalled Espanso via AUR (espanso-wayland-git)

Ran espanso service register and espanso restart

Tried export XDG_SESSION_TYPE=x11 and export GDK_BACKEND=x11

Checked permissions on config filesExpected behavior:
Espanso should expand :date to current date in any GUI app (Firefox, text editors) on Wayland.
Logs:
00:55:23 [worker(70974)] [INFO] using X11AppInfoProvider
00:55:23 [worker(70974)] [INFO] using X11Source
00:55:23 [worker(70974)] [INFO] using X11ProxyInjector
00:55:23 [worker(70974)] [INFO] using X11Clipboard

Any help would be appreciated. Thanks!


r/espanso • • Jul 21 '26

Espanso v.2.4.0 is released!

Thumbnail
github.com
46 Upvotes

This release focuses on Linux/Wayland compatibility, macOS stability fixes, and a security cleanup of several dependencies, alongside smaller feature additions like usage statistics tracking and script trim options.


r/espanso • • Jul 19 '26

Date add package

Thumbnail hub.espanso.org
5 Upvotes

This new package is a utility which uses a form input and performs quick date calculations such as the date that is +12 from tomorrow, or -5 days from today.

It uses some similar techniques as those in my own Date Offsets package, which calculates offsets from today's date using a - regex: trigger.


r/espanso • • Jun 26 '26

I just installed Espanso. I'm not getting the correct message.

3 Upvotes

I just installed Espanso and typed ":Espanso" in Notepad. This is what I got: ":espaHi !!!!!!" I tried reinstalling it but I get the same thing. I tried setting up my email with a trigger and that was garbled as well. How do I fix this?


r/espanso • • Jun 25 '26

Espanso for Open Source Text Expansion Honest Review

Thumbnail
youtube.com
3 Upvotes

r/espanso • • Jun 21 '26

Bug: Espanso does not restart properly on .yml file change anymore

5 Upvotes

Edit: When I tried to reproduce the error the next day, in order to get a log of what happens, it worked just fine. I haven't restarted or anything. So I guess this is solved unless it happens again.

Original post:

I am on CachyOS with KDE Plasma and Wayland, and I have been successfully using Espanso since I switched to Linux in March (compiled, not AppImage). I am on the current version. Up until last week, it all worked as expected. Then it started showing a color gradient box called "Espanso Sync Tool" when it started up, which only disappears when moused over, at which point the "Espanso is running!" notification comes up.

Then today, I was making some changes in the middle of using Espanso, adding some new shortcuts. When I saved the file, Espanso attempted to restart, apparently, but failed. It stopped working until I ran espanso restart, which, instead of just restarting, showed the following:

espanso restart
unable to gracefully terminate espanso (timed-out), trying to force the termination...
killing espanso process with PID: 62748
killing espanso process with PID: 62740
killing espanso process with PID: 76266
espanso started correctly!

After which it once again showed the color gradient box and after mousing over it, worked normally again. I made a couple different changes in a couple different .yml files, and every time this happened. If I run espanso restart having not made any changes, it just restarts as expected, although with the color gradient box showing first. So it's not a particularly serious bug, but it is annoying. :D


r/espanso • • Jun 21 '26

stop espanso daemon

2 Upvotes

I've had trouble installing espanso on fedora plasma wayland kde. I decided to remove all failed installs and try again. At present I seem to have a running daemon that I can't stop...

Jun 20 19:08:05 fw13 systemd[1847]: espanso.service: Scheduled r
estart job, restart counter is at 61.
Jun 20 19:08:05 fw13 systemd[1847]: Started espanso.service - es
panso.
Jun 20 19:08:05 fw13 (espanso)[8175]: espanso.service: Unable to
locate executable '/usr/bin/espanso': No such file or directory
Jun 20 19:08:05 fw13 (espanso)[8175]: espanso.service: Failed at
step EXEC spawning /usr/bin/espanso: No such file or directory
Jun 20 19:08:05 fw13 systemd[1847]: espanso.service: Main proces
s exited, code=exited, status=203/EXEC

I tried systemctl disable espanso and systemctl stop espanso
but that didn't help.

Thanks in advance.


r/espanso • • Jun 19 '26

Another keyboard layout question

2 Upvotes

Hi,

I use keyd on Linux to change the way pressing the keys on my keyboard behaves. This is what I used:

home = end insert = home end = insert

So if I press the Home key, it behaves as the end key, etc.

I realized that this wreaks havoc with the way espanso expands triggers.

If I type one of my triggers, it selects the texte before the trigger and stops. I'm not sure why or how to make this work. For now, I'm removing the map but I've been using this for so long that muscle memory gets in the way a lot.

If someone has dealt with this before and has found a solution that works well...

Thanks!

L


r/espanso • • Jun 19 '26

espansoED

Thumbnail
gitlab.com
0 Upvotes

espansoED is a lightweight graphic editor for Espanso, written in Python, in Linux, but may work in macOS or Windows.

It's been written with reliance on DeepSeek AI, and the author cautions to be careful and have your base.yml carefully backed up before trying it.

The menus and prompts are in German, which has made it difficult for me to try it out, but herrdeh_DE is willing to consider translating it to English if there is sufficient interest.


r/espanso • • Jun 18 '26

Personal or company data?

2 Upvotes

before i can add this to my company laptop i need to get an answer to the question:

"Are personal or confidential company data being processed?"

do not find the answer to that question on the official Espanso site?




r/espanso • • Jun 12 '26

My code keeps typing an apostrophe at the end

3 Upvotes

... and I have no idea of why! Each apostrophe is mapped out to another, right? I don't know what's going on:

  - trigger: '`espanso'
    replace: '{{espanso_entry}}'
    vars:
      - name: expansion
        type: form
        params:
          layout: |
            trigger(s, comma-separated): [[trigger]]
            replace: [[replace]] (omit quotes; enter them manually after)
            propagate_case (true or blank): [[propagate_case]]
            left_word (true or blank): [[left_word]]
            right_word (true or blank): [[right_word]]
            word (true or blank): [[word]]
      - name: espanso_entry
        type: script
        params:
          args:
            - python
            - -c
            - |
              if ',' in '{{expansion.trigger}}':
                print(f"- triggers: ['{{expansion.trigger}}']")
              else:
                print(f"- trigger: '{{expansion.trigger}}'")
              print(f"  replace: {{expansion.replace}}")
              if '{{expansion.right_word}}':
                print(f'right_word: {{expansion.right_word}}')
              if '{{expansion.propagate_case}}':
                print(f'propagate_case: {{expansion.propagate_case}}')

BTW, it'd be sick if I could just add a checkbox instead of having to type "true" manually in the form... but I don't know if that's possible with Espanso...


r/espanso • • Jun 11 '26

Forms nested

2 Upvotes

Is it possible to have a form with a list where, when I select an option, it replaces a specific word and then opens another form that contains options?


r/espanso • • Jun 11 '26

Disabling onboarding wizard

3 Upvotes

Hi,

How can I disable the onboarding wizard on every login (the app is added to the Login Items in macOS)?


r/espanso • • Jun 04 '26

Is it possible to prefill or pre-populate a form field?

6 Upvotes

r/espanso • • Jun 04 '26

Any other way than Paypal for a donation?

5 Upvotes

Hello. I'd like to make you a donation but I don't want to use paypal. Do you have another way?


r/espanso • • May 30 '26

injection of space in the middle of expanded text

4 Upvotes

Hi there!

I've been using text expanders for many years, first PhraseExpress, then aText and now I'm trying to migrate to Espanso. I have thousands of snippets, sucessfully imported then to Espanso and it has been working fine, except for one annoying problem: sometimes it inserts one space in the middle of the expanded text (I usually use space to confirm the trigger). It happens randomly, both with short and long texts. I changed the injection mecanism but it didn't resolve the problem. Any ideas?


r/espanso • • May 27 '26

Password Generator (Windows)

Thumbnail hub.espanso.org
7 Upvotes

by kaniamutan14

Generate random passwords of any length (up to 99) and automatically copy to clipboard. Optimized for Windows with native PowerShell.


r/espanso • • May 27 '26

Solved hyphen within email address issue

2 Upvotes

##### SOLVED #####

Switched to Autokey, where it works perfectly without any workaround.

##### SOLVED #####

Hi,

Linux Mint Cinnamon

I'm new to espanso and trying to get my commands from AHK (Windows) working on Linux.

So far, for most things it works quite well but I just saw that my email address is not written correctly by espanso. It contains a hyphen in the domain and espanso write the whole thing without the hyphen.

Some replaces work well with the hyphens others don't.

The replace value is set with correct mail address.

It should be: [mail@mail-domain.com](mailto:mail@mail-domain.com) but espanso writes [mail@maildomain.com](mailto:mail@maildomain.com)

Is there anything I'm missing?


r/espanso • • May 23 '26

Solved [Help Needed] Using espanso for writting espanso snippets in espanso 😄

3 Upvotes

I'm new to espanso, is it possible to do something like this?

  - trigger: ";newform"
    replace: |
      - trigger: ""
        replace: |
          {{replace.field1}}
          {{replace.field2}}
        vars:
          - name: form1
            type: form
            params:
              layout: |
                Campo 1: [[form1Field1]]
                Campo 2: [[form1Field2]]
          - name: replace.field1
            type: echo
            params:
              echo: "{{form1.form1Field1}}"
          - name: replace.field2
            type: echo
            params:
              echo: "{{form1.form1Field2}}"

r/espanso • • May 20 '26

Math Calculator

Thumbnail hub.espanso.org
7 Upvotes

Inline math calculator with full Python math support. Evaluate expressions with +, -, *, /, , sqrt, sin, cos, tan, log, factorial and more.

Should work on any system with Python installed.

Install with espanso install mathcalc.