| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | #ifndef _SWAYBAR_CONFIG_H
 | 
					
						
							|  |  |  | #define _SWAYBAR_CONFIG_H
 | 
					
						
							|  |  |  | #include <stdbool.h>
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:04:20 -04:00
										 |  |  | #include <stdint.h>
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:56:02 -04:00
										 |  |  | #include <wayland-client.h>
 | 
					
						
							| 
									
										
										
										
											2018-12-09 15:10:41 +00:00
										 |  |  | #include "../include/config.h"
 | 
					
						
							| 
									
										
										
										
											2018-10-08 11:40:13 -04:00
										 |  |  | #include "list.h"
 | 
					
						
							| 
									
										
										
										
											2016-07-30 18:50:13 -05:00
										 |  |  | #include "util.h"
 | 
					
						
							| 
									
										
										
										
											2016-02-22 17:27:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | struct box_colors { | 
					
						
							|  |  |  | 	uint32_t border; | 
					
						
							|  |  |  | 	uint32_t background; | 
					
						
							|  |  |  | 	uint32_t text; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:56:02 -04:00
										 |  |  | struct config_output { | 
					
						
							| 
									
										
										
										
											2018-10-06 19:02:12 +01:00
										 |  |  | 	struct wl_list link; // swaybar_config::outputs
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:56:02 -04:00
										 |  |  | 	char *name; | 
					
						
							| 
									
										
										
										
											2018-03-29 00:07:35 -04:00
										 |  |  | 	size_t index; | 
					
						
							| 
									
										
										
										
											2018-03-28 23:56:02 -04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-08 11:40:13 -04:00
										 |  |  | struct swaybar_binding { | 
					
						
							|  |  |  | 	uint32_t button; | 
					
						
							|  |  |  | 	char *command; | 
					
						
							|  |  |  | 	bool release; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:04:20 -04:00
										 |  |  | struct swaybar_config { | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 	char *status_command; | 
					
						
							| 
									
										
										
										
											2016-04-24 20:35:21 +03:00
										 |  |  | 	bool pango_markup; | 
					
						
							| 
									
										
										
										
											2018-03-28 23:04:20 -04:00
										 |  |  | 	uint32_t position; // zwlr_layer_surface_v1_anchor
 | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 	char *font; | 
					
						
							|  |  |  | 	char *sep_symbol; | 
					
						
							|  |  |  | 	char *mode; | 
					
						
							| 
									
										
										
										
											2018-10-12 20:32:48 +01:00
										 |  |  | 	char *hidden_state; | 
					
						
							| 
									
										
										
										
											2018-10-12 21:14:52 +01:00
										 |  |  | 	char *modifier; | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 	bool strip_workspace_numbers; | 
					
						
							| 
									
										
										
										
											2018-11-17 16:11:28 +00:00
										 |  |  | 	bool strip_workspace_name; | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 	bool binding_mode_indicator; | 
					
						
							| 
									
										
										
										
											2016-07-17 11:26:38 -04:00
										 |  |  | 	bool wrap_scroll; | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 	bool workspace_buttons; | 
					
						
							| 
									
										
										
										
											2018-10-08 11:40:13 -04:00
										 |  |  | 	list_t *bindings; | 
					
						
							| 
									
										
										
										
											2018-04-24 22:04:19 +01:00
										 |  |  | 	struct wl_list outputs; // config_output::link
 | 
					
						
							| 
									
										
										
										
											2018-03-30 00:30:38 -04:00
										 |  |  | 	bool all_outputs; | 
					
						
							| 
									
										
										
										
											2016-01-24 00:23:09 +01:00
										 |  |  | 	int height; | 
					
						
							| 
									
										
										
										
											2019-01-10 23:43:45 -05:00
										 |  |  | 	int status_padding; | 
					
						
							| 
									
										
										
										
											2019-01-11 00:12:24 -05:00
										 |  |  | 	int status_edge_padding; | 
					
						
							| 
									
										
										
										
											2018-11-28 11:23:48 -05:00
										 |  |  | 	struct { | 
					
						
							|  |  |  | 		int top; | 
					
						
							|  |  |  | 		int right; | 
					
						
							|  |  |  | 		int bottom; | 
					
						
							|  |  |  | 		int left; | 
					
						
							|  |  |  | 	} gaps; | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	struct { | 
					
						
							|  |  |  | 		uint32_t background; | 
					
						
							|  |  |  | 		uint32_t statusline; | 
					
						
							|  |  |  | 		uint32_t separator; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-02 18:48:43 +01:00
										 |  |  | 		uint32_t focused_background; | 
					
						
							|  |  |  | 		uint32_t focused_statusline; | 
					
						
							|  |  |  | 		uint32_t focused_separator; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 		struct box_colors focused_workspace; | 
					
						
							|  |  |  | 		struct box_colors active_workspace; | 
					
						
							|  |  |  | 		struct box_colors inactive_workspace; | 
					
						
							|  |  |  | 		struct box_colors urgent_workspace; | 
					
						
							|  |  |  | 		struct box_colors binding_mode; | 
					
						
							|  |  |  | 	} colors; | 
					
						
							| 
									
										
										
										
											2018-12-09 15:10:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if HAVE_TRAY
 | 
					
						
							|  |  |  | 	char *icon_theme; | 
					
						
							|  |  |  | 	char *tray_bindings[10]; // mouse buttons 0-9
 | 
					
						
							| 
									
										
										
										
											2018-12-11 16:27:39 +00:00
										 |  |  | 	bool tray_hidden; | 
					
						
							| 
									
										
										
										
											2018-12-09 15:10:41 +00:00
										 |  |  | 	list_t *tray_outputs; // char *
 | 
					
						
							|  |  |  | 	int tray_padding; | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-30 13:58:49 +03:00
										 |  |  | struct swaybar_config *init_config(void); | 
					
						
							| 
									
										
										
										
											2018-03-28 23:04:20 -04:00
										 |  |  | void free_config(struct swaybar_config *config); | 
					
						
							| 
									
										
										
										
											2018-03-28 23:56:02 -04:00
										 |  |  | uint32_t parse_position(const char *position); | 
					
						
							| 
									
										
										
										
											2016-01-23 02:47:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 23:04:20 -04:00
										 |  |  | #endif
 |