diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-08-08 13:46:36 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-08-08 15:37:06 -0400 |
commit | 43d1ffc9ddf01eaf614293b5c8aeada27c3c9907 (patch) | |
tree | a628319cf9fe03e2e0c2ec0cd4a885b39cf7807d /sway/config | |
parent | fc039f0759c1293fc270b631b035176f6924797b (diff) |
Allow a fallback color to be specified for swaybg
This allows for a color to be set when the wallpaper does not fill the
entire output. If specified, the fallback color is also used when the
image path is inaccessible.
Diffstat (limited to 'sway/config')
-rw-r--r-- | sway/config/output.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sway/config/output.c b/sway/config/output.c index 504c48c6..1d8cb3ef 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -77,6 +77,10 @@ void merge_output_config(struct output_config *dst, struct output_config *src) { free(dst->background_option); dst->background_option = strdup(src->background_option); } + if (src->background_fallback) { + free(dst->background_fallback); + dst->background_fallback = strdup(src->background_fallback); + } if (src->dpms_state != 0) { dst->dpms_state = src->dpms_state; } @@ -226,17 +230,19 @@ void apply_output_config(struct output_config *oc, struct sway_container *output wlr_log(WLR_DEBUG, "Setting background for output %d to %s", output_i, oc->background); - size_t len = snprintf(NULL, 0, "%s %d %s %s", + size_t len = snprintf(NULL, 0, "%s %d %s %s %s", config->swaybg_command ? config->swaybg_command : "swaybg", - output_i, oc->background, oc->background_option); + output_i, oc->background, oc->background_option, + oc->background_fallback ? oc->background_fallback : ""); char *command = malloc(len + 1); if (!command) { wlr_log(WLR_DEBUG, "Unable to allocate swaybg command"); return; } - snprintf(command, len + 1, "%s %d %s %s", + snprintf(command, len + 1, "%s %d %s %s %s", config->swaybg_command ? config->swaybg_command : "swaybg", - output_i, oc->background, oc->background_option); + output_i, oc->background, oc->background_option, + oc->background_fallback ? oc->background_fallback : ""); wlr_log(WLR_DEBUG, "-> %s", command); char *const cmd[] = { "sh", "-c", command, NULL }; |