Handle TTY switching

but bugs rn when coming back :-/
This commit is contained in:
vaxerski 2022-03-27 19:32:50 +02:00
parent 07612534dd
commit ba7b2d0db2
2 changed files with 21 additions and 1 deletions

View file

@ -28,6 +28,10 @@ uint32_t CKeybindManager::stringToModMask(std::string mods) {
bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t& key) { bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t& key) {
bool found = false; bool found = false;
if (handleInternalKeybinds(key))
return true;
for (auto& k : m_dKeybinds) { for (auto& k : m_dKeybinds) {
if (modmask != k.modmask) if (modmask != k.modmask)
continue; continue;
@ -56,6 +60,21 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t
return found; 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 // Dispatchers
void CKeybindManager::spawn(std::string args) { void CKeybindManager::spawn(std::string args) {

View file

@ -21,6 +21,7 @@ public:
private: private:
std::deque<SKeybind> m_dKeybinds; std::deque<SKeybind> m_dKeybinds;
bool handleInternalKeybinds(xkb_keysym_t);
// -------------- Dispatchers -------------- // // -------------- Dispatchers -------------- //
void killActive(std::string); void killActive(std::string);