diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index e725785b..7b4eb211 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -141,6 +141,10 @@ bool CKeybindManager::onKeyEvent(wlr_keyboard_key_event* e, SKeyboard* pKeyboard const auto KEYCODE = e->keycode + 8; // Because to xkbcommon it's +8 from libinput const xkb_keysym_t keysym = xkb_state_key_get_one_sym(m_pXKBTranslationState, KEYCODE); + const xkb_keysym_t internalKeysym = xkb_state_key_get_one_sym(wlr_keyboard_from_input_device(pKeyboard->keyboard)->xkb_state, KEYCODE); + + if (handleInternalKeybinds(internalKeysym)) + return true; const auto MODS = g_pInputManager->accumulateModsFromAllKBs(); @@ -251,9 +255,6 @@ int repeatKeyHandler(void* data) { bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const std::string& key, const xkb_keysym_t& keysym, const int& keycode, bool pressed, uint32_t time) { bool found = false; - if (handleInternalKeybinds(keysym)) - return true; - if (g_pCompositor->m_sSeat.exclusiveClient) Debug::log(LOG, "Keybind handling only locked (inhibitor)");