Merge pull request #2793 from emersion/disable-swaybg

Allow swaybg to be disabled
master
emersion 6 years ago committed by GitHub
commit 45f2cd0c73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,6 +20,8 @@ struct cmd_results *bar_cmd_status_command(int argc, char **argv) {
config->current_bar->status_command = new_command; config->current_bar->status_command = new_command;
wlr_log(WLR_DEBUG, "Feeding bar with status command: %s", wlr_log(WLR_DEBUG, "Feeding bar with status command: %s",
config->current_bar->status_command); config->current_bar->status_command);
} else {
free(new_command);
} }
if (config->active && !config->validating) { if (config->active && !config->validating) {

@ -9,12 +9,17 @@ struct cmd_results *cmd_swaybg_command(int argc, char **argv) {
return error; return error;
} }
if (config->swaybg_command) { free(config->swaybg_command);
free(config->swaybg_command); config->swaybg_command = NULL;
char *new_command = join_args(argv, argc);
if (strcmp(new_command, "-") != 0) {
config->swaybg_command = new_command;
wlr_log(WLR_DEBUG, "Using custom swaybg command: %s",
config->swaybg_command);
} else {
free(new_command);
} }
config->swaybg_command = join_args(argv, argc);
wlr_log(WLR_DEBUG, "Using custom swaybg command: %s",
config->swaybg_command);
return cmd_results_new(CMD_SUCCESS, NULL, NULL); return cmd_results_new(CMD_SUCCESS, NULL, NULL);
} }

@ -136,6 +136,7 @@ void free_config(struct sway_config *config) {
free(config->floating_scroll_left_cmd); free(config->floating_scroll_left_cmd);
free(config->floating_scroll_right_cmd); free(config->floating_scroll_right_cmd);
free(config->font); free(config->font);
free(config->swaybg_command);
free((char *)config->current_config_path); free((char *)config->current_config_path);
free((char *)config->current_config); free((char *)config->current_config);
free(config); free(config);
@ -240,6 +241,8 @@ static void config_defaults(struct sway_config *config) {
if (!(config->active_bar_modifiers = create_list())) goto cleanup; if (!(config->active_bar_modifiers = create_list())) goto cleanup;
if (!(config->swaybg_command = strdup("swaybg"))) goto cleanup;
if (!(config->config_chain = create_list())) goto cleanup; if (!(config->config_chain = create_list())) goto cleanup;
config->current_config_path = NULL; config->current_config_path = NULL;
config->current_config = NULL; config->current_config = NULL;

@ -229,17 +229,16 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) {
} }
} }
if (oc && oc->background) { if (output->bg_pid != 0) {
if (output->bg_pid != 0) { terminate_swaybg(output->bg_pid);
terminate_swaybg(output->bg_pid); }
} if (oc && oc->background && config->swaybg_command) {
wlr_log(WLR_DEBUG, "Setting background for output %d to %s", wlr_log(WLR_DEBUG, "Setting background for output %d to %s",
output_i, oc->background); output_i, oc->background);
size_t len = snprintf(NULL, 0, "%s %d \"%s\" %s %s", size_t len = snprintf(NULL, 0, "%s %d \"%s\" %s %s",
config->swaybg_command ? config->swaybg_command : "swaybg", config->swaybg_command, output_i, oc->background,
output_i, oc->background, oc->background_option, oc->background_option,
oc->background_fallback ? oc->background_fallback : ""); oc->background_fallback ? oc->background_fallback : "");
char *command = malloc(len + 1); char *command = malloc(len + 1);
if (!command) { if (!command) {
@ -247,8 +246,8 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) {
return; return;
} }
snprintf(command, len + 1, "%s %d \"%s\" %s %s", snprintf(command, len + 1, "%s %d \"%s\" %s %s",
config->swaybg_command ? config->swaybg_command : "swaybg", config->swaybg_command, output_i, oc->background,
output_i, oc->background, oc->background_option, oc->background_option,
oc->background_fallback ? oc->background_fallback : ""); oc->background_fallback ? oc->background_fallback : "");
wlr_log(WLR_DEBUG, "-> %s", command); wlr_log(WLR_DEBUG, "-> %s", command);
@ -260,6 +259,7 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) {
free(command); free(command);
} }
} }
if (oc) { if (oc) {
switch (oc->dpms_state) { switch (oc->dpms_state) {
case DPMS_ON: case DPMS_ON:
@ -353,4 +353,3 @@ void create_default_output_configs(void) {
list_add(config->output_configs, oc); list_add(config->output_configs, oc);
} }
} }

@ -71,6 +71,9 @@ The following commands may only be used in the configuration file.
Executes custom background _command_. Default is _swaybg_. Refer to Executes custom background _command_. Default is _swaybg_. Refer to
*output* below for more information. *output* below for more information.
It can be disabled by setting the command to a single dash:
_swaybg\_command -_
*swaynag\_command* <command> *swaynag\_command* <command>
Executes custom command for _swaynag_. Default is _swaynag_. Additional Executes custom command for _swaynag_. Default is _swaynag_. Additional
arguments may be appended to the end. This should only be used to either arguments may be appended to the end. This should only be used to either

Loading…
Cancel
Save