2 * vim:ts=4:sw=4:expandtab
4 * i3bar - an xcb-based status- and ws-bar for i3
5 * © 2010 Axel Wagner and contributors (see also: LICENSE)
7 * config.c: Parses the configuration (received from i3).
22 /* Bar display mode (hide unless modifier is pressed or show in dock mode or always hide in invisible mode) */
23 typedef enum { M_DOCK = 0,
25 M_INVISIBLE = 2 } bar_display_mode_t;
27 typedef struct binding_t {
31 TAILQ_ENTRY(binding_t)
35 typedef struct tray_output_t {
38 TAILQ_ENTRY(tray_output_t)
42 typedef struct config_t {
45 TAILQ_HEAD(bindings_head, binding_t)
50 struct xcb_color_strings_t colors;
51 bool disable_binding_mode_indicator;
53 bool strip_ws_numbers;
57 i3String *separator_symbol;
59 TAILQ_HEAD(tray_outputs_head, tray_output_t)
66 bar_display_mode_t hide_on_modifier;
68 /* The current hidden_state of the bar, which indicates whether it is hidden or shown */
70 S_SHOW = 1 } hidden_state;
76 * Start parsing the received bar configuration JSON string
79 void parse_config_json(char *json);
82 * free()s the color strings as soon as they are not needed anymore.
85 void free_colors(struct xcb_color_strings_t *colors);