dein bruder
This commit is contained in:
@@ -24,7 +24,6 @@ HyprlandService::~HyprlandService()
|
||||
|
||||
void HyprlandService::on_hyprland_event(std::string event, std::string data)
|
||||
{
|
||||
|
||||
if (event == "workspacev2")
|
||||
{
|
||||
std::cout << event << " " << data << std::endl;
|
||||
@@ -75,15 +74,15 @@ void HyprlandService::start()
|
||||
{
|
||||
for (auto &monitorJson : monitorsJson)
|
||||
{
|
||||
Monitor monitor;
|
||||
Monitor* monitor = new Monitor();
|
||||
|
||||
monitor.id = monitorJson["id"];
|
||||
monitor.name = monitorJson["name"];
|
||||
monitor.x = monitorJson["x"];
|
||||
monitor.y = monitorJson["y"];
|
||||
monitor.focusedWorkspaceId = monitorJson["activeWorkspace"]["id"];
|
||||
monitor->id = monitorJson["id"];
|
||||
monitor->name = monitorJson["name"];
|
||||
monitor->x = monitorJson["x"];
|
||||
monitor->y = monitorJson["y"];
|
||||
monitor->focusedWorkspaceId = monitorJson["activeWorkspace"]["id"];
|
||||
|
||||
this->monitors.insert({monitor.id, monitor});
|
||||
this->monitors.insert({monitor->id, monitor});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +98,7 @@ void HyprlandService::start()
|
||||
tempState.urgent = false;
|
||||
tempState.id = i;
|
||||
|
||||
this->monitors[i / numWorkspaces].workspaceStates.insert({i % numWorkspaces, tempState});
|
||||
this->monitors[i / numWorkspaces]->workspaceStates.insert({i % numWorkspaces, tempState});
|
||||
}
|
||||
|
||||
std::string hyprctlWorkspacesOutput = SystemHelper::get_command_output("hyprctl workspaces -j");
|
||||
@@ -111,9 +110,10 @@ void HyprlandService::start()
|
||||
{
|
||||
int currentId = workspaceJson["id"];
|
||||
int monitorId = workspaceJson["monitorID"];
|
||||
WorkspaceState &workspaceState = this->monitors[monitorId].workspaceStates.at((currentId - 1) % numWorkspaces);
|
||||
Monitor* monitor = this->monitors[monitorId];
|
||||
WorkspaceState &workspaceState = monitor->workspaceStates.at((currentId - 1) % numWorkspaces);
|
||||
|
||||
int focusedWorkspaceId = this->monitors[monitorId].focusedWorkspaceId;
|
||||
int focusedWorkspaceId = monitor[monitorId].focusedWorkspaceId;
|
||||
workspaceState.focused = currentId == focusedWorkspaceId;
|
||||
workspaceState.active = true;
|
||||
}
|
||||
@@ -178,3 +178,16 @@ std::string HyprlandService::get_socket_path()
|
||||
|
||||
return std::string(runtime) + "/hypr/" + sig + "/.socket2.sock";
|
||||
}
|
||||
|
||||
|
||||
HyprlandService::Monitor* HyprlandService::getMonitorById(const int &id)
|
||||
{
|
||||
if (this->monitors.find(id) != this->monitors.end())
|
||||
{
|
||||
return this->monitors.at(id);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("Monitor with ID " + std::to_string(id) + " not found.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user