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) bindings;
34 typedef struct tray_output_t {
37 TAILQ_ENTRY(tray_output_t) tray_outputs;
40 typedef struct config_t {
42 TAILQ_HEAD(bindings_head, binding_t) bindings;
45 struct xcb_color_strings_t colors;
46 bool disable_binding_mode_indicator;
48 bool strip_ws_numbers;
52 i3String *separator_symbol;
53 TAILQ_HEAD(tray_outputs_head, tray_output_t) tray_outputs;
58 bar_display_mode_t hide_on_modifier;
60 /* The current hidden_state of the bar, which indicates whether it is hidden or shown */
62 S_SHOW = 1 } hidden_state;
68 * Start parsing the received bar configuration JSON string
71 void parse_config_json(char *json);
74 * free()s the color strings as soon as they are not needed anymore.
77 void free_colors(struct xcb_color_strings_t *colors);