labwc/include/config/rcxml.h

94 lines
1.8 KiB
C
Raw Normal View History

2021-11-13 21:56:53 +00:00
/* SPDX-License-Identifier: GPL-2.0-only */
2020-08-03 20:56:38 +01:00
#ifndef __LABWC_RCXML_H
#define __LABWC_RCXML_H
2020-06-05 23:04:54 +01:00
#include <stdbool.h>
#include <stdio.h>
2020-06-16 07:21:53 +01:00
#include <wayland-server-core.h>
2020-06-05 23:04:54 +01:00
2020-07-31 21:31:03 +01:00
#include "common/buf.h"
#include "common/font.h"
2021-10-15 10:26:00 -04:00
#include "config/libinput.h"
#include "theme.h"
2020-06-19 22:00:22 +01:00
enum window_switcher_field_content {
LAB_FIELD_NONE = 0,
LAB_FIELD_TYPE,
LAB_FIELD_APP_ID,
LAB_FIELD_TITLE,
};
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 {
char *config_dir;
/* core */
bool xdg_shell_server_side_deco;
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;
/* focus */
2021-05-27 02:11:11 +03:00
bool focus_follow_mouse;
bool raise_on_focus;
/* theme */
char *theme_name;
2021-03-30 22:39:52 +01:00
int corner_radius;
struct font font_activewindow;
struct font font_menuitem;
struct font font_osd;
/* Pointer to current theme */
struct theme *theme;
/* keyboard */
int repeat_rate;
int repeat_delay;
struct wl_list keybinds; /* struct keybind.link */
/* mouse */
long doubleclick_time; /* in ms */
struct wl_list mousebinds; /* struct mousebind.link */
double scroll_factor;
/* 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;
/* window snapping */
int snap_edge_range;
bool snap_top_maximize;
/* cycle view (alt+tab) */
2023-03-08 15:26:49 +01:00
bool cycle_view_osd;
bool cycle_preview_contents;
bool cycle_preview_outlines;
2022-06-15 01:07:45 +02:00
struct {
int popuptime;
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 */
struct {
struct wl_list fields; /* struct window_switcher_field.link */
} window_switcher;
2020-06-05 23:04:54 +01:00
};
extern struct rcxml rc;
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
2020-08-03 20:56:38 +01:00
#endif /* __LABWC_RCXML_H */