espanso / espanso

Cross-platform Text Expander written in Rust

Home Page:https://espanso.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Espanso not working on Arch Linux Wayland after KDE Plasma 6 Update (Keyboard layout bug)

Omar-Ebrahim-1 opened this issue · comments

Describe the bug
Espanso is not starting

To Reproduce
Steps to reproduce the behavior:

-> espanso restart
espanso is not running!
espanso started correctly!

but it hasn't actually restarted. The issue I believe is because of the keyboard layout, I saw same issues, but when I added

keyboard_layout:
  layout: "us"

to my espanso config default.yml, I still have the same issue.

Logs
If possible, run espanso log in a terminal after the bug has occurred, then post the output here so that we can better diagnose the problem

❯ espanso log
20:24:56 [daemon(35070)] [INFO] reading configs from: "/home/arch/.config/espanso"
20:24:56 [daemon(35070)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
20:24:56 [daemon(35070)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
20:24:56 [daemon(35070)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
20:24:56 [daemon(35070)] [WARN] keyboard layout watcher couldn't determine active layout.
20:24:56 [daemon(35070)] [INFO] watching for changes in path: "/home/arch/.config/espanso"
20:24:56 [daemon(35070)] [INFO] espanso version: 2.2.0
20:24:56 [daemon(35070)] [INFO] spawning the worker process...
20:24:56 [daemon(35070)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansodaemonv2.sock
20:24:56 [worker(35076)] [INFO] reading configs from: "/home/arch/.config/espanso"
20:24:56 [worker(35076)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
20:24:56 [worker(35076)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
20:24:56 [worker(35076)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
20:24:56 [worker(35076)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansoworkerv2.sock
20:24:56 [worker(35076)] [INFO] using WaylandAppInfoProvider
20:24:56 [worker(35076)] [WARN] unable to determine keyboard layout automatically, please explicitly specify it in the configuration.
20:24:56 [worker(35076)] [INFO] monitoring the status of the daemon process
20:24:56 [worker(35076)] [INFO] using EVDEVSource
20:24:56 [worker(35076)] [INFO] Querying modifier status...
20:24:56 [worker(35076)] [ERROR] thread 'detect thread' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }': espanso-detect/src/evdev/sync/wayland.rs:193
20:24:56 [worker(35076)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
20:24:56 [worker(35076)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
20:24:56 [worker(35076)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:160
20:24:56 [daemon(35070)] [ERROR] received unexpected exit code from worker 101, exiting

Setup information

  • Version: which version of Espanso are you running? (you can find out by running espanso --version inside a terminal)
❯ espanso --version
espanso 2.2.0

Espanso log with keyboard layout set as us

❯ espanso restart
espanso is not running!
espanso is already running!

❯ espanso log
21:07:37 [daemon(10363)] [INFO] reading configs from: "/home/arch/.config/espanso"
21:07:37 [daemon(10363)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
21:07:37 [daemon(10363)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
21:07:37 [daemon(10363)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
21:07:37 [daemon(10363)] [WARN] keyboard layout watcher couldn't determine active layout.
21:07:37 [daemon(10363)] [INFO] watching for changes in path: "/home/arch/.config/espanso"
21:07:37 [daemon(10363)] [INFO] espanso version: 2.2.0
21:07:37 [daemon(10363)] [INFO] spawning the worker process...
21:07:37 [daemon(10363)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansodaemonv2.sock
21:07:37 [worker(10369)] [INFO] reading configs from: "/home/arch/.config/espanso"
21:07:37 [worker(10369)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
21:07:37 [worker(10369)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
21:07:37 [worker(10369)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
21:07:37 [worker(10369)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansoworkerv2.sock
21:07:37 [worker(10369)] [INFO] using WaylandAppInfoProvider
21:07:37 [worker(10369)] [INFO] detection module will use this keyboard layout: [R=, M=, L=us, V=, O=]
21:07:37 [worker(10369)] [INFO] monitoring the status of the daemon process
21:07:37 [worker(10369)] [INFO] using EVDEVSource
21:07:37 [worker(10369)] [INFO] Querying modifier status...
21:07:37 [worker(10369)] [ERROR] thread 'detect thread' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }': espanso-detect/src/evdev/sync/wayland.rs:193
21:07:38 [worker(10369)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
21:07:38 [worker(10369)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
21:07:38 [worker(10369)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:160
21:07:38 [daemon(10363)] [ERROR] received unexpected exit code from worker 101, exiting

And if I do

❯ setxkbmap -query
WARNING: Running setxkbmap against an Xwayland server
rules:      evdev
model:      pc105
layout:     us

and run espanso with

keyboard_layout:
  layout: us
  rules: evdev
  model: pc105
  variant: eng

I get

❯ espanso log
21:29:14 [daemon(19502)] [INFO] reading configs from: "/home/arch/.config/espanso"
21:29:14 [daemon(19502)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
21:29:14 [daemon(19502)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
21:29:14 [daemon(19502)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
21:29:14 [daemon(19502)] [WARN] keyboard layout watcher couldn't determine active layout.
21:29:14 [daemon(19502)] [INFO] watching for changes in path: "/home/arch/.config/espanso"
21:29:14 [daemon(19502)] [INFO] espanso version: 2.2.0
21:29:14 [daemon(19502)] [INFO] spawning the worker process...
21:29:14 [daemon(19502)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansodaemonv2.sock
21:29:14 [worker(19508)] [INFO] reading configs from: "/home/arch/.config/espanso"
21:29:14 [worker(19508)] [INFO] reading packages from: "/home/arch/.config/espanso/match/packages"
21:29:14 [worker(19508)] [INFO] using runtime dir: "/home/arch/.cache/espanso"
21:29:14 [worker(19508)] [INFO] system info: Arch Linux v - kernel: 6.7.8-arch1-1
21:29:14 [worker(19508)] [INFO] binded to IPC unix socket: /home/arch/.cache/espanso/espansoworkerv2.sock
21:29:14 [worker(19508)] [INFO] using WaylandAppInfoProvider
21:29:14 [worker(19508)] [INFO] detection module will use this keyboard layout: [R=evdev, M=pc105, L=us, V=eng, O=]
21:29:14 [worker(19508)] [INFO] monitoring the status of the daemon process
21:29:14 [worker(19508)] [INFO] using EVDEVSource
21:29:14 [worker(19508)] [ERROR] thread 'detect thread' panicked at 'unable to create xkb keymap: could not create xkb keymap': espanso-detect/src/evdev/mod.rs:114
21:29:14 [worker(19508)] [ERROR] thread 'engine thread' panicked at 'unable to receive from the init_rx channel: RecvError': espanso/src/cli/worker/engine/funnel/mod.rs:124
21:29:14 [worker(19508)] [ERROR] Unable to block the LinuxEventLoop: receiving on an empty and disconnected channel
21:29:14 [worker(19508)] [ERROR] thread 'main' panicked at 'unable to run main eventloop: receiving on an empty and disconnected channel': espanso/src/cli/worker/mod.rs:160
21:29:14 [daemon(19502)] [ERROR] received unexpected exit code from worker 101, exiting

Confirming I am seeing this as well after the update. I will investigate and see if I can determine what broke and where.

Espanso v2.2.0

OS: Arch Linux x86_64
DE: Hyprland
WM: sway

EDIT: after restarting, Espanso seems to work fine on my setup.

The first log posted does not appear to be a keyboard layout error, the second fails to compile the XKB key map - probably because the keyboard layout/variant combination is not recognized.

commented

@Omar-Ebrahim-1 Thanks to you, I could make espanso work on Archlinux, KDE Plasma6 wayland.
I'm a dvorak keyboard user, and it's been working fine on X11/KDE Plasma5.
However, recently I've change to Wayland/KDE Plasma6, and espanso stopped working. (I installed the wayland version of Espanso using AUR.)

For anyone who have difficulties like me, I leave a note here.

$ setxkbmap -query
WARNING: Running setxkbmap against an Xwayland server
rules:      evdev
model:      pc105
layout:     us
variant:    dvorak

Then I add this info to default.yml.

keyboard_layout:
  rules:      "evdev"
  model:      "pc105"
  layout:     "us"
  variant:    "dvorak"

Espanso is back!

I have reinstalled Wayland Espanso using the AUR with default.yml config

keyboard_layout:
  rules:      "evdev"
  model:      "pc105"
  layout:     "us"

and Espanso now works.

Thank you all for the support and I wish you all the best.