summaryrefslogtreecommitdiff
path: root/swaybar/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/config.h')
-rw-r--r--swaybar/config.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/swaybar/config.h b/swaybar/config.h
new file mode 100644
index 00000000..5cda97e6
--- /dev/null
+++ b/swaybar/config.h
@@ -0,0 +1,73 @@
+#ifndef _SWAYBAR_CONFIG_H
+#define _SWAYBAR_CONFIG_H
+
+#include <stdint.h>
+#include <stdbool.h>
+
+/**
+ * Colors for a box with background, border and text colors.
+ */
+struct box_colors {
+ uint32_t border;
+ uint32_t background;
+ uint32_t text;
+};
+
+/**
+ * Swaybar config.
+ */
+struct swaybar_config {
+ char *status_command;
+ uint32_t position;
+ char *font;
+ char *sep_symbol;
+ char *mode;
+ bool strip_workspace_numbers;
+ bool binding_mode_indicator;
+ bool workspace_buttons;
+
+ int margin;
+ int ws_horizontal_padding;
+ double ws_vertical_padding;
+ int ws_spacing;
+ int text_height;
+
+ struct {
+ uint32_t background;
+ uint32_t statusline;
+ uint32_t separator;
+
+ 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;
+};
+
+/**
+ * Parse colors defined as hex string to uint32_t.
+ */
+uint32_t parse_color(const char *color);
+
+/**
+ * Parse position top|bottom|left|right.
+ */
+uint32_t parse_position(const char *position);
+
+/**
+ * Parse font.
+ */
+char *parse_font(const char *font);
+
+/**
+ * Initialize default sway config.
+ */
+struct swaybar_config *init_config();
+
+/**
+ * Free config struct.
+ */
+void free_config(struct swaybar_config *config);
+
+#endif /* _SWAYBAR_CONFIG_H */