Skip to content

Bug: Kanata v1.12.0-prerelease-1 crashes on macOS after waking from sleep #2008

@gitraar

Description

@gitraar

Requirements

Describe the bug

After waking from sleep, Kanata crashes. As far as I can tell, Kanata only crashes if the wake is triggered by pressing a keyboard key. Waking the computer using the mouse, for example, does not crash Kanata.

Here is the information I get in the terminal after launching Kanata, sleeping computer, and waking computer using the keyboard:

❯ sudo /usr/local/bin/kanata -c /Users/gitraar/.config/kanata/kanata.kbd
16:48:50.2577 [INFO] kanata v1.12.0 starting
16:48:50.2589 [INFO] process unmapped keys: true
16:48:50.2589 [INFO] NOTE: kanata was compiled to never allow cmd
16:48:50.2613 [INFO] config file is valid
16:48:50.2613 [INFO] Sleeping for 2s. Please release all keys and don't press additional ones. Run kanata with --help to see how understand more and how to disable this sleep.
16:48:52.2665 [INFO] entering the processing loop
16:48:52.2666 [INFO] entering the event loop
16:48:52.2666 [INFO] Init: catching only releases and sending immediately
connected
driver activated: true
driver connected: false
driver version matched: true
virtual_hid_keyboard_ready false
16:48:52.8962 [INFO] Starting kanata proper
16:48:52.8962 [INFO] You may forcefully exit kanata by pressing lctl+spc+esc at any time. These keys refer to defsrc input, meaning BEFORE kanata remaps keys.
16:48:53.1967 [INFO] Waiting for DriverKit virtual keyboard... (0.9s/10.0s)
driver connected: true
virtual_hid_keyboard_ready false
16:48:54.2430 [INFO] Waiting for DriverKit virtual keyboard... (2.0s/10.0s)
virtual_hid_keyboard_ready true
16:48:54.3481 [INFO] keyboard grabbed, entering event processing loop
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready false
connected
driver connected: false
virtual_hid_keyboard_ready false
driver connected: true
virtual_hid_keyboard_ready false
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready true
virtual_hid_keyboard_ready false
connected
driver connected: false
virtual_hid_keyboard_ready false
17:18:25.0120 [WARN] output backend unavailable — releasing input devices
17:18:25.0130 [INFO] Input devices released. Keyboard is usable (without remapping). Waiting for the output backend to recover...

thread '<unnamed>' (3015438) panicked at src/kanata/mod.rs:2418:13:
processing loop encountered error failed to press key: Custom { kind: NotConnected, error: "DriverKit virtual keyboard not ready (sink disconnected)" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fish: Job 1, 'sudo /usr/local/bin/kanata -c /…' terminated by signal SIGABRT (Abort)

Relevant kanata config

;; Full simple configuration file I used for testing
(defcfg
  macos-dev-names-include ("Wooting 60HE v2")
  process-unmapped-keys yes
  log-layer-changes no
  concurrent-tap-hold yes
  rapid-event-delay 1
)

(deflocalkeys-macos
  < 41
)

(defsrc
  ⎋ 1  2  3  4  5  6  7  8  9  0  -  =   ⌫
  ↹  q  w  e  r  t  y  u  i  o  p  [  ]  \
  ⇪   a  s  d  f  g  h  j  k  l  ;  '    ⏎
  ‹⇧   z  x  c  v  b  n  m  ,  .  /     ⇧›
  ‹⎈ ‹⌘ ‹⌥    f20   ␣           ⌥›  ⌘›  ⎈›
)

(deflayermap (base)
  ⇧› ‹⇧
)

To Reproduce

– Launch Kanata.
– Sleep computer.
– Wake computer by pressing a key on the keyboard.

Expected behavior

Kanata should keep running.

Kanata version

v1.12.0-prerelease-1

Debug logs


Operating system and I/O mechanism

macOS Tahoe

Additional context

The same configuration worked without issue in V1.11.0.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmacosIssue pertains to macos; jtroo has no macOS devices and does not maintain the support for this OS.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions