Removed option `active-per-monitor`

pull/2987/head
Tom Benham 2024-03-05 11:12:07 +01:00
parent df7f1fffcf
commit 68889494d0
3 changed files with 4 additions and 50 deletions

View File

@ -127,7 +127,6 @@ class Workspaces : public AModule, public EventHandler {
auto showSpecial() const -> bool { return m_showSpecial; } auto showSpecial() const -> bool { return m_showSpecial; }
auto activeOnly() const -> bool { return m_activeOnly; } auto activeOnly() const -> bool { return m_activeOnly; }
auto moveToMonitor() const -> bool { return m_moveToMonitor; } auto moveToMonitor() const -> bool { return m_moveToMonitor; }
auto activePerMonitor() const -> bool { return m_activePerMonitor; }
auto getBarOutput() const -> std::string { return m_bar.output->name; } auto getBarOutput() const -> std::string { return m_bar.output->name; }
@ -185,7 +184,6 @@ class Workspaces : public AModule, public EventHandler {
bool m_showSpecial = false; bool m_showSpecial = false;
bool m_activeOnly = false; bool m_activeOnly = false;
bool m_moveToMonitor = false; bool m_moveToMonitor = false;
bool m_activePerMonitor = false;
Json::Value m_persistentWorkspaceConfig; Json::Value m_persistentWorkspaceConfig;
// Map for windows stored in workspaces not present in the current bar. // Map for windows stored in workspaces not present in the current bar.

View File

@ -59,14 +59,6 @@ Addressed by *hyprland/workspaces*
Otherwise, the workspace will open on the monitor where it was previously assigned. Otherwise, the workspace will open on the monitor where it was previously assigned.
Analog to using `focusworkspaceoncurrentmonitor` dispatcher instead of `workspace` in Hyprland. Analog to using `focusworkspaceoncurrentmonitor` dispatcher instead of `workspace` in Hyprland.
*active-per-monitor*: ++
typeof: bool ++
default: false ++
If set to true, each bar on each monitor will show its separate active
workspace being the currently focused workspace on this monitor.
Otherwise, all bars on all monitors will show the same active workspace
being the currently focused workspace on the currently focused monitor.
*ignore-workspaces*: ++ *ignore-workspaces*: ++
typeof: array ++ typeof: array ++
default: [] ++ default: [] ++

View File

@ -88,11 +88,6 @@ auto Workspaces::parseConfig(const Json::Value &config) -> void {
m_moveToMonitor = configMoveToMonitor.asBool(); m_moveToMonitor = configMoveToMonitor.asBool();
} }
auto configActivePerMonitor = config_["active-per-monitor"];
if (configActivePerMonitor.isBool()) {
m_activePerMonitor = configActivePerMonitor.asBool();
}
auto configSortBy = config_["sort-by"]; auto configSortBy = config_["sort-by"];
if (configSortBy.isString()) { if (configSortBy.isString()) {
auto sortByStr = configSortBy.asString(); auto sortByStr = configSortBy.asString();
@ -331,14 +326,7 @@ void Workspaces::onEvent(const std::string &ev) {
} }
void Workspaces::onWorkspaceActivated(std::string const &payload) { void Workspaces::onWorkspaceActivated(std::string const &payload) {
if (!m_activePerMonitor) { m_activeWorkspaceName = payload;
m_activeWorkspaceName = payload;
return;
}
auto activeWorkspace = gIPC->getSocket1JsonReply("activeworkspace");
if (m_bar.output->name == activeWorkspace["monitor"].asString()) {
m_activeWorkspaceName = payload;
}
} }
void Workspaces::onSpecialWorkspaceActivated(std::string const &payload) { void Workspaces::onSpecialWorkspaceActivated(std::string const &payload) {
@ -391,16 +379,6 @@ void Workspaces::onWorkspaceMoved(std::string const &payload) {
if (m_bar.output->name == monitorName) { if (m_bar.output->name == monitorName) {
Json::Value clientsData = gIPC->getSocket1JsonReply("clients"); Json::Value clientsData = gIPC->getSocket1JsonReply("clients");
onWorkspaceCreated(workspaceName, clientsData); onWorkspaceCreated(workspaceName, clientsData);
if (m_activePerMonitor) {
for (Json::Value &monitor : gIPC->getSocket1JsonReply("monitors")) {
if (m_bar.output->name == monitor["name"].asString()) {
auto ws = monitor["activeWorkspace"];
if (ws.isObject() && (ws["name"].isString())) {
m_activeWorkspaceName = ws["name"].asString();
}
}
}
}
} else { } else {
spdlog::debug("Removing workspace because it was moved to another monitor: {}"); spdlog::debug("Removing workspace because it was moved to another monitor: {}");
onWorkspaceDestroyed(workspaceName); onWorkspaceDestroyed(workspaceName);
@ -426,13 +404,10 @@ void Workspaces::onWorkspaceRenamed(std::string const &payload) {
void Workspaces::onMonitorFocused(std::string const &payload) { void Workspaces::onMonitorFocused(std::string const &payload) {
spdlog::trace("Monitor focused: {}", payload); spdlog::trace("Monitor focused: {}", payload);
auto monitorName = payload.substr(0, payload.find(',')); m_activeWorkspaceName = payload.substr(payload.find(',') + 1);
if (!m_activePerMonitor || m_bar.output->name == monitorName) {
m_activeWorkspaceName = payload.substr(payload.find(',') + 1);
}
for (Json::Value &monitor : gIPC->getSocket1JsonReply("monitors")) { for (Json::Value &monitor : gIPC->getSocket1JsonReply("monitors")) {
if (monitor["name"].asString() == monitorName) { if (monitor["name"].asString() == payload.substr(0, payload.find(','))) {
auto name = monitor["specialWorkspace"]["name"].asString(); auto name = monitor["specialWorkspace"]["name"].asString();
m_activeSpecialWorkspaceName = !name.starts_with("special:") ? name : name.substr(8); m_activeSpecialWorkspaceName = !name.starts_with("special:") ? name : name.substr(8);
} }
@ -834,18 +809,7 @@ void Workspaces::extendOrphans(int workspaceId, Json::Value const &clientsJson)
} }
void Workspaces::init() { void Workspaces::init() {
if (!m_activePerMonitor) { m_activeWorkspaceName = (gIPC->getSocket1JsonReply("activeworkspace"))["name"].asString();
m_activeWorkspaceName = (gIPC->getSocket1JsonReply("activeworkspace"))["name"].asString();
} else {
for (Json::Value &monitor : gIPC->getSocket1JsonReply("monitors")) {
if (m_bar.output->name == monitor["name"].asString()) {
auto ws = monitor["activeWorkspace"];
if (ws.isObject() && (ws["name"].isString())) {
m_activeWorkspaceName = ws["name"].asString();
}
}
}
}
initializeWorkspaces(); initializeWorkspaces();
updateWindowCount(); updateWindowCount();