]> git.sur5r.net Git - i3/i3/blobdiff - include/i3/ipc.h
Merge branch 'master' into next
[i3/i3] / include / i3 / ipc.h
index 30b2d3044e353cdb4c202a571e6acfde6138326d..2a3321b50302727281a6838baf893a5c345669d0 100644 (file)
@@ -1,19 +1,24 @@
 /*
- * vim:ts=8:expandtab
+ * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- *
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * This public header defines the different constants and message types to use
  * for the IPC interface to i3 (see docs/ipc for more information).
  *
  */
+#ifndef I3_I3_IPC_H
+#define I3_I3_IPC_H
+
+#include <stdint.h>
 
-#ifndef _I3_IPC_H
-#define _I3_IPC_H
+typedef struct i3_ipc_header {
+    /* 6 = strlen(I3_IPC_MAGIC) */
+    char magic[6];
+    uint32_t size;
+    uint32_t type;
+} __attribute__ ((packed)) i3_ipc_header_t;
 
 /*
  * Messages from clients to i3
 /** Request the current defined marks from i3 */
 #define I3_IPC_MESSAGE_TYPE_GET_MARKS           5
 
+/** Request the configuration for a specific 'bar' */
+#define I3_IPC_MESSAGE_TYPE_GET_BAR_CONFIG      6
+
+/** Request the i3 version */
+#define I3_IPC_MESSAGE_TYPE_GET_VERSION         7
+
 /*
  * Messages from i3 to clients
  *
 /** Tree reply type */
 #define I3_IPC_REPLY_TYPE_TREE                  4
 
-/** Marks reply type*/
+/** Marks reply type */
 #define I3_IPC_REPLY_TYPE_MARKS                 5
 
+/** Bar config reply type */
+#define I3_IPC_REPLY_TYPE_BAR_CONFIG            6
+
+/** i3 version reply type */
+#define I3_IPC_REPLY_TYPE_VERSION               7
+
 /*
  * Events from i3 to clients. Events have the first bit set high.
  *
 /* The output event will be triggered upon changes in the output list */
 #define I3_IPC_EVENT_OUTPUT                     (I3_IPC_EVENT_MASK | 1)
 
+/* The output event will be triggered upon mode changes */
+#define I3_IPC_EVENT_MODE                       (I3_IPC_EVENT_MASK | 2)
+
+/* The window event will be triggered upon window changes */
+#define I3_IPC_EVENT_WINDOW                     (I3_IPC_EVENT_MASK | 3)
+
 #endif