2021-11-13 21:56:53 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2023-05-13 16:10:33 +03:00
|
|
|
#ifndef LABWC_RCXML_H
|
|
|
|
|
#define LABWC_RCXML_H
|
2020-06-05 23:04:54 +01:00
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
2020-09-28 20:41:41 +01:00
|
|
|
#include <stdio.h>
|
2020-06-16 07:21:53 +01:00
|
|
|
#include <wayland-server-core.h>
|
2020-06-05 23:04:54 +01:00
|
|
|
|
2023-06-06 19:52:57 +01:00
|
|
|
#include "common/border.h"
|
2020-07-31 21:31:03 +01:00
|
|
|
#include "common/buf.h"
|
2022-09-15 10:53:49 -04:00
|
|
|
#include "common/font.h"
|
2021-10-15 10:26:00 -04:00
|
|
|
#include "config/libinput.h"
|
2022-03-09 05:40:54 +01:00
|
|
|
#include "theme.h"
|
2020-06-19 22:00:22 +01:00
|
|
|
|
2023-04-19 14:44:41 +01:00
|
|
|
enum window_switcher_field_content {
|
|
|
|
|
LAB_FIELD_NONE = 0,
|
|
|
|
|
LAB_FIELD_TYPE,
|
|
|
|
|
LAB_FIELD_APP_ID,
|
|
|
|
|
LAB_FIELD_TITLE,
|
|
|
|
|
};
|
|
|
|
|
|
2023-06-06 19:52:57 +01:00
|
|
|
struct usable_area_override {
|
|
|
|
|
struct border margin;
|
|
|
|
|
char *output;
|
|
|
|
|
struct wl_list link; /* struct rcxml.usable_area_overrides */
|
|
|
|
|
};
|
|
|
|
|
|
2023-04-19 14:44:41 +01:00
|
|
|
struct window_switcher_field {
|
|
|
|
|
enum window_switcher_field_content content;
|
|
|
|
|
int width;
|
|
|
|
|
struct wl_list link; /* struct rcxml.window_switcher.fields */
|
|
|
|
|
};
|
|
|
|
|
|
2020-06-05 23:04:54 +01:00
|
|
|
struct rcxml {
|
2022-04-22 17:00:36 +01:00
|
|
|
char *config_dir;
|
|
|
|
|
|
2021-10-22 20:24:39 +01:00
|
|
|
/* core */
|
2020-09-15 21:10:02 +01:00
|
|
|
bool xdg_shell_server_side_deco;
|
2021-08-22 14:32:19 +01:00
|
|
|
int gap;
|
2021-10-22 20:23:09 +01:00
|
|
|
bool adaptive_sync;
|
2023-01-23 07:15:55 +01:00
|
|
|
bool reuse_output_mode;
|
2021-10-22 20:24:39 +01:00
|
|
|
|
|
|
|
|
/* focus */
|
2021-05-27 02:11:11 +03:00
|
|
|
bool focus_follow_mouse;
|
2023-04-02 02:18:25 +02:00
|
|
|
bool focus_follow_mouse_requires_movement;
|
2021-05-27 02:11:11 +03:00
|
|
|
bool raise_on_focus;
|
2021-10-22 20:24:39 +01:00
|
|
|
|
|
|
|
|
/* theme */
|
2020-07-09 22:41:54 +01:00
|
|
|
char *theme_name;
|
2021-03-30 22:39:52 +01:00
|
|
|
int corner_radius;
|
2023-04-14 09:01:13 +02:00
|
|
|
bool ssd_keep_border;
|
2022-09-15 10:53:49 -04:00
|
|
|
struct font font_activewindow;
|
|
|
|
|
struct font font_menuitem;
|
|
|
|
|
struct font font_osd;
|
2022-03-09 05:40:54 +01:00
|
|
|
/* Pointer to current theme */
|
|
|
|
|
struct theme *theme;
|
2021-10-22 20:24:39 +01:00
|
|
|
|
2023-06-06 19:52:57 +01:00
|
|
|
/* <margin top="" bottom="" left="" right="" output="" /> */
|
|
|
|
|
struct wl_list usable_area_overrides;
|
|
|
|
|
|
2021-10-22 20:24:39 +01:00
|
|
|
/* keyboard */
|
|
|
|
|
int repeat_rate;
|
|
|
|
|
int repeat_delay;
|
2022-06-10 19:42:34 +02:00
|
|
|
struct wl_list keybinds; /* struct keybind.link */
|
2021-10-22 20:24:39 +01:00
|
|
|
|
|
|
|
|
/* mouse */
|
2022-06-10 19:42:34 +02:00
|
|
|
long doubleclick_time; /* in ms */
|
|
|
|
|
struct wl_list mousebinds; /* struct mousebind.link */
|
2023-03-25 15:57:47 +00:00
|
|
|
double scroll_factor;
|
2021-10-22 20:24:39 +01:00
|
|
|
|
|
|
|
|
/* libinput */
|
2021-10-15 10:26:00 -04:00
|
|
|
struct wl_list libinput_categories;
|
2021-10-24 12:08:30 -04:00
|
|
|
|
|
|
|
|
/* resistance */
|
|
|
|
|
int screen_edge_strength;
|
2022-01-08 11:25:18 +01:00
|
|
|
|
|
|
|
|
/* window snapping */
|
|
|
|
|
int snap_edge_range;
|
|
|
|
|
bool snap_top_maximize;
|
2022-01-20 11:38:23 -08:00
|
|
|
|
2022-06-15 01:07:45 +02:00
|
|
|
struct {
|
|
|
|
|
int popuptime;
|
2023-06-24 20:36:06 +08:00
|
|
|
int min_nr_workspaces;
|
2022-06-15 01:07:45 +02:00
|
|
|
struct wl_list workspaces; /* struct workspace.link */
|
|
|
|
|
} workspace_config;
|
2022-07-06 17:21:02 +02:00
|
|
|
|
|
|
|
|
/* Regions */
|
|
|
|
|
struct wl_list regions; /* struct region.link */
|
2023-04-19 14:44:41 +01:00
|
|
|
|
|
|
|
|
struct {
|
2023-04-20 22:31:26 +01:00
|
|
|
bool show;
|
|
|
|
|
bool preview;
|
|
|
|
|
bool outlines;
|
2023-04-19 14:44:41 +01:00
|
|
|
struct wl_list fields; /* struct window_switcher_field.link */
|
|
|
|
|
} window_switcher;
|
2023-04-28 21:41:41 +01:00
|
|
|
|
|
|
|
|
struct wl_list window_rules; /* struct window_rule.link */
|
2020-06-05 23:04:54 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern struct rcxml rc;
|
|
|
|
|
|
2020-06-09 21:40:46 +01:00
|
|
|
void rcxml_parse_xml(struct buf *b);
|
2020-06-05 23:04:54 +01:00
|
|
|
void rcxml_read(const char *filename);
|
2020-08-13 20:18:48 +01:00
|
|
|
void rcxml_finish(void);
|
2020-06-05 23:04:54 +01:00
|
|
|
|
2023-05-13 16:10:33 +03:00
|
|
|
#endif /* LABWC_RCXML_H */
|