espanso icon indicating copy to clipboard operation
espanso copied to clipboard

Wayland expansion question, what am I doing wrong?

Open xircon opened this issue 4 years ago • 26 comments

- 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:

xircon avatar Dec 07 '21 21:12 xircon

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 :)

federico-terzi avatar Dec 08 '21 11:12 federico-terzi

Sorry, forgot to mention that I had tried that (and also tried layout: "uk"). At work will test later.

xircon avatar Dec 08 '21 11:12 xircon

@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 :)

federico-terzi avatar Dec 08 '21 11:12 federico-terzi

šŸ‘

xircon avatar Dec 08 '21 12:12 xircon

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 avatar Dec 09 '21 18:12 xircon

@xircon I see, thanks!

Does it happen on every application? I'm wondering if it could be related to a particular terminal...

federico-terzi avatar Dec 10 '21 20:12 federico-terzi

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]
~ 

Vistaus avatar Dec 27 '21 10:12 Vistaus

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 avatar Dec 28 '21 18:12 federico-terzi

@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]
~ 

Vistaus avatar Dec 28 '21 18:12 Vistaus

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 avatar Dec 28 '21 18:12 Vistaus

@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 avatar Dec 28 '21 19:12 federico-terzi

@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 avatar Dec 29 '21 15:12 Vistaus

@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 avatar Dec 29 '21 19:12 federico-terzi

@federico-terzi You've just solved the issue - Espanso is working again! Thank you so much for your help!!! šŸ™‚

Vistaus avatar Dec 30 '21 12:12 Vistaus

@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

federico-terzi avatar Dec 30 '21 19:12 federico-terzi

One thing I do still notice though is that undo_backspace isn't working on Wayland.

Vistaus avatar Jan 02 '22 16:01 Vistaus

@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 avatar Jan 02 '22 20:01 federico-terzi

@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. šŸ™‚

Vistaus avatar Jan 03 '22 10:01 Vistaus

Adding this to ~/.config/default.yml has helped me for colemak:

keyboard_layout:
  layout: us
  variant: colemak

alexlyzhov avatar Aug 06 '23 18:08 alexlyzhov

Is this still a problem, or can we close this Issue?

smeech avatar Feb 13 '24 15:02 smeech

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

EmJotGeh avatar Mar 27 '24 19:03 EmJotGeh

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

smeech avatar Mar 27 '24 19:03 smeech

No, nothing happend. I tried clipboard and inject.

EmJotGeh avatar Mar 27 '24 20:03 EmJotGeh

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:

smeech avatar Mar 27 '24 22:03 smeech

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 :-)

EmJotGeh avatar May 23 '24 02:05 EmJotGeh

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.

  1. You must compile from the source to get it working. The docs are good and clear.
  2. Using setxkbmap -query on 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 report us no matter what.
  3. 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 :espanso and espanso believes it is a us layout as you said, you have to type >espanso (in an es keyboard) to trigger it. You will also see an incorrect replacement on special letters/characters when you trigger it.
  4. The last issue I found is that I was setting the keyboard_layout on ~/.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

alombarte avatar Jul 26 '24 11:07 alombarte