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.
This commit is contained in:
Daniel Eklöf 2020-03-02 18:42:49 +01:00
parent ae22366f3b
commit 22ce09eb44
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
8 changed files with 210 additions and 107 deletions

View file

@ -36,6 +36,20 @@ struct config {
} 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;