slint-ui/slint · error

Error compiling keymap

Error message

Error compiling keymap

What it means

Error "Error compiling keymap" thrown in slint-ui/slint.

Source

Thrown at internal/backends/linuxkms/calloop_backend/input.rs:328

                        let pos = take_touch_pos(&mut self.last_touch_positions, slot);
                        window.dispatch_event(WindowEvent::internal(InternalEvent::Touch {
                            id: slot,
                            position: logical_point_from_api(pos),
                            phase: i_slint_core::input::TouchPhase::Cancelled,
                        }));
                    }
                    _ => {}
                },
                input::Event::Keyboard(input::event::KeyboardEvent::Key(key_event)) => {
                    // On Linux key codes have a fixed offset of 8: https://docs.rs/xkbcommon/0.6.0/xkbcommon/xkb/struct.Keycode.html
                    let key_code = xkb::Keycode::new(key_event.key() + 8);
                    let state = key_event.key_state();

                    let xkb_key_state = self.keystate.get_or_insert_with(|| {
                        let xkb_context = xkb::Context::new(xkb::CONTEXT_NO_FLAGS);
                        let keymap =
                            xkb::Keymap::new_from_names(&xkb_context, "", "", "", "", None, 0)
                                .expect("Error compiling keymap");
                        xkb::State::new(&keymap)
                    });

                    let sym = xkb_key_state.key_get_one_sym(key_code);

                    xkb_key_state.update_key(
                        key_code,
                        match state {
                            input::event::tablet_pad::KeyState::Pressed => xkb::KeyDirection::Down,
                            input::event::tablet_pad::KeyState::Released => xkb::KeyDirection::Up,
                        },
                    );

                    let control = xkb_key_state
                        .mod_name_is_active(xkb::MOD_NAME_CTRL, xkb::STATE_MODS_EFFECTIVE);
                    let alt = xkb_key_state
                        .mod_name_is_active(xkb::MOD_NAME_ALT, xkb::STATE_MODS_EFFECTIVE);

View on GitHub (pinned to 3fd8f2ec03)

Solutions

  1. Check the keymap file for syntax errors.
  2. Ensure the xkbcommon version supports the keymap features used.

When it happens

Trigger: Thrown at internal/backends/linuxkms/calloop_backend/input.rs:328 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19). Data as JSON: /api/errors/609dd061bce86dc4. Report an issue: GitHub.