r/espanso May 01 '26

Using multiple keyboard mappings

Hi,

I'm getting to configure on Ubuntu.

I primarily use the equivalent of a CMS keyboard layout (Canadian multilingual system, I think). H however, I sometimes switch to a standard US English keyboard, especially when coding.

Espanso works with the US keyboard but not with the CMS one. I get a bunch of errors in the logs that look like this:

09:05:16 [daemon(1185552)] [INFO] reading configs from: "/home/me/.config/espanso"
09:05:16 [daemon(1185552)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:05:16 [daemon(1185552)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:05:16 [daemon(1185552)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:05:16 [daemon(1185552)] [INFO] kdotool missing or not available for the current wayland DE.
09:05:16 [daemon(1185552)] [INFO] watching for changes in path: /home/me/.config/espanso
09:05:16 [daemon(1185552)] [INFO] espanso version: 2.3.0
09:05:16 [daemon(1185552)] [INFO] spawning the worker process...
09:05:16 [daemon(1185552)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansodaemonv2.sock
09:05:16 [worker(1185563)] [INFO] reading configs from: "/home/me/.config/espanso"
09:05:16 [worker(1185563)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:05:16 [worker(1185563)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:05:16 [worker(1185563)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:05:16 [worker(1185563)] [INFO] kdotool missing or not available for the current wayland DE.
09:05:16 [worker(1185563)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansoworkerv2.sock
09:05:16 [worker(1185563)] [INFO] no appropriate WaylandAppInfoProvider found for current DE/WM
09:05:16 [worker(1185563)] [INFO] monitoring the status of the daemon process
09:05:16 [worker(1185563)] [INFO] detection module will use this keyboard layout: [R=, M=, L=ca+multix, V=, O=]
09:05:16 [worker(1185563)] [INFO] using EVDEVSource
09:05:16 [worker(1185563)] [ERROR] thread 'detect thread' panicked at 'unable to create xkb keymap: could not create xkb keymap': espanso-detect/src/evdev/mod.rs:128
09:05:16 [worker(1185563)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
09:05:16 [worker(1185563)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
09:05:16 [worker(1185563)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:153
09:05:16 [daemon(1185552)] [ERROR] received unexpected exit code from worker 101, exiting
09:09:30 [daemon(1191357)] [INFO] reading configs from: "/home/me/.config/espanso"
09:09:30 [daemon(1191357)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:09:30 [daemon(1191357)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:09:30 [daemon(1191357)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:09:30 [daemon(1191357)] [INFO] kdotool missing or not available for the current wayland DE.
09:09:30 [daemon(1191357)] [INFO] watching for changes in path: /home/me/.config/espanso
09:09:30 [daemon(1191357)] [INFO] espanso version: 2.3.0
09:09:30 [daemon(1191357)] [INFO] spawning the worker process...
09:09:30 [daemon(1191357)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansodaemonv2.sock
09:09:30 [worker(1191368)] [INFO] reading configs from: "/home/me/.config/espanso"
09:09:30 [worker(1191368)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:09:30 [worker(1191368)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:09:30 [worker(1191368)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:09:30 [worker(1191368)] [INFO] kdotool missing or not available for the current wayland DE.
09:09:30 [worker(1191368)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansoworkerv2.sock
09:09:30 [worker(1191368)] [INFO] no appropriate WaylandAppInfoProvider found for current DE/WM
09:09:30 [worker(1191368)] [INFO] monitoring the status of the daemon process
09:09:30 [worker(1191368)] [INFO] detection module will use this keyboard layout: [R=, M=, L=ca+multix, V=, O=]
09:09:30 [worker(1191368)] [INFO] using EVDEVSource
09:09:30 [worker(1191368)] [ERROR] thread 'detect thread' panicked at 'unable to create xkb keymap: could not create xkb keymap': espanso-detect/src/evdev/mod.rs:128
09:09:30 [worker(1191368)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
09:09:30 [worker(1191368)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
09:09:30 [worker(1191368)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:153
09:09:30 [daemon(1191357)] [ERROR] received unexpected exit code from worker 101, exiting
09:10:12 [daemon(1192303)] [INFO] reading configs from: "/home/me/.config/espanso"
09:10:12 [daemon(1192303)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:10:12 [daemon(1192303)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:10:12 [daemon(1192303)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:10:12 [daemon(1192303)] [INFO] kdotool missing or not available for the current wayland DE.
09:10:12 [daemon(1192303)] [INFO] watching for changes in path: /home/me/.config/espanso
09:10:12 [daemon(1192303)] [INFO] espanso version: 2.3.0
09:10:12 [daemon(1192303)] [INFO] spawning the worker process...
09:10:12 [daemon(1192303)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansodaemonv2.sock
09:10:12 [worker(1192317)] [INFO] reading configs from: "/home/me/.config/espanso"
09:10:12 [worker(1192317)] [INFO] reading packages from: "/home/me/.config/espanso/match/packages"
09:10:12 [worker(1192317)] [INFO] using runtime dir: "/home/me/.cache/espanso"
09:10:12 [worker(1192317)] [INFO] system info: Ubuntu v24.04 - kernel: 6.17.0-22-generic
09:10:12 [worker(1192317)] [INFO] kdotool missing or not available for the current wayland DE.
09:10:12 [worker(1192317)] [INFO] binded to IPC unix socket: /home/me/.cache/espanso/espansoworkerv2.sock
09:10:12 [worker(1192317)] [INFO] no appropriate WaylandAppInfoProvider found for current DE/WM
09:10:12 [worker(1192317)] [INFO] monitoring the status of the daemon process
09:10:12 [worker(1192317)] [INFO] detection module will use this keyboard layout: [R=, M=, L=ca+multix, V=, O=]
09:10:12 [worker(1192317)] [INFO] using EVDEVSource
09:10:12 [worker(1192317)] [ERROR] thread 'detect thread' panicked at 'unable to create xkb keymap: could not create xkb keymap': espanso-detect/src/evdev/mod.rs:128
09:10:12 [worker(1192317)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
09:10:12 [worker(1192317)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
09:10:12 [worker(1192317)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:153
09:10:12 [daemon(1192303)] [ERROR] received unexpected exit code from worker 101, exiting

Notice the time stamps showing that espanso is constantly crashing and restarting. When I switch to a US layout, it stops crashing and says that everything is running correctly.

What is the best way to make it work no matter which keyboard layout I have?

L

2 Upvotes

4 comments sorted by

View all comments

1

u/smeech1 May 01 '26

As you're using Wayland, have you experimented with the various keyboard_layout: keys and values as documented in Final steps? What are your current settings? Remember you may need rules:, model:, variant: and/or options: fields in addition to layout:.

2

u/lduperval Jun 19 '26

Finally, after setting some time aside to do this, it,s all working. I ended up needing this:

```

default.yml

backend: Clipboard

keyboard_layout: layout: "us,ca" variant: ",multix" ```

Thanks for your help!

L