diff options
| author | Cyril Levis <cyrinux@users.noreply.github.com> | 2023-01-08 14:19:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-08 14:19:18 +0100 |
| commit | 3173fbdc4a2b0a306cf56e282524bcb33914ab96 (patch) | |
| tree | df37edc12ca160e37376580a2d58f5f2075f0bc9 /src/managers/KeybindManager.cpp | |
| parent | b1104b1ca70372c377289efe6ed99f2d1f6a1ca3 (diff) | |
feat: dispatcher, add workspace renaming (#1336)
* feat: dispatcher, add workspace renaming
Co-authored-by: vaxerski <vaxry@vaxry.net>
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
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(); } |
