]> git.sur5r.net Git - i3/i3/blobdiff - include/config.h
Implement support for using key symbols in configuration file
[i3/i3] / include / config.h
index 1e85d4712dbea43b907d08adcd3bbd7a2b4ba22c..17ec5391c1aa2b676e44c6beeb8a33f214852745 100644 (file)
 #ifndef _CONFIG_H
 #define _CONFIG_H
 
+#include <stdbool.h>
 #include "queue.h"
 
 typedef struct Config Config;
 extern Config config;
 
+/**
+ * Part of the struct Config. It makes sense to group colors for background,
+ * border and text as every element in i3 has them (window decorations, bar).
+ *
+ */
 struct Colortriple {
         uint32_t border;
         uint32_t background;
         uint32_t text;
 };
 
+/**
+ * Holds a user-assigned variable for parsing the configuration file. The key
+ * is replaced by value in every following line of the file.
+ *
+ */
 struct Variable {
         char *key;
         char *value;
@@ -33,10 +44,17 @@ struct Variable {
         SLIST_ENTRY(Variable) variables;
 };
 
+/**
+ * Holds part of the configuration (the part which is not already in dedicated
+ * structures in include/data.h).
+ *
+ */
 struct Config {
         const char *terminal;
         const char *font;
 
+        const char *ipc_socket_path;
+
         /** The modifier which needs to be pressed in combination with your mouse
          * buttons to do things with floating windows (move, resize) */
         uint32_t floating_modifier;
@@ -60,6 +78,19 @@ struct Config {
  * configuration file.
  *
  */
-void load_configuration(xcb_connection_t *conn, const char *override_configfile);
+void load_configuration(xcb_connection_t *conn, const char *override_configfile, bool reload);
+
+/**
+ * Ungrabs all keys, to be called before re-grabbing the keys because of a
+ * mapping_notify event or a configuration file reload
+ *
+ */
+void ungrab_all_keys(xcb_connection_t *conn);
+
+/**
+ * Grab the bound keys (tell X to send us keypress events for those keycodes)
+ *
+ */
+void grab_all_keys(xcb_connection_t *conn);
 
 #endif