diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-27 19:32:50 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-27 19:32:50 +0200 |
| commit | ba7b2d0db2bfa5a054a69af0b1ca9e9e7165a5ef (patch) | |
| tree | 2cdde89d8e99b423ff9da0f491f7a186975c4098 /src/managers/KeybindManager.cpp | |
| parent | 07612534dd73402eac55b4a47f78844bad132072 (diff) | |
Handle TTY switching
but bugs rn when coming back :-/
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index e0582657..6224b561 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -28,6 +28,10 @@ uint32_t CKeybindManager::stringToModMask(std::string mods) { bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t& key) { bool found = false; + + if (handleInternalKeybinds(key)) + return true; + for (auto& k : m_dKeybinds) { if (modmask != k.modmask) continue; @@ -56,6 +60,21 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t return found; } +bool CKeybindManager::handleInternalKeybinds(xkb_keysym_t keysym) { + // Handles the CTRL+ALT+FX TTY keybinds + if (!(keysym >= XKB_KEY_XF86Switch_VT_1 && keysym <= XKB_KEY_XF86Switch_VT_12)) + return false; + + const auto PSESSION = wlr_backend_get_session(g_pCompositor->m_sWLRBackend); + if (PSESSION) { + const auto TTY = keysym - XKB_KEY_XF86Switch_VT_1 + 1; + wlr_session_change_vt(PSESSION, TTY); + return true; + } + + return false; +} + // Dispatchers void CKeybindManager::spawn(std::string args) { @@ -201,4 +220,4 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) { PWINDOW->m_vRealPosition = PWINDOW->m_vRealPosition - g_pCompositor->getMonitorFromID(OLDWORKSPACE->monitorID)->vecPosition; PWINDOW->m_vRealPosition = PWINDOW->m_vRealPosition + g_pCompositor->getMonitorFromID(NEWWORKSPACE->monitorID)->vecPosition; } -}
\ No newline at end of file +} |
