#1859·kanata

Kanata does not detect keyboard

Author: bowlofneighsCreated Nov 23, 2025Updated Aug 29, 2026
Labelsbugquestionlinux

Requirements

Describe the bug

When launching Kanata, it does not detect my keyboard

14:48:23.8430 [INFO] kanata v1.10.0 starting
14:48:23.8431 [INFO] process unmapped keys: true
14:48:23.8432 [INFO] NOTE: kanata was compiled to never allow cmd
14:48:23.8433 [INFO] config file is valid
14:48:23.8436 [INFO] Created device "/dev/input/event19"
14:48:23.8437 [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.
14:48:25.8438 [INFO] entering the processing loop
14:48:25.8439 [INFO] entering the event loop
14:48:25.8439 [INFO] looking for devices in /dev/input
14:48:25.8439 [INFO] Init: catching only releases and sending immediately
14:48:26.0453 [ERROR] failed to open keyboard device(s): No keyboard devices were found. Try:
1. Run 'kanata --list' to see available devices
2. Check permissions: sudo usermod -a -G input $USER
3. Log out and back in for group changes to take effect
4. Ensure devices are connected and working


Press enter to exit
14:48:26.3732 [INFO] Starting kanata proper
14:48:26.3732 [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.
14:48:26.3732 [ERROR] channel disconnected
`
this happens on Omarchy 3.1.7 with a Razer Cynosa V2
also `lctl+spc+esc` does not kill Kanata

### Relevant kanata config

```text
(defcfg
  process-unmapped-keys yes
)

(defsrc
  d s a f j k l ;
)
(defvar
  tap-time 200
  hold-time 200
)


(defalias
 d-mod (tap-hold $tap-time $hold-time d lsft ) ;;tap timeout, hold timeout, tap action, hold action
 s-mod (tap-hold $tap-time $hold-time s lctl )
 a-mod (tap-hold $tap-time $hold-time a lalt )
 f-mod (tap-hold $tap-time $hold-time f lmet )
 j-mod (tap-hold $tap-time $hold-time j lmet )
 k-mod (tap-hold $tap-time $hold-time k rsft ) ;;tap timeout, hold timeout, tap action, hold action
 l-mod (tap-hold $tap-time $hold-time l lctl ) ;;tap timeout, hold timeout, tap action, hold action
 ;-mod (tap-hold $tap-time $hold-time ; ralt ) ;;tap timeout, hold timeout, tap action, hold action



)

(deflayer base
  @d-mod @s-mod @a-mod @f-mod @j-mod @k-mod @l-mod @;-mod
)

To Reproduce

Run kanata on Omarchy Linux 3.1.7 with a Razer Cynosa V2

Expected behavior

I expect kanata to run and detect my keyboard, then stop when I press lctrl + space + esc.

Kanata version

kanata 1.1.0

Debug logs

14:55:51.5136 [INFO] kanata v1.10.0 starting
14:55:51.5138 [INFO] process unmapped keys: true
14:55:51.5138 [INFO] NOTE: kanata was compiled to never allow cmd
14:55:51.5138 [DEBUG] (1) kanata_parser::cfg::alloc: freeing allocations of length 0
14:55:51.5138 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da84d0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da2190 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9480 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da84f0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da8470 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da86b0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9630 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342d9f370 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9610 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9690 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9820 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da8690 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9800 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9880 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa180 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da96d0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da95c0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa1e0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9710 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da95a0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da96f0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da9770 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa450 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa220 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa4b0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa4d0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa550 sz:80
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342da97b0 sz:16
14:55:51.5139 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa530 sz:16
14:55:51.5140 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa5b0 sz:16
14:55:51.5140 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::HoldTapAction<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa630 sz:80
14:55:51.5140 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>, ptr:0x556342daa510 sz:16
14:55:51.5140 [DEBUG] (1) kanata_parser::cfg::alloc: bref_slice type: [[kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>; 767]; 2], ptr:0x556342daa7c0 sz:24544
14:55:51.5140 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: [kanata_keyberon::action::Action<'_, &&[&kanata_parser::custom_action::CustomAction]>; 767], ptr:0x556342db0bc0 sz:12272
14:55:51.5140 [INFO] config file is valid
14:55:51.5144 [INFO] Created device "/dev/input/event19"
14:55:51.5144 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd reset state
14:55:51.5144 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd soft reset state
14:55:51.5144 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd clear historical data
14:55:51.5144 [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.
14:55:53.5146 [INFO] entering the processing loop
14:55:53.5147 [INFO] entering the event loop
14:55:53.5147 [INFO] looking for devices in /dev/input
14:55:53.5148 [INFO] Init: catching only releases and sending immediately
14:55:53.5183 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA Intel PCH Front Headphone
14:55:53.5353 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA Intel PCH Line Out
14:55:53.5553 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA Intel PCH Line
14:55:53.5873 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA Intel PCH Front Mic
14:55:53.6093 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA Intel PCH Rear Mic
14:55:53.6423 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA ATI HDMI HDMI/DP,pcm=9
14:55:53.6583 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA ATI HDMI HDMI/DP,pcm=8
14:55:53.6773 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA ATI HDMI HDMI/DP,pcm=7
14:55:53.7043 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: HDA ATI HDMI HDMI/DP,pcm=3
14:55:53.7393 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: PC Speaker
14:55:53.8103 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: Logitech Extreme 3D pro
14:55:53.8303 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. detect type KeyboardMice; device type Mouse, device name: HID 04b3:310b
14:55:53.8353 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: Power Button
14:55:53.8443 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: Power Button
14:55:53.8603 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: false. Non-input device: Sleep Button
14:55:53.8723 [ERROR] failed to open keyboard device(s): No keyboard devices were found. Try:
1. Run 'kanata --list' to see available devices
2. Check permissions: sudo usermod -a -G input $USER
3. Log out and back in for group changes to take effect
4. Ensure devices are connected and working


Press enter to exit
14:55:54.0445 [INFO] Starting kanata proper
14:55:54.0446 [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.
14:55:54.0446 [ERROR] channel disconnected
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing allocations of length 34
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342db0bc0 len12272
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa7c0 len24544
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa510 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa630 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa5b0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa530 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da97b0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa550 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa4d0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa4b0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa220 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa450 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9770 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da96f0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da95a0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9710 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa1e0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da95c0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da96d0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342daa180 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9880 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9800 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da8690 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9820 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9690 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9610 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342d9f370 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9630 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da86b0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da8470 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da84f0 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da9480 len80
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da2190 len16
14:55:54.1004 [DEBUG] (3) kanata_parser::cfg::alloc: freeing ptr 0x556342da84d0 len16
`

Operating system and I/O mechanism

Linux, USB

Additional context

No response