2025-06-10 14:09:56 +02:00
|
|
|
#ifndef HYPRLAND_SERVICE_H
|
|
|
|
|
#define HYPRLAND_SERVICE_H
|
|
|
|
|
|
|
|
|
|
#include <list>
|
2026-01-14 10:29:11 +01:00
|
|
|
#include "Workspace.hpp"
|
|
|
|
|
#include "Client.hpp"
|
|
|
|
|
#include "WindowRule.hpp"
|
2025-06-10 14:09:56 +02:00
|
|
|
|
|
|
|
|
class HyprlandService {
|
2025-06-11 12:15:47 +02:00
|
|
|
private:
|
|
|
|
|
static std::string configFilePath;
|
|
|
|
|
static std::string getConfigFilePath();
|
2026-01-09 00:02:54 +01:00
|
|
|
|
|
|
|
|
static std::list<Workspace> getWorkspaces();
|
|
|
|
|
static std::optional<Workspace> getWorkspace(int);
|
2025-06-11 12:15:47 +02:00
|
|
|
static Workspace getCurrentWorkspace();
|
2026-01-09 00:02:54 +01:00
|
|
|
|
2025-06-11 12:15:47 +02:00
|
|
|
static std::list<Client> getClients();
|
|
|
|
|
static std::list<Client> getClientsOnActiveWorkspace();
|
2026-01-09 00:02:54 +01:00
|
|
|
static Client getActiveClient();
|
|
|
|
|
|
|
|
|
|
static bool isFloatingRulePresent(int);
|
|
|
|
|
static bool isFloatingRulePresent(Workspace);
|
2025-06-11 12:15:47 +02:00
|
|
|
static std::list<WindowRule> getWindowRules();
|
|
|
|
|
static std::optional<WindowRule> findConflictingRule(WindowRule);
|
|
|
|
|
static void setFloatingRule(bool);
|
|
|
|
|
static void removeRule(WindowRule);
|
2026-01-09 00:02:54 +01:00
|
|
|
|
|
|
|
|
static void setClientFloating(Client);
|
|
|
|
|
static void setClientTiled(Client);
|
|
|
|
|
public:
|
|
|
|
|
static void toggleFloating();
|
|
|
|
|
static void moveToWorkspace(int);
|
|
|
|
|
static void setConfigFilePath(std::string);
|
2026-01-06 16:16:14 +01:00
|
|
|
static WindowRule getActiveWorkspaceRule();
|
2025-06-10 14:09:56 +02:00
|
|
|
};
|
|
|
|
|
#endif
|