foot/config.h
Daniel Eklöf 22ce09eb44
config: make CSD user configurable
The user can now configure the following:

* Whether to prefer CSDs or SSDs. But note that this is only a hint to
  the compositor - it may deny our request. Furthermore, not all
  compositors implement the decoration manager protocol, meaning CSDs
  will be used regardless of the user configuration (GNOME/mutter
  being the most prominent one).
* Title bar size and color, including transparency
* Border size and color, including transparency

Also drop support for rendering the CSDs inside the main surface.
2020-03-02 18:42:49 +01:00

60 lines
1.1 KiB
C

#pragma once
#include <stdint.h>
#include <stdbool.h>
#include <tllist.h>
#include "terminal.h"
struct config {
char *term;
char *shell;
bool login_shell;
unsigned width;
unsigned height;
unsigned pad_x;
unsigned pad_y;
tll(char *) fonts;
int scrollback_lines;
struct {
uint32_t fg;
uint32_t bg;
uint32_t regular[8];
uint32_t bright[8];
uint16_t alpha;
} colors;
struct {
enum cursor_style style;
struct {
uint32_t text;
uint32_t cursor;
} color;
} cursor;
struct {
enum { CONF_CSD_PREFER_SERVER, CONF_CSD_PREFER_CLIENT } preferred;
int title_height;
int border_width;
struct {
bool title_set;
bool border_set;
uint32_t title;
uint32_t border;
} color;
} csd;
size_t render_worker_count;
char *server_socket_path;
bool presentation_timings;
bool hold_at_exit;
};
bool config_load(struct config *conf, const char *path);
void config_free(struct config conf);