Wayland expansion question, what am I doing wrong?
- trigger: ";em"
replace: "[email protected]"
Produces test"email.com to fix I can use
test\"email.com
UK keyboard, KDE Plasma Wayland, EndeavourOS (Arch based).
locale settings:
locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES=
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
On the upside the "Android" keyboard features I had implemented now work - go figure :smile:
Hey @xircon,
Thanks for reporting this issue! When using Wayland, keep in mind that you have to explicitly specify the keyboard layout you're using on the $CONFIG/config/default.yml file:
keyboard_layout:
layout: "gb"
Let me know if that helps
On the upside the "Android" keyboard features I had implemented now work - go figure š
That's interesting!
Cheers :)
Sorry, forgot to mention that I had tried that (and also tried layout: "uk"). At work will test later.
@xircon I see, thanks! Then you might need to increase the modifiers delay:
evdev_modifier_delay: 20
The default value is 10, increase as necessary. Let me know if that helps :)
š
No difference, I am afraid:
keyboard_layout:
layout: "gb"
evdev_modifier_delay: 30
#backend: Clipboard
matches:
# Simple text replacement
- trigger: ":espanso"
replace: "Hi there!@@"
Gives:
2021-12-09 18:54 ā ~ ā @@@@@@ Hi there!""
I typed the "@" symbols and then entered the :espanso phrase.
@xircon I see, thanks!
Does it happen on every application? I'm wondering if it could be related to a particular terminal...
I too installed Espanso on Wayland just now, but I run into the same issue. I tried to add my keyboard layout to the config file, which is English (Dvorak, international with dead keys), but once I do so, Espanso fails to start:
~ espanso service start --unmanaged
unable to start service: timed out
(note that I'm running it unmanaged since I moved to Void a couple of days ago, which doesn't use systemd)
Edit: if I set the layout to "us" it does start, but text expansion doesn't work. Edit 2: here's the log:
& thefish @ thefish in ~ 0 [12:20:42]
~ espanso log
12:20:34 [daemon(17051)] [INFO] reading configs from: "/home/thefish/.config/espanso"
12:20:34 [daemon(17051)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
12:20:34 [daemon(17051)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
12:20:34 [daemon(17051)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
12:20:34 [daemon(17051)] [WARN] keyboard layout watcher couldn't determine active layout.
12:20:34 [daemon(17051)] [INFO] watching for changes in path: "/home/thefish/.config/espanso"
12:20:34 [daemon(17051)] [INFO] espanso version: 2.1.1-alpha
12:20:34 [daemon(17051)] [INFO] spawning the worker process...
12:20:34 [daemon(17051)] [INFO] binded to IPC unix socket: /home/thefish/.local/share/espanso/espansodaemonv2.sock
12:20:34 [worker(17057)] [INFO] reading configs from: "/home/thefish/.config/espanso"
12:20:34 [worker(17057)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
12:20:34 [worker(17057)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
12:20:34 [worker(17057)] [INFO] using WaylandAppInfoProvider
12:20:34 [worker(17057)] [INFO] binded to IPC unix socket: /home/thefish/.local/share/espanso/espansoworkerv2.sock
12:20:34 [worker(17057)] [INFO] monitoring the status of the daemon process
12:20:34 [worker(17057)] [INFO] detection module will use this keyboard layout: [R=, M=, L=us, V=, O=]
12:20:34 [worker(17057)] [INFO] using EVDEVSource
12:20:34 [worker(17057)] [INFO] Querying modifier status...
12:20:34 [worker(17057)] [INFO] inject module will use this keyboard layout: [R=, M=, L=us, V=, O=]
12:20:34 [worker(17057)] [INFO] using EVDEVInjector
12:20:34 [worker(17057)] [INFO] using WaylandFallbackClipboard
12:20:34 [worker(17057)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
12:20:34 [worker(17057)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:160
12:20:34 [daemon(17051)] [ERROR] received unexpected exit code from worker 101, exiting
12:20:42 [service(17087)] [INFO] reading configs from: "/home/thefish/.config/espanso"
12:20:42 [service(17087)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
12:20:42 [service(17087)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
12:20:42 [service(17087)] [ERROR] espanso is not running
& thefish @ thefish in ~ 0 [12:21:06]
~
Hey @Vistaus,
Thanks for reporting this issue! When you have the chance, could you please run the following command, leave it running for 10 seconds and then post the output here?
espanso -vv daemon
Cheers :)
@federico-terzi Thanks for looking into this! :-)
Here's the output:
& thefish @ thefish in ~ 0 [19:48:39]
~ espanso -vv daemon
19:48:41 [daemon(15008)] [DEBUG] (1) espanso_path: detected config directory in $HOME/.config/espanso
19:48:41 [daemon(15008)] [DEBUG] (1) espanso_path: detected legacy runtime dir: "/home/thefish/.local/share/espanso"
19:48:41 [daemon(15008)] [DEBUG] (1) espanso_path: detected default packages dir: "/home/thefish/.config/espanso/match/packages"
19:48:41 [daemon(15008)] [INFO] reading configs from: "/home/thefish/.config/espanso"
19:48:41 [daemon(15008)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
19:48:41 [daemon(15008)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
19:48:41 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:41 [daemon(15008)] [WARN] keyboard layout watcher couldn't determine active layout.
19:48:41 [daemon(15008)] [INFO] watching for changes in path: "/home/thefish/.config/espanso"
19:48:41 [daemon(15008)] [DEBUG] (1) espanso_config::config::store: loaded default config at path: "/home/thefish/.config/espanso/config/default.yml"
19:48:41 [daemon(15008)] [DEBUG] (1) espanso_config::config::store: loaded config at path: "/home/thefish/.config/espanso/config/firefox.yml"
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'alacritty_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'emacs_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'gedit_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'generic_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'kitty_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'konsole_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'libreoffice_writer_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'simple_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'simple_terminal_2_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'terminator_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'termite_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'thunderbird_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'tilix_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'urxvt_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'xterm_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'yakuake_terminal_x11' patch
19:48:41 [daemon(15008)] [DEBUG] (1) espanso::patch::config_store: skipping 'virtualbox_x11' patch
19:48:41 [daemon(15008)] [INFO] espanso version: 2.1.1-alpha
19:48:41 [daemon(15008)] [INFO] spawning the worker process...
19:48:41 [daemon(15008)] [INFO] binded to IPC unix socket: /home/thefish/.local/share/espanso/espansodaemonv2.sock
19:48:41 [worker(15014)] [INFO] reading configs from: "/home/thefish/.config/espanso"
19:48:41 [worker(15014)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
19:48:41 [worker(15014)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
19:48:41 [worker(15014)] [INFO] binded to IPC unix socket: /home/thefish/.local/share/espanso/espansoworkerv2.sock
19:48:41 [worker(15014)] [INFO] using WaylandAppInfoProvider
19:48:41 [worker(15014)] [INFO] monitoring the status of the daemon process
19:48:41 [worker(15014)] [INFO] detection module will use this keyboard layout: [R=, M=, L=us, V=, O=]
19:48:41 [worker(15014)] [INFO] using EVDEVSource
19:48:41 [worker(15014)] [INFO] Querying modifier status...
19:48:41 [worker(15014)] [INFO] inject module will use this keyboard layout: [R=, M=, L=us, V=, O=]
19:48:41 [worker(15014)] [INFO] using EVDEVInjector
19:48:41 [worker(15014)] [INFO] using WaylandFallbackClipboard
19:48:42 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:43 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:44 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:45 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:46 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:47 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:48 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
19:48:49 [daemon(15008)] [WARN] unable to determine the currently active layout, you might need to explicitly specify the layout in the config for espanso to work correctly.
^Cā
& thefish @ thefish in ~ 0 [19:48:49]
~
I have set the keyboard layout in the config file:
keyboard_layout: layout: "us"
Even though that's not the right one as I'm using Dvorak, but I used that one as a test to see if Espanso would start as it's the most common layout before trying to set it to Dvorak. But even with the US layout set, it doesn't start and I get the above output.
@Vistaus That's interesting, thanks!
Judging from the output above, it seems Espanso is not crashing anymore when launched with espanso -vv daemon, but that doesn't explain your problem...
Could you please do the same (run and paste the output here) with:
espanso -vv worker
While that command is running, you can also check if some of your expansions are working or not (though I suspect the dvorak layout might be the cause of missing detection/injection).
To properly set it up, we would need the RMLVO information, which on X11 can be found with setxkbmap -query, but on Wayland the situation seems more fragmented...
This is an example output:
$ setxkbmap -query
rules: evdev
model: default
layout: fr
variant: bepo
options: grp:alt_shift_toggle
If we figure out model and variant, I suspect we might be able to fix this
@federico-terzi
Here's the output of the first command:
& thefish @ thefish in ~/Downloads 0 [20:52:09]
~ espanso -vv worker
09:34:05 [worker(18249)] [DEBUG] (1) espanso_path: detected config directory in $HOME/.config/espanso
09:34:05 [worker(18249)] [DEBUG] (1) espanso_path: detected legacy runtime dir: "/home/thefish/.local/share/espanso"
09:34:05 [worker(18249)] [DEBUG] (1) espanso_path: detected default packages dir: "/home/thefish/.config/espanso/match/packages"
09:34:05 [worker(18249)] [INFO] reading configs from: "/home/thefish/.config/espanso"
09:34:05 [worker(18249)] [INFO] reading packages from: "/home/thefish/.config/espanso/match/packages"
09:34:05 [worker(18249)] [INFO] using runtime dir: "/home/thefish/.local/share/espanso"
09:34:05 [worker(18249)] [DEBUG] (1) espanso_config::config::store: loaded default config at path: "/home/thefish/.config/espanso/config/default.yml"
09:34:05 [worker(18249)] [DEBUG] (1) espanso_config::config::store: loaded config at path: "/home/thefish/.config/espanso/config/firefox.yml"
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'alacritty_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'emacs_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'gedit_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'generic_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'kitty_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'konsole_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'libreoffice_writer_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'simple_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'simple_terminal_2_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'terminator_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'termite_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'thunderbird_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'tilix_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'urxvt_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'xterm_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'yakuake_terminal_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::patch::config_store: skipping 'virtualbox_x11' patch
09:34:05 [worker(18249)] [DEBUG] (1) espanso::cli::worker: starting with start-reason = None
09:34:05 [worker(18249)] [DEBUG] (1) espanso::icon: skipping extraction for '"/home/thefish/.local/share/espanso/iconv2.png"', as it's already present
09:34:05 [worker(18249)] [DEBUG] (1) espanso::icon: skipping extraction for '"/home/thefish/.local/share/espanso/search.png"', as it's already present
09:34:05 [worker(18249)] [DEBUG] (1) espanso::icon: skipping extraction for '"/home/thefish/.local/share/espanso/icon_no_background.png"', as it's already present
09:34:05 [worker(18249)] [INFO] using WaylandAppInfoProvider
09:34:05 [worker(18249)] [INFO] binded to IPC unix socket: /home/thefish/.local/share/espanso/espansoworkerv2.sock
09:34:05 [worker(18249)] [DEBUG] (2) espanso::cli::worker::engine: using linux capabilities to grant permissions needed by EVDEV backend
09:34:05 [worker(18249)] [DEBUG] (2) espanso::cli::worker::engine: successfully granted permissions using capabilities
09:34:05 [worker(18249)] [INFO] detection module will use this keyboard layout: [R=, M=, L=us, V=, O=]
09:34:05 [worker(18249)] [INFO] using EVDEVSource
09:34:05 [worker(18249)] [INFO] Querying modifier status...
09:34:05 [worker(18249)] [DEBUG] (4) espanso_detect::evdev: Updating device modifier state: ModifiersState { ctrl: false, alt: false, shift: false, caps_lock: false, meta: false, num_lock: false }
09:34:05 [worker(18249)] [INFO] inject module will use this keyboard layout: [R=, M=, L=us, V=, O=]
09:34:05 [worker(18249)] [INFO] using EVDEVInjector
09:34:06 [worker(18249)] [INFO] using WaylandFallbackClipboard
^Cā
& thefish @ thefish in ~/Downloads 0 [09:34:20]
~
Text expansions weren't working.
The output of setxkbmap is:
& thefish @ thefish in ~ 0 [16:09:33]
~ setxkbmap -query
rules: evdev
model: pc86
layout: us
variant: dvorak-intl
options: terminate:ctrl_alt_bksp
& thefish @ thefish in ~ 0 [16:09:34]
~
@Vistaus Thanks! With that information, you should be able to configure the keyboard settings correctly (at least in theory).
In your $CONFIG/config/default.yml file, you should add:
keyboard_layout:
rules: "evdev"
model: pc86
layout: us
variant: "dvorak-intl"
options: "terminate:ctrl_alt_bksp"
When you have the chance, let me know if that helps :)
@federico-terzi You've just solved the issue - Espanso is working again! Thank you so much for your help!!! š
@Vistaus Nice! If we manage to find a reliable way to extract that information on Wayland, we could integrate it into espanso itself... That would be immensely helpful. I've created an issue, if someone has an idea: https://github.com/federico-terzi/espanso/issues/921
One thing I do still notice though is that undo_backspace isn't working on Wayland.
@Vistaus Unfortunately, that's disabled by design for now https://github.com/federico-terzi/espanso/blob/master/espanso/src/cli/worker/config.rs#L179-L182. After some tests, I noticed it was really unstable and decided to disable it for now. Might come back at it later once the high priority issues are sorted out :)
@federico-terzi Ah, I see. It's indeed not a high-priority issue - just a minor inconvenience. I'll wait patiently then. š Besides this little thing, Espanso is still working very well on Wayland so far. š
Adding this to ~/.config/default.yml has helped me for colemak:
keyboard_layout:
layout: us
variant: colemak
Is this still a problem, or can we close this Issue?
I still have problems getting espanso to work on wayland.
Espanso: 2.2.1 On Arch Linux installed from AUR QWERTZ Keyboard
What i tried:
espanso log:
20:13:12 [daemon(73394)] [INFO] reading configs from: "/home/user/.config/espanso"
20:13:12 [daemon(73394)] [INFO] reading packages from: "/home/user/.config/espanso/match/packages"
20:13:12 [daemon(73394)] [INFO] using runtime dir: "/home/user/.local/share/espanso"
20:13:12 [daemon(73394)] [INFO] system info: Arch Linux vrolling - kernel: 6.8.1-arch1-1
20:13:12 [daemon(73394)] [WARN] keyboard layout watcher couldn't determine active layout.
20:13:12 [daemon(73394)] [INFO] watching for changes in path: "/home/user/.config/espanso"
20:13:12 [daemon(73394)] [INFO] espanso version: 2.2.1
20:13:12 [daemon(73394)] [INFO] spawning the worker process...
20:13:12 [daemon(73394)] [INFO] binded to IPC unix socket: /home/user/.local/share/espanso/espansodaemonv2.sock
20:13:12 [worker(73400)] [INFO] reading configs from: "/home/user/.config/espanso"
20:13:12 [worker(73400)] [INFO] reading packages from: "/home/user/.config/espanso/match/packages"
20:13:12 [worker(73400)] [INFO] using runtime dir: "/home/user/.local/share/espanso"
20:13:12 [worker(73400)] [INFO] system info: Arch Linux vrolling - kernel: 6.8.1-arch1-1
20:13:12 [worker(73400)] [INFO] binded to IPC unix socket: /home/user/.local/share/espanso/espansoworkerv2.sock
20:13:12 [worker(73400)] [INFO] using WaylandAppInfoProvider
20:13:12 [worker(73400)] [INFO] detection module will use this keyboard layout: [R=evdev, M=pc105, L=us, V=, O=]
20:13:12 [worker(73400)] [INFO] monitoring the status of the daemon process
20:13:12 [worker(73400)] [INFO] using EVDEVSource
20:13:13 [worker(73400)] [INFO] Querying modifier status...
20:13:13 [worker(73400)] [INFO] inject module will use this keyboard layout: [R=evdev, M=pc105, L=us, V=, O=]
20:13:13 [worker(73400)] [INFO] using EVDEVInjector
20:13:13 [worker(73400)] [INFO] using WaylandFallbackClipboard
setxkbmap -query
WARNING: Running setxkbmap against an Xwayland server
rules: evdev
model: pc105
layout: us
I am surprised because I use a german keyboard
My (home/user/.config/espanso/default.yml
# Automatically generated by espanso migration tool
# Original file: default.yml
keyboard_layout:
rules: "evdev"
model: "pc105"
layout: "us"
matches:
- trigger: ":espanso"
replace: "Hi there!"
I'm not sure if this error message could be the problem.
20:13:12 [daemon(73394)] [WARN] keyboard layout watcher couldn't determine active layout.
In any case, Espanso does not replace the text. Maybe someone else has a hint for me. Thanks
The warning is normal for Wayland as Espanso doesn't automatically determine the layout as it does in other window managers. Hence the advice in https://espanso.org/docs/install/linux/#install-on-wayland to set your keyboard manually.
However, that's likely to affect which characters are recognised in triggers, or output in expansions.
If the :espanso trigger is putting nothing out it may be worth experimenting with the injection mechanism backend, as documented in https://espanso.org/docs/matches/basics/#injection-mechanism
No, nothing happend. I tried clipboard and inject.
backend: clipboard/inject in default.yml
or
force_mode: clipboard/ keys in triggers.
Just checking š. clipboard usually works in editors anyway, IME.
20:13:13 [worker(73400)] [INFO] inject module will use this keyboard layout: [R=evdev, M=pc105, L=us, V=, O=]
Your config appears to be picking up your keyboard_layout: setting. I presume you've tried "de".
I'm running out of ideas, I'm afraid. :disappointed:
I'm amazed, after a few months I tried it again. After I had tried everything, and I really mean everything, I only changed the layout in default.yml to "de". And suddenly it works. I don't know why it works now because I had already set the layout to "de" once and nothing happened.
Anyway - KDE Plasma 6.0.4 Wayland seems to work fine. Thanks for the hints :-)
Hi, I am sharing a few notes about how I managed to get Espanso working after migrating from an old Ubuntu (X11) to Fedora (Wayland) in case this helps anyone.
- You must compile from the source to get it working. The docs are good and clear.
- Using
setxkbmap -queryon Wayland is misleading. Wayland does not have (that I found) a way to report/fetch the correct layout from the compositor. It is going to reportusno matter what. - Because of the previous, the first problem I saw was that despite the server was working it did not trigger anything. Why? Because if you have a trigger like
:espansoand espanso believes it is auslayout as you said, you have to type>espanso(in aneskeyboard) to trigger it. You will also see an incorrect replacement on special letters/characters when you trigger it. - The last issue I found is that I was setting the
keyboard_layouton~/.config/espanso/match/base.yml, but it should go to~/.config/espanso/config/default.yml. Obviously, if you define the config in the wrong place, do not expect it to work. This is a RTFM problem, totally on me, but since the migration of the config wrote all my contents to the other file, I just edited that one (again, I was coming from an old version).
In summary, compiling by hand and setting the right layout (not the one in setxbmap) in the file config/default.yml worked for me:
# Complete contents of the file below:
undo_backspace: false
keyboard_layout:
rules: "evdev"
model: pc105
layout: es
evdev_modifier_delay: 10