forked from quickshell/quickshell
hyprland/ipc: expose Hyprland toplevels
This commit is contained in:
parent
c115df8d34
commit
362c8e1b69
11 changed files with 685 additions and 43 deletions
|
|
@ -24,6 +24,8 @@ class HyprlandIpcQml: public QObject {
|
|||
Q_PROPERTY(qs::hyprland::ipc::HyprlandMonitor* focusedMonitor READ default NOTIFY focusedMonitorChanged BINDABLE bindableFocusedMonitor);
|
||||
/// The currently focused hyprland workspace. May be null.
|
||||
Q_PROPERTY(qs::hyprland::ipc::HyprlandWorkspace* focusedWorkspace READ default NOTIFY focusedWorkspaceChanged BINDABLE bindableFocusedWorkspace);
|
||||
/// Currently active toplevel (might be null)
|
||||
Q_PROPERTY(qs::hyprland::ipc::HyprlandToplevel* activeToplevel READ default NOTIFY activeToplevelChanged BINDABLE bindableActiveToplevel);
|
||||
/// All hyprland monitors.
|
||||
QSDOC_TYPE_OVERRIDE(ObjectModel<qs::hyprland::ipc::HyprlandMonitor>*);
|
||||
Q_PROPERTY(UntypedObjectModel* monitors READ monitors CONSTANT);
|
||||
|
|
@ -32,6 +34,9 @@ class HyprlandIpcQml: public QObject {
|
|||
/// > [!NOTE] Named workspaces have a negative id, and will appear before unnamed workspaces.
|
||||
QSDOC_TYPE_OVERRIDE(ObjectModel<qs::hyprland::ipc::HyprlandWorkspace>*);
|
||||
Q_PROPERTY(UntypedObjectModel* workspaces READ workspaces CONSTANT);
|
||||
/// All hyprland toplevels
|
||||
QSDOC_TYPE_OVERRIDE(ObjectModel<qs::hyprland::ipc::HyprlandToplevel>*);
|
||||
Q_PROPERTY(UntypedObjectModel* toplevels READ toplevels CONSTANT);
|
||||
// clang-format on
|
||||
QML_NAMED_ELEMENT(Hyprland);
|
||||
QML_SINGLETON;
|
||||
|
|
@ -61,8 +66,10 @@ public:
|
|||
[[nodiscard]] static QString eventSocketPath();
|
||||
[[nodiscard]] static QBindable<HyprlandMonitor*> bindableFocusedMonitor();
|
||||
[[nodiscard]] static QBindable<HyprlandWorkspace*> bindableFocusedWorkspace();
|
||||
[[nodiscard]] static QBindable<HyprlandToplevel*> bindableActiveToplevel();
|
||||
[[nodiscard]] static ObjectModel<HyprlandMonitor>* monitors();
|
||||
[[nodiscard]] static ObjectModel<HyprlandWorkspace>* workspaces();
|
||||
[[nodiscard]] static ObjectModel<HyprlandToplevel>* toplevels();
|
||||
|
||||
signals:
|
||||
/// Emitted for every event that comes in through the hyprland event socket (socket2).
|
||||
|
|
@ -72,6 +79,7 @@ signals:
|
|||
|
||||
void focusedMonitorChanged();
|
||||
void focusedWorkspaceChanged();
|
||||
void activeToplevelChanged();
|
||||
};
|
||||
|
||||
} // namespace qs::hyprland::ipc
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue