summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorCyril Levis <cyrinux@users.noreply.github.com>2023-01-08 14:19:18 +0100
committerGitHub <noreply@github.com>2023-01-08 14:19:18 +0100
commit3173fbdc4a2b0a306cf56e282524bcb33914ab96 (patch)
treedf37edc12ca160e37376580a2d58f5f2075f0bc9 /src/managers/KeybindManager.cpp
parentb1104b1ca70372c377289efe6ed99f2d1f6a1ca3 (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.cpp16
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();
}