*
*/
#include "all.h"
-
-/* We need Xlib for XStringToKeysym */
-#include <X11/Xlib.h>
+#include <xkbcommon/xkbcommon.h>
char *current_configpath = NULL;
Config config;
/*
* Sends the current bar configuration as an event to all barconfig_update listeners.
- * This update mechnism currently only includes the hidden_state and the mode in the config.
*
*/
void update_barconfig() {
Barconfig *current;
TAILQ_FOREACH(current, &barconfigs, configs) {
- /* Build json message */
- char *hidden_state;
- switch (current->hidden_state) {
- case S_SHOW:
- hidden_state ="show";
- break;
- case S_HIDE:
- default:
- hidden_state = "hide";
- break;
- }
-
- char *mode;
- switch (current->mode) {
- case M_HIDE:
- mode ="hide";
- break;
- case M_INVISIBLE:
- mode ="invisible";
- break;
- case M_DOCK:
- default:
- mode = "dock";
- break;
- }
-
- /* Send an event to all barconfig listeners*/
- char *event_msg;
- sasprintf(&event_msg, "{ \"id\":\"%s\", \"hidden_state\":\"%s\", \"mode\":\"%s\" }", current->id, hidden_state, mode);
-
- ipc_send_event("barconfig_update", I3_IPC_EVENT_BARCONFIG_UPDATE, event_msg);
- FREE(event_msg);
+ ipc_send_barconfig_update_event(current);
}
}
free(buf);
die("Unable to find the configuration file (looked at "
- "~/.i3/config, $XDG_CONFIG_HOME/i3/config, "
- SYSCONFDIR "/i3/config and $XDG_CONFIG_DIRS/i3/config)");
+ "~/.i3/config, $XDG_CONFIG_HOME/i3/config, " SYSCONFDIR "/i3/config and $XDG_CONFIG_DIRS/i3/config)");
}
/*
FREE(barconfig);
}
- /* Clear workspace names */
+/* Clear workspace names */
#if 0
Workspace *ws;
TAILQ_FOREACH(ws, workspaces, workspaces)
/* Invalidate pixmap caches in case font or colors changed */
Con *con;
TAILQ_FOREACH(con, &all_cons, all_cons)
- FREE(con->deco_render_params);
+ FREE(con->deco_render_params);
/* Get rid of the current font */
free_font();
bindings = default_mode->bindings;
#define REQUIRED_OPTION(name) \
- if (config.name == NULL) \
+ if (config.name == NULL) \
die("You did not specify required configuration option " #name "\n");
/* Clear the old config or initialize the data structure */
memset(&config, 0, sizeof(config));
- /* Initialize default colors */
+/* Initialize default colors */
#define INIT_COLOR(x, cborder, cbackground, ctext, cindicator) \
- do { \
- x.border = get_colorpixel(cborder); \
- x.background = get_colorpixel(cbackground); \
- x.text = get_colorpixel(ctext); \
- x.indicator = get_colorpixel(cindicator); \
+ do { \
+ x.border = get_colorpixel(cborder); \
+ x.background = get_colorpixel(cbackground); \
+ x.text = get_colorpixel(ctext); \
+ x.indicator = get_colorpixel(cindicator); \
} while (0)
config.client.background = get_colorpixel("#000000");
config.default_border = BS_NORMAL;
config.default_floating_border = BS_NORMAL;
- config.default_border_width = 2;
+ config.default_border_width = logical_px(2);
+ config.default_floating_border_width = logical_px(2);
/* Set default_orientation to NO_ORIENTATION for auto orientation. */
config.default_orientation = NO_ORIENTATION;