Merge pull request #2466 from maximbaz/hyprland-support-workspace-rename
hyprland/workspaces: react on renameworkspace eventpull/2408/head
commit
116aa5cdbd
|
@ -34,6 +34,7 @@ class Workspace {
|
||||||
void set_persistent(bool value = true) { is_persistent_ = value; };
|
void set_persistent(bool value = true) { is_persistent_ = value; };
|
||||||
void set_urgent(bool value = true) { is_urgent_ = value; };
|
void set_urgent(bool value = true) { is_urgent_ = value; };
|
||||||
void set_windows(uint value) { windows_ = value; };
|
void set_windows(uint value) { windows_ = value; };
|
||||||
|
void set_name(std::string value) { name_ = value; };
|
||||||
|
|
||||||
void update(const std::string& format, const std::string& icon);
|
void update(const std::string& format, const std::string& icon);
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ Workspaces::Workspaces(const std::string &id, const Bar &bar, const Json::Value
|
||||||
gIPC->registerForIPC("destroyworkspace", this);
|
gIPC->registerForIPC("destroyworkspace", this);
|
||||||
gIPC->registerForIPC("focusedmon", this);
|
gIPC->registerForIPC("focusedmon", this);
|
||||||
gIPC->registerForIPC("moveworkspace", this);
|
gIPC->registerForIPC("moveworkspace", this);
|
||||||
|
gIPC->registerForIPC("renameworkspace", this);
|
||||||
gIPC->registerForIPC("openwindow", this);
|
gIPC->registerForIPC("openwindow", this);
|
||||||
gIPC->registerForIPC("closewindow", this);
|
gIPC->registerForIPC("closewindow", this);
|
||||||
gIPC->registerForIPC("movewindow", this);
|
gIPC->registerForIPC("movewindow", this);
|
||||||
|
@ -132,6 +133,16 @@ void Workspaces::onEvent(const std::string &ev) {
|
||||||
update_window_count();
|
update_window_count();
|
||||||
} else if (eventName == "urgent") {
|
} else if (eventName == "urgent") {
|
||||||
set_urgent_workspace(payload);
|
set_urgent_workspace(payload);
|
||||||
|
} else if (eventName == "renameworkspace") {
|
||||||
|
std::string workspace_id_str = payload.substr(0, payload.find(','));
|
||||||
|
int workspace_id = workspace_id_str == "special" ? -99 : std::stoi(workspace_id_str);
|
||||||
|
std::string new_name = payload.substr(payload.find(',') + 1);
|
||||||
|
for (auto &workspace : workspaces_) {
|
||||||
|
if (workspace->id() == workspace_id) {
|
||||||
|
workspace->set_name(new_name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dp.emit();
|
dp.emit();
|
||||||
|
|
Loading…
Reference in New Issue