rc, layers: Add ignoreExclusiveArea

Adds a config option to ignore the exclusive area for wl_layer clients such as waybar, allowing windows and their titlebars to appear in the same space.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
This commit is contained in:
Joshua Ashton 2023-08-01 01:12:36 +01:00
parent cb4afadd01
commit c0bd5a363f
5 changed files with 12 additions and 0 deletions

View file

@ -102,6 +102,7 @@ Therefore, where multiple objects of the same kind are required (for example
<gap>0</gap> <gap>0</gap>
<adaptiveSync>no</adaptiveSync> <adaptiveSync>no</adaptiveSync>
<reuseOutputMode>no</reuseOutputMode> <reuseOutputMode>no</reuseOutputMode>
<ignoreExclusiveArea>no</ignoreExclusiveArea>
</core> </core>
``` ```
@ -124,6 +125,10 @@ Therefore, where multiple objects of the same kind are required (for example
be used with labwc the preferred mode of the monitor is used instead. be used with labwc the preferred mode of the monitor is used instead.
Default is no. Default is no.
*<core><ignoreExclusiveArea>* [yes|no]
Ignore the exclusive area provided by wlr_layer clients.
Default is no.
## WINDOW SWITCHER ## WINDOW SWITCHER
*<windowSwitcher show="" preview="" outlines="">* *<windowSwitcher show="" preview="" outlines="">*

View file

@ -12,6 +12,7 @@
<gap>0</gap> <gap>0</gap>
<adaptiveSync>no</adaptiveSync> <adaptiveSync>no</adaptiveSync>
<reuseOutputMode>no</reuseOutputMode> <reuseOutputMode>no</reuseOutputMode>
<ignoreExclusiveArea>no</ignoreExclusiveArea>
</core> </core>
<!-- <font><theme> can be defined without an attribute to set all places --> <!-- <font><theme> can be defined without an attribute to set all places -->

View file

@ -39,6 +39,7 @@ struct rcxml {
int gap; int gap;
bool adaptive_sync; bool adaptive_sync;
bool reuse_output_mode; bool reuse_output_mode;
bool ignore_exclusive_area;
/* focus */ /* focus */
bool focus_follow_mouse; bool focus_follow_mouse;

View file

@ -569,6 +569,8 @@ entry(xmlNode *node, char *nodename, char *content)
rc.gap = atoi(content); rc.gap = atoi(content);
} else if (!strcasecmp(nodename, "adaptiveSync.core")) { } else if (!strcasecmp(nodename, "adaptiveSync.core")) {
set_bool(content, &rc.adaptive_sync); set_bool(content, &rc.adaptive_sync);
} else if (!strcasecmp(nodename, "ignoreExclusiveArea.core")) {
set_bool(content, &rc.ignore_exclusive_area);
} else if (!strcasecmp(nodename, "reuseOutputMode.core")) { } else if (!strcasecmp(nodename, "reuseOutputMode.core")) {
set_bool(content, &rc.reuse_output_mode); set_bool(content, &rc.reuse_output_mode);
} else if (!strcmp(nodename, "name.theme")) { } else if (!strcmp(nodename, "name.theme")) {

View file

@ -93,6 +93,9 @@ layers_arrange(struct output *output)
scene_output->y); scene_output->y);
} }
if (rc.ignore_exclusive_area)
usable_area = full_area;
output->usable_area = usable_area; output->usable_area = usable_area;
} }