From 3173fbdc4a2b0a306cf56e282524bcb33914ab96 Mon Sep 17 00:00:00 2001 From: Cyril Levis Date: Sun, 8 Jan 2023 14:19:18 +0100 Subject: feat: dispatcher, add workspace renaming (#1336) * feat: dispatcher, add workspace renaming Co-authored-by: vaxerski --- src/managers/KeybindManager.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/managers/KeybindManager.cpp') diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index ead93231..f5b3e34b 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -10,6 +10,7 @@ CKeybindManager::CKeybindManager() { m_mDispatchers["closewindow"] = kill; m_mDispatchers["togglefloating"] = toggleActiveFloating; m_mDispatchers["workspace"] = changeworkspace; + m_mDispatchers["renameworkspace"] = renameWorkspace; m_mDispatchers["fullscreen"] = fullscreenActive; m_mDispatchers["fakefullscreen"] = fakeFullscreenActive; m_mDispatchers["movetoworkspace"] = moveActiveToWorkspace; @@ -1289,6 +1290,21 @@ void CKeybindManager::workspaceOpt(std::string args) { g_pLayoutManager->getCurrentLayout()->recalculateMonitor(g_pCompositor->m_pLastMonitor->ID); } +void CKeybindManager::renameWorkspace(std::string args) { + try { + const auto FIRSTSPACEPOS = args.find_first_of(' '); + if (FIRSTSPACEPOS != std::string::npos) { + int workspace = std::stoi(args.substr(0, FIRSTSPACEPOS)); + std::string name = args.substr(FIRSTSPACEPOS + 1); + g_pCompositor->renameWorkspace(workspace, name); + } else { + g_pCompositor->renameWorkspace(std::stoi(args), ""); + } + } catch (std::exception& e) { + Debug::log(ERR, "Invalid arg in renameWorkspace, expected numeric id only or a numeric id and string name. \"%s\": \"%s\"", args.c_str(), e.what()); + } +} + void CKeybindManager::exitHyprland(std::string argz) { g_pCompositor->cleanup(); } -- cgit v1.2.3