astal_niri_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from ../../../girs
3// from ../../../gtk-girs
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use gio_sys as gio;
16use glib_sys as glib;
17use gobject_sys as gobject;
18use json_glib_sys as json;
19
20#[cfg(unix)]
21#[allow(unused_imports)]
22use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
23#[allow(unused_imports)]
24use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
25#[allow(unused_imports)]
26use std::ffi::{
27    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
28};
29
30#[allow(unused_imports)]
31use glib::{gboolean, gconstpointer, gpointer, GType};
32
33// Enums
34pub type AstalNiriColumnDisplayTag = c_int;
35pub const ASTAL_NIRI_COLUMN_DISPLAY_TAG_Normal: AstalNiriColumnDisplayTag = 0;
36pub const ASTAL_NIRI_COLUMN_DISPLAY_TAG_Tabbed: AstalNiriColumnDisplayTag = 1;
37
38pub type AstalNiriLayoutSwitchTargetTag = c_int;
39pub const ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Next: AstalNiriLayoutSwitchTargetTag = 0;
40pub const ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Prev: AstalNiriLayoutSwitchTargetTag = 1;
41pub const ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Index: AstalNiriLayoutSwitchTargetTag = 2;
42
43pub type AstalNiriSizeChangeTag = c_int;
44pub const ASTAL_NIRI_SIZE_CHANGE_TAG_SetFixed: AstalNiriSizeChangeTag = 0;
45pub const ASTAL_NIRI_SIZE_CHANGE_TAG_SetProportion: AstalNiriSizeChangeTag = 1;
46pub const ASTAL_NIRI_SIZE_CHANGE_TAG_AdjustFixed: AstalNiriSizeChangeTag = 2;
47pub const ASTAL_NIRI_SIZE_CHANGE_TAG_AdjustProportion: AstalNiriSizeChangeTag = 3;
48
49pub type AstalNiriWorkspaceReferenceArgTag = c_int;
50pub const ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Id: AstalNiriWorkspaceReferenceArgTag = 0;
51pub const ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Index: AstalNiriWorkspaceReferenceArgTag = 1;
52pub const ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Name: AstalNiriWorkspaceReferenceArgTag = 2;
53
54// Constants
55pub const ASTAL_NIRI_MAJOR_VERSION: c_int = 0;
56pub const ASTAL_NIRI_MINOR_VERSION: c_int = 1;
57pub const ASTAL_NIRI_MICRO_VERSION: c_int = 0;
58pub const ASTAL_NIRI_VERSION: &[u8] = b"0.1.0\0";
59
60// Records
61#[derive(Copy, Clone)]
62#[repr(C)]
63pub struct AstalNiriLogicalOutput {
64    pub _x: i32,
65    pub _y: i32,
66    pub _width: u32,
67    pub _height: u32,
68    pub _scale: c_float,
69    pub _transform: *mut c_char,
70}
71
72impl ::std::fmt::Debug for AstalNiriLogicalOutput {
73    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
74        f.debug_struct(&format!("AstalNiriLogicalOutput @ {self:p}"))
75            .field("_x", &self._x)
76            .field("_y", &self._y)
77            .field("_width", &self._width)
78            .field("_height", &self._height)
79            .field("_scale", &self._scale)
80            .field("_transform", &self._transform)
81            .finish()
82    }
83}
84
85#[derive(Copy, Clone)]
86#[repr(C)]
87pub struct AstalNiriMode {
88    pub _width: i64,
89    pub _height: i64,
90    pub _refresh_rate: i64,
91    pub _is_preferred: gboolean,
92}
93
94impl ::std::fmt::Debug for AstalNiriMode {
95    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
96        f.debug_struct(&format!("AstalNiriMode @ {self:p}"))
97            .field("_width", &self._width)
98            .field("_height", &self._height)
99            .field("_refresh_rate", &self._refresh_rate)
100            .field("_is_preferred", &self._is_preferred)
101            .finish()
102    }
103}
104
105#[derive(Copy, Clone)]
106#[repr(C)]
107pub struct AstalNiriNiriClass {
108    pub parent_class: gobject::GObjectClass,
109    pub window_changed: Option<unsafe extern "C" fn(*mut AstalNiriNiri, *mut AstalNiriWindow)>,
110}
111
112impl ::std::fmt::Debug for AstalNiriNiriClass {
113    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
114        f.debug_struct(&format!("AstalNiriNiriClass @ {self:p}"))
115            .field("window_changed", &self.window_changed)
116            .finish()
117    }
118}
119
120#[repr(C)]
121#[allow(dead_code)]
122pub struct _AstalNiriNiriPrivate {
123    _data: [u8; 0],
124    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
125}
126
127pub type AstalNiriNiriPrivate = _AstalNiriNiriPrivate;
128
129#[derive(Copy, Clone)]
130#[repr(C)]
131pub struct AstalNiriOutputClass {
132    pub parent_class: gobject::GObjectClass,
133}
134
135impl ::std::fmt::Debug for AstalNiriOutputClass {
136    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
137        f.debug_struct(&format!("AstalNiriOutputClass @ {self:p}"))
138            .finish()
139    }
140}
141
142#[repr(C)]
143#[allow(dead_code)]
144pub struct _AstalNiriOutputPrivate {
145    _data: [u8; 0],
146    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
147}
148
149pub type AstalNiriOutputPrivate = _AstalNiriOutputPrivate;
150
151#[derive(Copy, Clone)]
152#[repr(C)]
153pub struct AstalNiriOverviewClass {
154    pub parent_class: gobject::GObjectClass,
155}
156
157impl ::std::fmt::Debug for AstalNiriOverviewClass {
158    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
159        f.debug_struct(&format!("AstalNiriOverviewClass @ {self:p}"))
160            .finish()
161    }
162}
163
164#[repr(C)]
165#[allow(dead_code)]
166pub struct _AstalNiriOverviewPrivate {
167    _data: [u8; 0],
168    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
169}
170
171pub type AstalNiriOverviewPrivate = _AstalNiriOverviewPrivate;
172
173#[derive(Copy, Clone)]
174#[repr(C)]
175pub struct AstalNiriPhysicalSize {
176    pub x: u32,
177    pub y: u32,
178}
179
180impl ::std::fmt::Debug for AstalNiriPhysicalSize {
181    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
182        f.debug_struct(&format!("AstalNiriPhysicalSize @ {self:p}"))
183            .field("x", &self.x)
184            .field("y", &self.y)
185            .finish()
186    }
187}
188
189#[derive(Copy, Clone)]
190#[repr(C)]
191pub struct AstalNiriWindowClass {
192    pub parent_class: gobject::GObjectClass,
193}
194
195impl ::std::fmt::Debug for AstalNiriWindowClass {
196    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
197        f.debug_struct(&format!("AstalNiriWindowClass @ {self:p}"))
198            .finish()
199    }
200}
201
202#[derive(Copy, Clone)]
203#[repr(C)]
204pub struct AstalNiriWindowLayout {
205    pub pos_in_scrolling_layout: *mut [c_uint; 2],
206    pub tile_size: *mut [c_double; 2],
207    pub window_size: *mut [i32; 2],
208    pub tile_pos_in_workspace_view: *mut [c_double; 2],
209    pub window_offset_in_tile: *mut [c_double; 2],
210}
211
212impl ::std::fmt::Debug for AstalNiriWindowLayout {
213    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
214        f.debug_struct(&format!("AstalNiriWindowLayout @ {self:p}"))
215            .field("pos_in_scrolling_layout", &self.pos_in_scrolling_layout)
216            .field("tile_size", &self.tile_size)
217            .field("window_size", &self.window_size)
218            .field(
219                "tile_pos_in_workspace_view",
220                &self.tile_pos_in_workspace_view,
221            )
222            .field("window_offset_in_tile", &self.window_offset_in_tile)
223            .finish()
224    }
225}
226
227#[repr(C)]
228#[allow(dead_code)]
229pub struct _AstalNiriWindowPrivate {
230    _data: [u8; 0],
231    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
232}
233
234pub type AstalNiriWindowPrivate = _AstalNiriWindowPrivate;
235
236#[derive(Copy, Clone)]
237#[repr(C)]
238pub struct AstalNiriWorkspaceClass {
239    pub parent_class: gobject::GObjectClass,
240}
241
242impl ::std::fmt::Debug for AstalNiriWorkspaceClass {
243    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
244        f.debug_struct(&format!("AstalNiriWorkspaceClass @ {self:p}"))
245            .finish()
246    }
247}
248
249#[repr(C)]
250#[allow(dead_code)]
251pub struct _AstalNiriWorkspacePrivate {
252    _data: [u8; 0],
253    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
254}
255
256pub type AstalNiriWorkspacePrivate = _AstalNiriWorkspacePrivate;
257
258#[derive(Copy, Clone)]
259#[repr(C)]
260pub struct AstalNirimsgClass {
261    pub parent_class: gobject::GObjectClass,
262}
263
264impl ::std::fmt::Debug for AstalNirimsgClass {
265    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
266        f.debug_struct(&format!("AstalNirimsgClass @ {self:p}"))
267            .finish()
268    }
269}
270
271#[repr(C)]
272#[allow(dead_code)]
273pub struct _AstalNirimsgPrivate {
274    _data: [u8; 0],
275    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
276}
277
278pub type AstalNirimsgPrivate = _AstalNirimsgPrivate;
279
280// Classes
281#[derive(Copy, Clone)]
282#[repr(C)]
283pub struct AstalNiriNiri {
284    pub parent_instance: gobject::GObject,
285    pub priv_: *mut AstalNiriNiriPrivate,
286    pub _workspaces: *mut glib::GHashTable,
287    pub _windows: *mut glib::GHashTable,
288    pub _outputs: *mut glib::GHashTable,
289}
290
291impl ::std::fmt::Debug for AstalNiriNiri {
292    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
293        f.debug_struct(&format!("AstalNiriNiri @ {self:p}"))
294            .field("_workspaces", &self._workspaces)
295            .field("_windows", &self._windows)
296            .field("_outputs", &self._outputs)
297            .finish()
298    }
299}
300
301#[derive(Copy, Clone)]
302#[repr(C)]
303pub struct AstalNiriOutput {
304    pub parent_instance: gobject::GObject,
305    pub priv_: *mut AstalNiriOutputPrivate,
306}
307
308impl ::std::fmt::Debug for AstalNiriOutput {
309    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
310        f.debug_struct(&format!("AstalNiriOutput @ {self:p}"))
311            .finish()
312    }
313}
314
315#[derive(Copy, Clone)]
316#[repr(C)]
317pub struct AstalNiriOverview {
318    pub parent_instance: gobject::GObject,
319    pub priv_: *mut AstalNiriOverviewPrivate,
320}
321
322impl ::std::fmt::Debug for AstalNiriOverview {
323    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
324        f.debug_struct(&format!("AstalNiriOverview @ {self:p}"))
325            .finish()
326    }
327}
328
329#[derive(Copy, Clone)]
330#[repr(C)]
331pub struct AstalNiriWindow {
332    pub parent_instance: gobject::GObject,
333    pub priv_: *mut AstalNiriWindowPrivate,
334}
335
336impl ::std::fmt::Debug for AstalNiriWindow {
337    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
338        f.debug_struct(&format!("AstalNiriWindow @ {self:p}"))
339            .finish()
340    }
341}
342
343#[derive(Copy, Clone)]
344#[repr(C)]
345pub struct AstalNiriWorkspace {
346    pub parent_instance: gobject::GObject,
347    pub priv_: *mut AstalNiriWorkspacePrivate,
348}
349
350impl ::std::fmt::Debug for AstalNiriWorkspace {
351    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
352        f.debug_struct(&format!("AstalNiriWorkspace @ {self:p}"))
353            .finish()
354    }
355}
356
357#[derive(Copy, Clone)]
358#[repr(C)]
359pub struct AstalNirimsg {
360    pub parent_instance: gobject::GObject,
361    pub priv_: *mut AstalNirimsgPrivate,
362}
363
364impl ::std::fmt::Debug for AstalNirimsg {
365    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
366        f.debug_struct(&format!("AstalNirimsg @ {self:p}")).finish()
367    }
368}
369
370extern "C" {
371
372    //=========================================================================
373    // AstalNiriColumnDisplayTag
374    //=========================================================================
375    pub fn astal_niri_column_display_tag_get_type() -> GType;
376
377    //=========================================================================
378    // AstalNiriLayoutSwitchTargetTag
379    //=========================================================================
380    pub fn astal_niri_layout_switch_target_tag_get_type() -> GType;
381
382    //=========================================================================
383    // AstalNiriSizeChangeTag
384    //=========================================================================
385    pub fn astal_niri_size_change_tag_get_type() -> GType;
386
387    //=========================================================================
388    // AstalNiriWorkspaceReferenceArgTag
389    //=========================================================================
390    pub fn astal_niri_workspace_reference_arg_tag_get_type() -> GType;
391
392    //=========================================================================
393    // AstalNiriLogicalOutput
394    //=========================================================================
395    pub fn astal_niri_logical_output_get_type() -> GType;
396    pub fn astal_niri_logical_output_get_x(self_: *mut AstalNiriLogicalOutput) -> i32;
397    pub fn astal_niri_logical_output_get_y(self_: *mut AstalNiriLogicalOutput) -> i32;
398    pub fn astal_niri_logical_output_get_width(self_: *mut AstalNiriLogicalOutput) -> u32;
399    pub fn astal_niri_logical_output_get_height(self_: *mut AstalNiriLogicalOutput) -> u32;
400    pub fn astal_niri_logical_output_get_scale(self_: *mut AstalNiriLogicalOutput) -> c_float;
401    pub fn astal_niri_logical_output_get_transform(
402        self_: *mut AstalNiriLogicalOutput,
403    ) -> *const c_char;
404
405    //=========================================================================
406    // AstalNiriMode
407    //=========================================================================
408    pub fn astal_niri_mode_get_type() -> GType;
409    pub fn astal_niri_mode_get_width(self_: *mut AstalNiriMode) -> i64;
410    pub fn astal_niri_mode_get_height(self_: *mut AstalNiriMode) -> i64;
411    pub fn astal_niri_mode_get_refresh_rate(self_: *mut AstalNiriMode) -> i64;
412    pub fn astal_niri_mode_get_is_preferred(self_: *mut AstalNiriMode) -> gboolean;
413
414    //=========================================================================
415    // AstalNiriPhysicalSize
416    //=========================================================================
417    pub fn astal_niri_physical_size_get_type() -> GType;
418    pub fn astal_niri_physical_size_init_from_json(
419        self_: *mut AstalNiriPhysicalSize,
420        size: *mut json::JsonArray,
421    );
422
423    //=========================================================================
424    // AstalNiriWindowLayout
425    //=========================================================================
426    pub fn astal_niri_window_layout_get_type() -> GType;
427
428    //=========================================================================
429    // AstalNiriNiri
430    //=========================================================================
431    pub fn astal_niri_niri_get_type() -> GType;
432    pub fn astal_niri_niri_get_default() -> *mut AstalNiriNiri;
433    pub fn astal_niri_niri_get_window(self_: *mut AstalNiriNiri, id: u64) -> *mut AstalNiriWindow;
434    pub fn astal_niri_niri_get_workspace(
435        self_: *mut AstalNiriNiri,
436        id: u64,
437    ) -> *mut AstalNiriWorkspace;
438    pub fn astal_niri_niri_new() -> *mut AstalNiriNiri;
439    pub fn astal_niri_niri_get_keyboard_layout_idx(self_: *mut AstalNiriNiri) -> u8;
440    pub fn astal_niri_niri_get_config_load_failed(self_: *mut AstalNiriNiri) -> gboolean;
441    pub fn astal_niri_niri_get_overview(self_: *mut AstalNiriNiri) -> *mut AstalNiriOverview;
442    pub fn astal_niri_niri_get_focused_workspace(
443        self_: *mut AstalNiriNiri,
444    ) -> *mut AstalNiriWorkspace;
445    pub fn astal_niri_niri_get_focused_window(self_: *mut AstalNiriNiri) -> *mut AstalNiriWindow;
446    pub fn astal_niri_niri_get_focused_output(self_: *mut AstalNiriNiri) -> *mut AstalNiriOutput;
447    pub fn astal_niri_niri_get_windows(self_: *mut AstalNiriNiri) -> *mut glib::GList;
448    pub fn astal_niri_niri_get_outputs(self_: *mut AstalNiriNiri) -> *mut glib::GList;
449    pub fn astal_niri_niri_get_workspaces(self_: *mut AstalNiriNiri) -> *mut glib::GList;
450
451    //=========================================================================
452    // AstalNiriOutput
453    //=========================================================================
454    pub fn astal_niri_output_get_type() -> GType;
455    pub fn astal_niri_output_focus(self_: *mut AstalNiriOutput) -> gboolean;
456    pub fn astal_niri_output_new() -> *mut AstalNiriOutput;
457    pub fn astal_niri_output_get_name(self_: *mut AstalNiriOutput) -> *const c_char;
458    pub fn astal_niri_output_get_make(self_: *mut AstalNiriOutput) -> *const c_char;
459    pub fn astal_niri_output_get_model(self_: *mut AstalNiriOutput) -> *const c_char;
460    pub fn astal_niri_output_get_serial(self_: *mut AstalNiriOutput) -> *const c_char;
461    pub fn astal_niri_output_get_physical_size(
462        self_: *mut AstalNiriOutput,
463    ) -> *mut AstalNiriPhysicalSize;
464    pub fn astal_niri_output_get_modes(self_: *mut AstalNiriOutput) -> *mut glib::GArray;
465    pub fn astal_niri_output_get_current_mode(self_: *mut AstalNiriOutput) -> i64;
466    pub fn astal_niri_output_get_vrr_supported(self_: *mut AstalNiriOutput) -> gboolean;
467    pub fn astal_niri_output_get_vrr_enabled(self_: *mut AstalNiriOutput) -> gboolean;
468    pub fn astal_niri_output_get_logical(
469        self_: *mut AstalNiriOutput,
470    ) -> *mut AstalNiriLogicalOutput;
471    pub fn astal_niri_output_get_workspaces(self_: *mut AstalNiriOutput) -> *mut glib::GList;
472
473    //=========================================================================
474    // AstalNiriOverview
475    //=========================================================================
476    pub fn astal_niri_overview_get_type() -> GType;
477    pub fn astal_niri_overview_toggle(
478        self_: *mut AstalNiriOverview,
479        _callback_: gio::GAsyncReadyCallback,
480        _callback__target: *mut c_void,
481    );
482    pub fn astal_niri_overview_toggle_finish(
483        self_: *mut AstalNiriOverview,
484        _res_: *mut gio::GAsyncResult,
485    ) -> gboolean;
486    pub fn astal_niri_overview_new() -> *mut AstalNiriOverview;
487    pub fn astal_niri_overview_get_is_open(self_: *mut AstalNiriOverview) -> gboolean;
488
489    //=========================================================================
490    // AstalNiriWindow
491    //=========================================================================
492    pub fn astal_niri_window_get_type() -> GType;
493    pub fn astal_niri_window_focus(self_: *mut AstalNiriWindow, id: c_int) -> gboolean;
494    pub fn astal_niri_window_set_urgency(
495        self_: *mut AstalNiriWindow,
496        new_urgency: gboolean,
497    ) -> gboolean;
498    pub fn astal_niri_window_move_to_workspace(
499        self_: *mut AstalNiriWindow,
500        workspace_id: c_int,
501        focus: *mut gboolean,
502    ) -> gboolean;
503    pub fn astal_niri_window_move_to_monitor(
504        self_: *mut AstalNiriWindow,
505        output: *const c_char,
506    ) -> gboolean;
507    pub fn astal_niri_window_new() -> *mut AstalNiriWindow;
508    pub fn astal_niri_window_get_id(self_: *mut AstalNiriWindow) -> u64;
509    pub fn astal_niri_window_get_title(self_: *mut AstalNiriWindow) -> *const c_char;
510    pub fn astal_niri_window_get_app_id(self_: *mut AstalNiriWindow) -> *const c_char;
511    pub fn astal_niri_window_get_workspace_id(self_: *mut AstalNiriWindow) -> u64;
512    pub fn astal_niri_window_get_is_urgent(self_: *mut AstalNiriWindow) -> gboolean;
513    pub fn astal_niri_window_get_is_focused(self_: *mut AstalNiriWindow) -> gboolean;
514    pub fn astal_niri_window_get_is_floating(self_: *mut AstalNiriWindow) -> gboolean;
515    pub fn astal_niri_window_get_layout(
516        self_: *mut AstalNiriWindow,
517        result: *mut AstalNiriWindowLayout,
518    );
519    pub fn astal_niri_window_get_workspace(self_: *mut AstalNiriWindow) -> *mut AstalNiriWorkspace;
520
521    //=========================================================================
522    // AstalNiriWorkspace
523    //=========================================================================
524    pub fn astal_niri_workspace_get_type() -> GType;
525    pub fn astal_niri_workspace_focus(self_: *mut AstalNiriWorkspace) -> gboolean;
526    pub fn astal_niri_workspace_rename(
527        self_: *mut AstalNiriWorkspace,
528        name: *const c_char,
529    ) -> gboolean;
530    pub fn astal_niri_workspace_move_to_monitor(
531        self_: *mut AstalNiriWorkspace,
532        output: *const c_char,
533    ) -> gboolean;
534    pub fn astal_niri_workspace_new() -> *mut AstalNiriWorkspace;
535    pub fn astal_niri_workspace_get_id(self_: *mut AstalNiriWorkspace) -> u64;
536    pub fn astal_niri_workspace_get_idx(self_: *mut AstalNiriWorkspace) -> u8;
537    pub fn astal_niri_workspace_get_name(self_: *mut AstalNiriWorkspace) -> *const c_char;
538    pub fn astal_niri_workspace_get_output(self_: *mut AstalNiriWorkspace) -> *const c_char;
539    pub fn astal_niri_workspace_get_is_urgent(self_: *mut AstalNiriWorkspace) -> gboolean;
540    pub fn astal_niri_workspace_get_is_active(self_: *mut AstalNiriWorkspace) -> gboolean;
541    pub fn astal_niri_workspace_get_is_focused(self_: *mut AstalNiriWorkspace) -> gboolean;
542    pub fn astal_niri_workspace_get_active_window_id(self_: *mut AstalNiriWorkspace) -> u64;
543    pub fn astal_niri_workspace_get_active_window(
544        self_: *mut AstalNiriWorkspace,
545    ) -> *mut AstalNiriWindow;
546    pub fn astal_niri_workspace_get_windows(self_: *mut AstalNiriWorkspace) -> *mut glib::GList;
547
548    //=========================================================================
549    // AstalNirimsg
550    //=========================================================================
551    pub fn astal_niri_msg_get_type() -> GType;
552    pub fn astal_niri_msg_send(message: *const c_char) -> *mut c_char;
553    pub fn astal_niri_msg_send_async(
554        message: *const c_char,
555        _callback_: gio::GAsyncReadyCallback,
556        _callback__target: *mut c_void,
557    );
558    pub fn astal_niri_msg_send_finish(_res_: *mut gio::GAsyncResult) -> *mut c_char;
559    pub fn astal_niri_msg_center_column() -> gboolean;
560    pub fn astal_niri_msg_center_visible_columns() -> gboolean;
561    pub fn astal_niri_msg_center_window(id: *mut c_int) -> gboolean;
562    pub fn astal_niri_msg_clear_dynamic_cast_target() -> gboolean;
563    pub fn astal_niri_msg_close_overview() -> gboolean;
564    pub fn astal_niri_msg_close_window(id: *mut c_int) -> gboolean;
565    pub fn astal_niri_msg_consume_or_expel_window_left(id: *mut c_int) -> gboolean;
566    pub fn astal_niri_msg_consume_or_expel_window_right(id: *mut c_int) -> gboolean;
567    pub fn astal_niri_msg_consume_window_into_column() -> gboolean;
568    pub fn astal_niri_msg_debug_toggle_damage() -> gboolean;
569    pub fn astal_niri_msg_debug_toggle_opaque_regions() -> gboolean;
570    pub fn astal_niri_msg_do_screen_transition(delay_ms: *mut c_int) -> gboolean;
571    pub fn astal_niri_msg_expand_column_to_available_width() -> gboolean;
572    pub fn astal_niri_msg_expel_window_from_column() -> gboolean;
573    pub fn astal_niri_msg_focus_column(index: c_int) -> gboolean;
574    pub fn astal_niri_msg_focus_column_first() -> gboolean;
575    pub fn astal_niri_msg_focus_column_last() -> gboolean;
576    pub fn astal_niri_msg_focus_column_left() -> gboolean;
577    pub fn astal_niri_msg_focus_column_left_or_last() -> gboolean;
578    pub fn astal_niri_msg_focus_column_or_monitor_left() -> gboolean;
579    pub fn astal_niri_msg_focus_column_or_monitor_right() -> gboolean;
580    pub fn astal_niri_msg_focus_column_right() -> gboolean;
581    pub fn astal_niri_msg_focus_column_right_or_first() -> gboolean;
582    pub fn astal_niri_msg_focus_floating() -> gboolean;
583    pub fn astal_niri_msg_focus_monitor(output: *const c_char) -> gboolean;
584    pub fn astal_niri_msg_focus_monitor_down() -> gboolean;
585    pub fn astal_niri_msg_focus_monitor_left() -> gboolean;
586    pub fn astal_niri_msg_focus_monitor_next() -> gboolean;
587    pub fn astal_niri_msg_focus_monitor_previous() -> gboolean;
588    pub fn astal_niri_msg_focus_monitor_right() -> gboolean;
589    pub fn astal_niri_msg_focus_monitor_up() -> gboolean;
590    pub fn astal_niri_msg_focus_tiling() -> gboolean;
591    pub fn astal_niri_msg_focus_window(id: c_int) -> gboolean;
592    pub fn astal_niri_msg_focus_window_bottom() -> gboolean;
593    pub fn astal_niri_msg_focus_window_down() -> gboolean;
594    pub fn astal_niri_msg_focus_window_down_or_column_left() -> gboolean;
595    pub fn astal_niri_msg_focus_window_down_or_column_right() -> gboolean;
596    pub fn astal_niri_msg_focus_window_down_or_top() -> gboolean;
597    pub fn astal_niri_msg_focus_window_or_workspace_down() -> gboolean;
598    pub fn astal_niri_msg_focus_window_or_workspace_up() -> gboolean;
599    pub fn astal_niri_msg_focus_window_in_column(index: c_int) -> gboolean;
600    pub fn astal_niri_msg_focus_window_or_monitor_down() -> gboolean;
601    pub fn astal_niri_msg_focus_window_or_monitor_up() -> gboolean;
602    pub fn astal_niri_msg_focus_window_previous() -> gboolean;
603    pub fn astal_niri_msg_focus_window_top() -> gboolean;
604    pub fn astal_niri_msg_focus_window_up() -> gboolean;
605    pub fn astal_niri_msg_focus_window_up_or_bottom() -> gboolean;
606    pub fn astal_niri_msg_focus_window_up_or_column_left() -> gboolean;
607    pub fn astal_niri_msg_focus_window_up_or_column_right() -> gboolean;
608    pub fn astal_niri_msg_focus_workspace_by_id(workspace_id: c_int) -> gboolean;
609    pub fn astal_niri_msg_focus_workspace_by_index(workspace_index: c_int) -> gboolean;
610    pub fn astal_niri_msg_focus_workspace_by_name(workspace_name: *const c_char) -> gboolean;
611    pub fn astal_niri_msg_focus_workspace_down() -> gboolean;
612    pub fn astal_niri_msg_focus_workspace_previous() -> gboolean;
613    pub fn astal_niri_msg_focus_workspace_next() -> gboolean;
614    pub fn astal_niri_msg_focus_workspace_up() -> gboolean;
615    pub fn astal_niri_msg_fullscreen_window(id: *mut c_int) -> gboolean;
616    pub fn astal_niri_msg_layers(self_: *mut AstalNirimsg) -> *mut c_char;
617    pub fn astal_niri_msg_maximize_column() -> gboolean;
618    pub fn astal_niri_msg_move_column_left() -> gboolean;
619    pub fn astal_niri_msg_move_column_left_or_to_monitor_left() -> gboolean;
620    pub fn astal_niri_msg_move_column_right() -> gboolean;
621    pub fn astal_niri_msg_move_column_right_or_to_monitor_right() -> gboolean;
622    pub fn astal_niri_msg_move_column_to_first() -> gboolean;
623    pub fn astal_niri_msg_move_column_to_index(index: c_int) -> gboolean;
624    pub fn astal_niri_msg_move_column_to_last() -> gboolean;
625    pub fn astal_niri_msg_move_column_to_monitor(output: *const c_char) -> gboolean;
626    pub fn astal_niri_msg_move_column_to_monitor_down() -> gboolean;
627    pub fn astal_niri_msg_move_column_to_monitor_left() -> gboolean;
628    pub fn astal_niri_msg_move_column_to_monitor_next() -> gboolean;
629    pub fn astal_niri_msg_move_column_to_monitor_previous() -> gboolean;
630    pub fn astal_niri_msg_move_column_to_monitor_right() -> gboolean;
631    pub fn astal_niri_msg_move_column_to_monitor_up() -> gboolean;
632    pub fn astal_niri_msg_move_column_to_workspace_by_id(
633        workspace_id: c_int,
634        focus: gboolean,
635    ) -> gboolean;
636    pub fn astal_niri_msg_move_column_to_workspace_by_index(
637        workspace_index: c_int,
638        focus: gboolean,
639    ) -> gboolean;
640    pub fn astal_niri_msg_move_column_to_workspace_by_name(
641        workspace_name: *const c_char,
642        focus: gboolean,
643    ) -> gboolean;
644    pub fn astal_niri_msg_move_column_to_workspace_down(focus: gboolean) -> gboolean;
645    pub fn astal_niri_msg_move_column_to_workspace_up(focus: gboolean) -> gboolean;
646    pub fn astal_niri_msg_move_floating_window_adjust_x_adjust_y(
647        id: *mut c_int,
648        adjust_x: c_double,
649        adjust_y: c_double,
650    ) -> gboolean;
651    pub fn astal_niri_msg_move_floating_window_adjust_x_set_y(
652        id: *mut c_int,
653        adjust_x: c_double,
654        set_y: c_double,
655    ) -> gboolean;
656    pub fn astal_niri_msg_move_floating_window_set_x_adjust_y(
657        id: *mut c_int,
658        set_x: c_double,
659        adjust_y: c_double,
660    ) -> gboolean;
661    pub fn astal_niri_msg_move_floating_window_set_x_set_y(
662        id: *mut c_int,
663        set_x: c_double,
664        set_y: c_double,
665    ) -> gboolean;
666    pub fn astal_niri_msg_move_window_down() -> gboolean;
667    pub fn astal_niri_msg_move_window_down_or_to_workspace_down() -> gboolean;
668    pub fn astal_niri_msg_move_window_to_floating(id: *mut c_int) -> gboolean;
669    pub fn astal_niri_msg_move_window_to_monitor(id: *mut c_int, output: *const c_char)
670        -> gboolean;
671    pub fn astal_niri_msg_move_window_to_monitor_down() -> gboolean;
672    pub fn astal_niri_msg_move_window_to_monitor_left() -> gboolean;
673    pub fn astal_niri_msg_move_window_to_monitor_right() -> gboolean;
674    pub fn astal_niri_msg_move_window_to_monitor_up() -> gboolean;
675    pub fn astal_niri_msg_move_window_to_monitor_previous() -> gboolean;
676    pub fn astal_niri_msg_move_window_to_monitor_next() -> gboolean;
677    pub fn astal_niri_msg_move_window_to_tiling(id: *mut c_int) -> gboolean;
678    pub fn astal_niri_msg_move_window_to_workspace_by_id(
679        window_id: *mut c_int,
680        workspace_id: c_int,
681        focus: gboolean,
682    ) -> gboolean;
683    pub fn astal_niri_msg_move_window_to_workspace_by_index(
684        window_id: *mut c_int,
685        workspace_index: c_int,
686        focus: gboolean,
687    ) -> gboolean;
688    pub fn astal_niri_msg_move_window_to_workspace_by_name(
689        window_id: *mut c_int,
690        workspace_name: *const c_char,
691        focus: gboolean,
692    ) -> gboolean;
693    pub fn astal_niri_msg_move_window_to_workspace_down() -> gboolean;
694    pub fn astal_niri_msg_move_window_to_workspace_up() -> gboolean;
695    pub fn astal_niri_msg_move_window_up() -> gboolean;
696    pub fn astal_niri_msg_move_window_up_or_to_workspace_up() -> gboolean;
697    pub fn astal_niri_msg_move_workspace_down() -> gboolean;
698    pub fn astal_niri_msg_move_workspace_to_index_by_id(
699        workspace_id: c_int,
700        index: c_int,
701    ) -> gboolean;
702    pub fn astal_niri_msg_move_workspace_to_index_by_index(
703        workspace_index: c_int,
704        index: c_int,
705    ) -> gboolean;
706    pub fn astal_niri_msg_move_workspace_to_index_by_name(
707        workspace_name: *const c_char,
708        index: c_int,
709    ) -> gboolean;
710    pub fn astal_niri_msg_move_workspace_to_monitor_by_id(
711        output: *const c_char,
712        workspace_id: c_int,
713    ) -> gboolean;
714    pub fn astal_niri_msg_move_workspace_to_monitor_by_index(
715        output: *const c_char,
716        workspace_index: c_int,
717    ) -> gboolean;
718    pub fn astal_niri_msg_move_workspace_to_monitor_by_name(
719        output: *const c_char,
720        workspace_name: *const c_char,
721    ) -> gboolean;
722    pub fn astal_niri_msg_move_workspace_to_monitor_down() -> gboolean;
723    pub fn astal_niri_msg_move_workspace_to_monitor_left() -> gboolean;
724    pub fn astal_niri_msg_move_workspace_to_monitor_next() -> gboolean;
725    pub fn astal_niri_msg_move_workspace_to_monitor_previous() -> gboolean;
726    pub fn astal_niri_msg_move_workspace_to_monitor_right() -> gboolean;
727    pub fn astal_niri_msg_move_workspace_to_monitor_up() -> gboolean;
728    pub fn astal_niri_msg_move_workspace_up() -> gboolean;
729    pub fn astal_niri_msg_open_overview() -> gboolean;
730    pub fn astal_niri_msg_pick_color(
731        _callback_: gio::GAsyncReadyCallback,
732        _callback__target: *mut c_void,
733    );
734    pub fn astal_niri_msg_pick_color_finish(
735        _res_: *mut gio::GAsyncResult,
736        result_length1: *mut c_int,
737    ) -> *mut c_double;
738    pub fn astal_niri_msg_pick_window(
739        _callback_: gio::GAsyncReadyCallback,
740        _callback__target: *mut c_void,
741    );
742    pub fn astal_niri_msg_pick_window_finish(_res_: *mut gio::GAsyncResult)
743        -> *mut AstalNiriWindow;
744    pub fn astal_niri_msg_power_off_monitors() -> gboolean;
745    pub fn astal_niri_msg_power_on_monitors() -> gboolean;
746    pub fn astal_niri_msg_quit(skip_confirmation: gboolean) -> gboolean;
747    pub fn astal_niri_msg_reset_window_height(id: *mut c_int) -> gboolean;
748    pub fn astal_niri_msg_screenshot(show_pointer: gboolean) -> gboolean;
749    pub fn astal_niri_msg_screenshot_screen(
750        write_to_disk: gboolean,
751        show_pointer: gboolean,
752    ) -> gboolean;
753    pub fn astal_niri_msg_screenshot_window(id: *mut c_int, write_to_disk: gboolean) -> gboolean;
754    pub fn astal_niri_msg_set_column_display(display: AstalNiriColumnDisplayTag) -> gboolean;
755    pub fn astal_niri_msg_set_column_width_adjust_fixed(
756        id: *mut c_int,
757        fixed_value: c_int,
758    ) -> gboolean;
759    pub fn astal_niri_msg_set_column_width_adjust_proportion(
760        id: *mut c_int,
761        proportion: c_double,
762    ) -> gboolean;
763    pub fn astal_niri_msg_set_column_width_set_fixed(
764        id: *mut c_int,
765        fixed_value: c_int,
766    ) -> gboolean;
767    pub fn astal_niri_msg_set_column_width_set_proportion(
768        id: *mut c_int,
769        proportion: c_double,
770    ) -> gboolean;
771    pub fn astal_niri_msg_set_dynamic_cast_window(id: *mut c_int) -> gboolean;
772    pub fn astal_niri_msg_set_dynamic_cast_monitor(output: *const c_char) -> gboolean;
773    pub fn astal_niri_msg_set_window_height_adjust_fixed(
774        id: *mut c_int,
775        fixed_value: c_int,
776    ) -> gboolean;
777    pub fn astal_niri_msg_set_window_height_adjust_proportion(
778        id: *mut c_int,
779        proportion: c_double,
780    ) -> gboolean;
781    pub fn astal_niri_msg_set_window_height_set_fixed(
782        id: *mut c_int,
783        fixed_value: c_int,
784    ) -> gboolean;
785    pub fn astal_niri_msg_set_window_height_set_proportion(
786        id: *mut c_int,
787        proportion: c_double,
788    ) -> gboolean;
789    pub fn astal_niri_msg_set_window_urgent(id: c_int) -> gboolean;
790    pub fn astal_niri_msg_set_window_width_adjust_fixed(
791        id: *mut c_int,
792        fixed_value: c_int,
793    ) -> gboolean;
794    pub fn astal_niri_msg_set_window_width_adjust_proportion(
795        id: *mut c_int,
796        proportion: c_double,
797    ) -> gboolean;
798    pub fn astal_niri_msg_set_window_width_set_fixed(
799        id: *mut c_int,
800        fixed_value: c_int,
801    ) -> gboolean;
802    pub fn astal_niri_msg_set_window_width_set_proportion(
803        id: *mut c_int,
804        proportion: c_double,
805    ) -> gboolean;
806    pub fn astal_niri_msg_set_workspace_name_by_id(
807        workspace_id: c_int,
808        new_name: *const c_char,
809    ) -> gboolean;
810    pub fn astal_niri_msg_set_workspace_name_by_index(
811        workspace_index: c_int,
812        new_name: *const c_char,
813    ) -> gboolean;
814    pub fn astal_niri_msg_set_workspace_name_by_name(
815        workspace_name: *const c_char,
816        new_name: *const c_char,
817    ) -> gboolean;
818    pub fn astal_niri_msg_show_hotkey_overlay() -> gboolean;
819    pub fn astal_niri_msg_spawn(command: *mut *mut c_char, command_length1: c_int) -> gboolean;
820    pub fn astal_niri_msg_swap_window_left() -> gboolean;
821    pub fn astal_niri_msg_swap_window_right() -> gboolean;
822    pub fn astal_niri_msg_switch_focus_between_floating_and_tiling() -> gboolean;
823    pub fn astal_niri_msg_switch_layout_index(index: c_int) -> gboolean;
824    pub fn astal_niri_msg_switch_layout_next() -> gboolean;
825    pub fn astal_niri_msg_switch_layout_prev() -> gboolean;
826    pub fn astal_niri_msg_switch_preset_column_width() -> gboolean;
827    pub fn astal_niri_msg_switch_preset_window_height(id: *mut c_int) -> gboolean;
828    pub fn astal_niri_msg_switch_preset_window_width(id: *mut c_int) -> gboolean;
829    pub fn astal_niri_msg_toggle_column_tabbed_display() -> gboolean;
830    pub fn astal_niri_msg_toggle_debug_tint() -> gboolean;
831    pub fn astal_niri_msg_toggle_keyboard_shortcuts_inhibit() -> gboolean;
832    pub fn astal_niri_msg_toggle_overview() -> gboolean;
833    pub fn astal_niri_msg_toggle_window_floating(id: *mut c_int) -> gboolean;
834    pub fn astal_niri_msg_toggle_window_rule_opacity(id: *mut c_int) -> gboolean;
835    pub fn astal_niri_msg_toggle_window_urgent(id: c_int) -> gboolean;
836    pub fn astal_niri_msg_toggle_windowed_fullscreen(id: *mut c_int) -> gboolean;
837    pub fn astal_niri_msg_unset_window_urgent(id: c_int) -> gboolean;
838    pub fn astal_niri_msg_unset_workspace_name_by_id(workspace_id: c_int) -> gboolean;
839    pub fn astal_niri_msg_unset_workspace_name_by_index(workspace_index: c_int) -> gboolean;
840    pub fn astal_niri_msg_unset_workspace_name_by_name(workspace_name: *const c_char) -> gboolean;
841    pub fn astal_niri_msg_new() -> *mut AstalNirimsg;
842
843    //=========================================================================
844    // Other functions
845    //=========================================================================
846    pub fn astal_niri_get_default() -> *mut AstalNiriNiri;
847
848}