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

@ -82,15 +82,6 @@ struct wl_primary {
uint32_t serial;
};
/* I'd prefer to position the CSD sub-surfaces outside the main
* surface. Unfortunately, a lot of compositors doesn't handle this
* correctly. When this define is 0, we instead position the CSD
* sub-surfaces inside the main surface, and offset the grid content
* accordingly. */
#define FOOT_CSD_OUTSIDE 1
extern const int csd_border_size;
extern const int csd_title_size;
enum csd_surface {
CSD_SURF_TITLE,
CSD_SURF_LEFT,