mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Move bar config into its own file
This commit is contained in:
		
							parent
							
								
									bf7a4cd0eb
								
							
						
					
					
						commit
						569b2bfd5d
					
				
					 5 changed files with 151 additions and 148 deletions
				
			
		| 
						 | 
					@ -12,6 +12,8 @@
 | 
				
			||||||
#include "container.h"
 | 
					#include "container.h"
 | 
				
			||||||
#include "wlr-layer-shell-unstable-v1-protocol.h"
 | 
					#include "wlr-layer-shell-unstable-v1-protocol.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TODO: Refactor this shit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Describes a variable created via the `set` command.
 | 
					 * Describes a variable created via the `set` command.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -407,11 +409,6 @@ void merge_output_config(struct output_config *dst, struct output_config *src);
 | 
				
			||||||
void apply_output_config(struct output_config *oc, swayc_t *output);
 | 
					void apply_output_config(struct output_config *oc, swayc_t *output);
 | 
				
			||||||
void free_output_config(struct output_config *oc);
 | 
					void free_output_config(struct output_config *oc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Updates the list of active bar modifiers
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void update_active_bar_modifiers(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int workspace_output_cmp_workspace(const void *a, const void *b);
 | 
					int workspace_output_cmp_workspace(const void *a, const void *b);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int sway_binding_cmp(const void *a, const void *b);
 | 
					int sway_binding_cmp(const void *a, const void *b);
 | 
				
			||||||
| 
						 | 
					@ -420,27 +417,16 @@ int sway_binding_cmp_keys(const void *a, const void *b);
 | 
				
			||||||
void free_sway_binding(struct sway_binding *sb);
 | 
					void free_sway_binding(struct sway_binding *sb);
 | 
				
			||||||
struct sway_binding *sway_binding_dup(struct sway_binding *sb);
 | 
					struct sway_binding *sway_binding_dup(struct sway_binding *sb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int sway_mouse_binding_cmp(const void *a, const void *b);
 | 
					/* Bar stuff */
 | 
				
			||||||
int sway_mouse_binding_cmp_qsort(const void *a, const void *b);
 | 
					 | 
				
			||||||
int sway_mouse_binding_cmp_buttons(const void *a, const void *b);
 | 
					 | 
				
			||||||
void free_sway_mouse_binding(struct sway_mouse_binding *smb);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void load_swaybars();
 | 
					void load_swaybars();
 | 
				
			||||||
void terminate_swaybg(pid_t pid);
 | 
					void terminate_swaybg(pid_t pid);
 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Allocate and initialize default bar configuration.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
struct bar_config *default_bar_config(void);
 | 
					struct bar_config *default_bar_config(void);
 | 
				
			||||||
 | 
					void free_bar_config(struct bar_config *bar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/* Global config singleton. */
 | 
				
			||||||
 * Global config singleton.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
extern struct sway_config *config;
 | 
					extern struct sway_config *config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/* Config file currently being read */
 | 
				
			||||||
 * Config file currently being read.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
extern const char *current_config_path;
 | 
					extern const char *current_config_path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										127
									
								
								sway/config.c
									
										
									
									
									
								
							
							
						
						
									
										127
									
								
								sway/config.c
									
										
									
									
									
								
							| 
						 | 
					@ -110,48 +110,6 @@ void free_config(struct sway_config *config) {
 | 
				
			||||||
	free(config);
 | 
						free(config);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void free_bar(struct bar_config *bar) {
 | 
					 | 
				
			||||||
	if (!bar) {
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	free(bar->mode);
 | 
					 | 
				
			||||||
	free(bar->position);
 | 
					 | 
				
			||||||
	free(bar->hidden_state);
 | 
					 | 
				
			||||||
	free(bar->status_command);
 | 
					 | 
				
			||||||
	free(bar->font);
 | 
					 | 
				
			||||||
	free(bar->separator_symbol);
 | 
					 | 
				
			||||||
	// TODO: Free mouse bindings
 | 
					 | 
				
			||||||
	list_free(bar->bindings);
 | 
					 | 
				
			||||||
	if (bar->outputs) {
 | 
					 | 
				
			||||||
		free_flat_list(bar->outputs);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (bar->pid != 0) {
 | 
					 | 
				
			||||||
		// TODO terminate_swaybar(bar->pid);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	free(bar->colors.background);
 | 
					 | 
				
			||||||
	free(bar->colors.statusline);
 | 
					 | 
				
			||||||
	free(bar->colors.separator);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_background);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_statusline);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_separator);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_workspace_border);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_workspace_bg);
 | 
					 | 
				
			||||||
	free(bar->colors.focused_workspace_text);
 | 
					 | 
				
			||||||
	free(bar->colors.active_workspace_border);
 | 
					 | 
				
			||||||
	free(bar->colors.active_workspace_bg);
 | 
					 | 
				
			||||||
	free(bar->colors.active_workspace_text);
 | 
					 | 
				
			||||||
	free(bar->colors.inactive_workspace_border);
 | 
					 | 
				
			||||||
	free(bar->colors.inactive_workspace_bg);
 | 
					 | 
				
			||||||
	free(bar->colors.inactive_workspace_text);
 | 
					 | 
				
			||||||
	free(bar->colors.urgent_workspace_border);
 | 
					 | 
				
			||||||
	free(bar->colors.urgent_workspace_bg);
 | 
					 | 
				
			||||||
	free(bar->colors.urgent_workspace_text);
 | 
					 | 
				
			||||||
	free(bar->colors.binding_mode_border);
 | 
					 | 
				
			||||||
	free(bar->colors.binding_mode_bg);
 | 
					 | 
				
			||||||
	free(bar->colors.binding_mode_text);
 | 
					 | 
				
			||||||
	free(bar);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void destroy_removed_seats(struct sway_config *old_config,
 | 
					static void destroy_removed_seats(struct sway_config *old_config,
 | 
				
			||||||
		struct sway_config *new_config) {
 | 
							struct sway_config *new_config) {
 | 
				
			||||||
	struct seat_config *seat_config;
 | 
						struct seat_config *seat_config;
 | 
				
			||||||
| 
						 | 
					@ -281,91 +239,6 @@ cleanup:
 | 
				
			||||||
	sway_abort("Unable to allocate config structures");
 | 
						sway_abort("Unable to allocate config structures");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct bar_config *default_bar_config(void) {
 | 
					 | 
				
			||||||
	struct bar_config *bar = NULL;
 | 
					 | 
				
			||||||
	bar = malloc(sizeof(struct bar_config));
 | 
					 | 
				
			||||||
	if (!bar) {
 | 
					 | 
				
			||||||
		return NULL;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->mode = strdup("dock"))) goto cleanup;
 | 
					 | 
				
			||||||
	if (!(bar->hidden_state = strdup("hide"))) goto cleanup;
 | 
					 | 
				
			||||||
	bar->outputs = NULL;
 | 
					 | 
				
			||||||
	bar->position = strdup("bottom");
 | 
					 | 
				
			||||||
	if (!(bar->bindings = create_list())) goto cleanup;
 | 
					 | 
				
			||||||
	if (!(bar->status_command = strdup("while :; do date +'%Y-%m-%d %l:%M:%S %p'; sleep 1; done"))) goto cleanup;
 | 
					 | 
				
			||||||
	bar->pango_markup = false;
 | 
					 | 
				
			||||||
	bar->swaybar_command = NULL;
 | 
					 | 
				
			||||||
	bar->font = NULL;
 | 
					 | 
				
			||||||
	bar->height = -1;
 | 
					 | 
				
			||||||
	bar->workspace_buttons = true;
 | 
					 | 
				
			||||||
	bar->wrap_scroll = false;
 | 
					 | 
				
			||||||
	bar->separator_symbol = NULL;
 | 
					 | 
				
			||||||
	bar->strip_workspace_numbers = false;
 | 
					 | 
				
			||||||
	bar->binding_mode_indicator = true;
 | 
					 | 
				
			||||||
	bar->verbose = false;
 | 
					 | 
				
			||||||
	bar->pid = 0;
 | 
					 | 
				
			||||||
	// set default colors
 | 
					 | 
				
			||||||
	if (!(bar->colors.background = strndup("#000000ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.statusline = strndup("#ffffffff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.separator = strndup("#666666ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.focused_workspace_border = strndup("#4c7899ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.focused_workspace_bg = strndup("#285577ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.focused_workspace_text = strndup("#ffffffff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.active_workspace_border = strndup("#333333ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.active_workspace_bg = strndup("#5f676aff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.active_workspace_text = strndup("#ffffffff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.inactive_workspace_border = strndup("#333333ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.inactive_workspace_bg = strndup("#222222ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.inactive_workspace_text = strndup("#888888ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.urgent_workspace_border = strndup("#2f343aff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.urgent_workspace_bg = strndup("#900000ff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (!(bar->colors.urgent_workspace_text = strndup("#ffffffff", 9))) {
 | 
					 | 
				
			||||||
		goto cleanup;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	// if the following colors stay undefined, they fall back to background,
 | 
					 | 
				
			||||||
	// statusline, separator and urgent_workspace_*.
 | 
					 | 
				
			||||||
	bar->colors.focused_background = NULL;
 | 
					 | 
				
			||||||
	bar->colors.focused_statusline = NULL;
 | 
					 | 
				
			||||||
	bar->colors.focused_separator = NULL;
 | 
					 | 
				
			||||||
	bar->colors.binding_mode_border = NULL;
 | 
					 | 
				
			||||||
	bar->colors.binding_mode_bg = NULL;
 | 
					 | 
				
			||||||
	bar->colors.binding_mode_text = NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	list_add(config->bars, bar);
 | 
					 | 
				
			||||||
	return bar;
 | 
					 | 
				
			||||||
cleanup:
 | 
					 | 
				
			||||||
	free_bar(bar);
 | 
					 | 
				
			||||||
	return NULL;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static bool file_exists(const char *path) {
 | 
					static bool file_exists(const char *path) {
 | 
				
			||||||
	return path && access(path, R_OK) != -1;
 | 
						return path && access(path, R_OK) != -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										143
									
								
								sway/config/bar.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								sway/config/bar.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,143 @@
 | 
				
			||||||
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
 | 
					#define _XOPEN_SOURCE 700
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <wordexp.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/wait.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#include <strings.h>
 | 
				
			||||||
 | 
					#include "sway/config.h"
 | 
				
			||||||
 | 
					#include "stringop.h"
 | 
				
			||||||
 | 
					#include "list.h"
 | 
				
			||||||
 | 
					#include "log.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void free_bar_config(struct bar_config *bar) {
 | 
				
			||||||
 | 
						if (!bar) {
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						free(bar->mode);
 | 
				
			||||||
 | 
						free(bar->position);
 | 
				
			||||||
 | 
						free(bar->hidden_state);
 | 
				
			||||||
 | 
						free(bar->status_command);
 | 
				
			||||||
 | 
						free(bar->font);
 | 
				
			||||||
 | 
						free(bar->separator_symbol);
 | 
				
			||||||
 | 
						// TODO: Free mouse bindings
 | 
				
			||||||
 | 
						list_free(bar->bindings);
 | 
				
			||||||
 | 
						if (bar->outputs) {
 | 
				
			||||||
 | 
							free_flat_list(bar->outputs);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (bar->pid != 0) {
 | 
				
			||||||
 | 
							// TODO terminate_swaybar(bar->pid);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						free(bar->colors.background);
 | 
				
			||||||
 | 
						free(bar->colors.statusline);
 | 
				
			||||||
 | 
						free(bar->colors.separator);
 | 
				
			||||||
 | 
						free(bar->colors.focused_background);
 | 
				
			||||||
 | 
						free(bar->colors.focused_statusline);
 | 
				
			||||||
 | 
						free(bar->colors.focused_separator);
 | 
				
			||||||
 | 
						free(bar->colors.focused_workspace_border);
 | 
				
			||||||
 | 
						free(bar->colors.focused_workspace_bg);
 | 
				
			||||||
 | 
						free(bar->colors.focused_workspace_text);
 | 
				
			||||||
 | 
						free(bar->colors.active_workspace_border);
 | 
				
			||||||
 | 
						free(bar->colors.active_workspace_bg);
 | 
				
			||||||
 | 
						free(bar->colors.active_workspace_text);
 | 
				
			||||||
 | 
						free(bar->colors.inactive_workspace_border);
 | 
				
			||||||
 | 
						free(bar->colors.inactive_workspace_bg);
 | 
				
			||||||
 | 
						free(bar->colors.inactive_workspace_text);
 | 
				
			||||||
 | 
						free(bar->colors.urgent_workspace_border);
 | 
				
			||||||
 | 
						free(bar->colors.urgent_workspace_bg);
 | 
				
			||||||
 | 
						free(bar->colors.urgent_workspace_text);
 | 
				
			||||||
 | 
						free(bar->colors.binding_mode_border);
 | 
				
			||||||
 | 
						free(bar->colors.binding_mode_bg);
 | 
				
			||||||
 | 
						free(bar->colors.binding_mode_text);
 | 
				
			||||||
 | 
						free(bar);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct bar_config *default_bar_config(void) {
 | 
				
			||||||
 | 
						struct bar_config *bar = NULL;
 | 
				
			||||||
 | 
						bar = malloc(sizeof(struct bar_config));
 | 
				
			||||||
 | 
						if (!bar) {
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->mode = strdup("dock"))) goto cleanup;
 | 
				
			||||||
 | 
						if (!(bar->hidden_state = strdup("hide"))) goto cleanup;
 | 
				
			||||||
 | 
						bar->outputs = NULL;
 | 
				
			||||||
 | 
						bar->position = strdup("bottom");
 | 
				
			||||||
 | 
						if (!(bar->bindings = create_list())) goto cleanup;
 | 
				
			||||||
 | 
						if (!(bar->status_command = strdup("while :; do date +'%Y-%m-%d %l:%M:%S %p'; sleep 1; done"))) goto cleanup;
 | 
				
			||||||
 | 
						bar->pango_markup = false;
 | 
				
			||||||
 | 
						bar->swaybar_command = NULL;
 | 
				
			||||||
 | 
						bar->font = NULL;
 | 
				
			||||||
 | 
						bar->height = -1;
 | 
				
			||||||
 | 
						bar->workspace_buttons = true;
 | 
				
			||||||
 | 
						bar->wrap_scroll = false;
 | 
				
			||||||
 | 
						bar->separator_symbol = NULL;
 | 
				
			||||||
 | 
						bar->strip_workspace_numbers = false;
 | 
				
			||||||
 | 
						bar->binding_mode_indicator = true;
 | 
				
			||||||
 | 
						bar->verbose = false;
 | 
				
			||||||
 | 
						bar->pid = 0;
 | 
				
			||||||
 | 
						// set default colors
 | 
				
			||||||
 | 
						if (!(bar->colors.background = strndup("#000000ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.statusline = strndup("#ffffffff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.separator = strndup("#666666ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.focused_workspace_border = strndup("#4c7899ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.focused_workspace_bg = strndup("#285577ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.focused_workspace_text = strndup("#ffffffff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.active_workspace_border = strndup("#333333ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.active_workspace_bg = strndup("#5f676aff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.active_workspace_text = strndup("#ffffffff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.inactive_workspace_border = strndup("#333333ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.inactive_workspace_bg = strndup("#222222ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.inactive_workspace_text = strndup("#888888ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.urgent_workspace_border = strndup("#2f343aff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.urgent_workspace_bg = strndup("#900000ff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!(bar->colors.urgent_workspace_text = strndup("#ffffffff", 9))) {
 | 
				
			||||||
 | 
							goto cleanup;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						// if the following colors stay undefined, they fall back to background,
 | 
				
			||||||
 | 
						// statusline, separator and urgent_workspace_*.
 | 
				
			||||||
 | 
						bar->colors.focused_background = NULL;
 | 
				
			||||||
 | 
						bar->colors.focused_statusline = NULL;
 | 
				
			||||||
 | 
						bar->colors.focused_separator = NULL;
 | 
				
			||||||
 | 
						bar->colors.binding_mode_border = NULL;
 | 
				
			||||||
 | 
						bar->colors.binding_mode_bg = NULL;
 | 
				
			||||||
 | 
						bar->colors.binding_mode_text = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						list_add(config->bars, bar);
 | 
				
			||||||
 | 
						return bar;
 | 
				
			||||||
 | 
					cleanup:
 | 
				
			||||||
 | 
						free_bar_config(bar);
 | 
				
			||||||
 | 
						return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -186,7 +186,7 @@ void apply_output_config(struct output_config *oc, swayc_t *output) {
 | 
				
			||||||
		output_id[bufsize-1] = 0;
 | 
							output_id[bufsize-1] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		char *const cmd[] = {
 | 
							char *const cmd[] = {
 | 
				
			||||||
			"./swaybg/swaybg",
 | 
								"swaybg",
 | 
				
			||||||
			output_id,
 | 
								output_id,
 | 
				
			||||||
			oc->background,
 | 
								oc->background,
 | 
				
			||||||
			oc->background_option,
 | 
								oc->background_option,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,6 +64,7 @@ sway_sources = files(
 | 
				
			||||||
	'commands/reload.c',
 | 
						'commands/reload.c',
 | 
				
			||||||
	'commands/workspace.c',
 | 
						'commands/workspace.c',
 | 
				
			||||||
	'config.c',
 | 
						'config.c',
 | 
				
			||||||
 | 
						'config/bar.c',
 | 
				
			||||||
	'config/output.c',
 | 
						'config/output.c',
 | 
				
			||||||
	'config/seat.c',
 | 
						'config/seat.c',
 | 
				
			||||||
	'config/input.c',
 | 
						'config/input.c',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue