parent
							
								
									bf7a4cd0eb
								
							
						
					
					
						commit
						569b2bfd5d
					
				| @ -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; | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue