#pragma once #include #include #include #include class HyprlandService { typedef struct WorkspaceState { int id; bool active; bool focused; bool urgent; } WorkspaceState; typedef struct Monitor { std::map workspaceStates; std::string name; int x; int y; int id; int focusedWorkspaceId; } Monitor; public: HyprlandService(); ~HyprlandService(); sigc::signal on_event; void start(); void on_hyprland_event(std::string event, std::string data); private: int m_fd = -1; std::string m_buffer; std::map monitors; bool on_socket_read(Glib::IOCondition condition); void parse_message(const std::string &line); std::string get_socket_path(); };