diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 04cc0d9b..5d791004 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -7,6 +7,7 @@ CKeybindManager::CKeybindManager() { m_mDispatchers["exec"] = spawn; m_mDispatchers["killactive"] = killActive; + m_mDispatchers["closewindow"] = kill; m_mDispatchers["togglefloating"] = toggleActiveFloating; m_mDispatchers["workspace"] = changeworkspace; m_mDispatchers["fullscreen"] = fullscreenActive; @@ -475,6 +476,17 @@ void CKeybindManager::killActive(std::string args) { g_pCompositor->closeWindow(g_pCompositor->m_pLastWindow); } +void CKeybindManager::kill(std::string args) { + const auto PWINDOW = g_pCompositor->getWindowByRegex(args); + + if (!PWINDOW) { + Debug::log(ERR, "kill: no window found"); + return; + } + + g_pCompositor->closeWindow(PWINDOW); +} + void CKeybindManager::clearKeybinds() { m_lKeybinds.clear(); } diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index d3afe9dd..2431d2f9 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -78,6 +78,7 @@ private: // -------------- Dispatchers -------------- // static void killActive(std::string); + static void kill(std::string); static void spawn(std::string); static void toggleActiveFloating(std::string); static void toggleActivePseudo(std::string);