]> git.sur5r.net Git - i3/i3/blobdiff - include/i3/ipc.h
Merge pull request #1638 from hwangcc23/fix-1489
[i3/i3] / include / i3 / ipc.h
index 6a50ccc8701fffe7fb68084de093929bed9f5553..8912bf130a5daf877ccb2445821524599a581ad9 100644 (file)
@@ -2,14 +2,13 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009 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
+#pragma once
 
 #include <stdint.h>
 
@@ -18,7 +17,7 @@ typedef struct i3_ipc_header {
     char magic[6];
     uint32_t size;
     uint32_t type;
-} __attribute__ ((packed)) i3_ipc_header_t;
+} __attribute__((packed)) i3_ipc_header_t;
 
 /*
  * Messages from clients to i3
@@ -26,31 +25,31 @@ typedef struct i3_ipc_header {
  */
 
 /** Never change this, only on major IPC breakage (don’t do that) */
-#define I3_IPC_MAGIC                   "i3-ipc"
+#define I3_IPC_MAGIC "i3-ipc"
 
 /** The payload of the message will be interpreted as a command */
-#define I3_IPC_MESSAGE_TYPE_COMMAND            0
+#define I3_IPC_MESSAGE_TYPE_COMMAND 0
 
 /** Requests the current workspaces from i3 */
-#define I3_IPC_MESSAGE_TYPE_GET_WORKSPACES      1
+#define I3_IPC_MESSAGE_TYPE_GET_WORKSPACES 1
 
 /** Subscribe to the specified events */
-#define I3_IPC_MESSAGE_TYPE_SUBSCRIBE           2
+#define I3_IPC_MESSAGE_TYPE_SUBSCRIBE 2
 
 /** Requests the current outputs from i3 */
-#define I3_IPC_MESSAGE_TYPE_GET_OUTPUTS         3
+#define I3_IPC_MESSAGE_TYPE_GET_OUTPUTS 3
 
 /** Requests the tree layout from i3 */
-#define I3_IPC_MESSAGE_TYPE_GET_TREE            4
+#define I3_IPC_MESSAGE_TYPE_GET_TREE 4
 
 /** Request the current defined marks from i3 */
-#define I3_IPC_MESSAGE_TYPE_GET_MARKS           5
+#define I3_IPC_MESSAGE_TYPE_GET_MARKS 5
 
 /** Request the configuration for a specific 'bar' */
-#define I3_IPC_MESSAGE_TYPE_GET_BAR_CONFIG      6
+#define I3_IPC_MESSAGE_TYPE_GET_BAR_CONFIG 6
 
 /** Request the i3 version */
-#define I3_IPC_MESSAGE_TYPE_GET_VERSION         7
+#define I3_IPC_MESSAGE_TYPE_GET_VERSION 7
 
 /*
  * Messages from i3 to clients
@@ -58,48 +57,49 @@ typedef struct i3_ipc_header {
  */
 
 /** Command reply type */
-#define I3_IPC_REPLY_TYPE_COMMAND               0
+#define I3_IPC_REPLY_TYPE_COMMAND 0
 
 /** Workspaces reply type */
-#define I3_IPC_REPLY_TYPE_WORKSPACES            1
+#define I3_IPC_REPLY_TYPE_WORKSPACES 1
 
 /** Subscription reply type */
-#define I3_IPC_REPLY_TYPE_SUBSCRIBE             2
+#define I3_IPC_REPLY_TYPE_SUBSCRIBE 2
 
 /** Outputs reply type */
-#define I3_IPC_REPLY_TYPE_OUTPUTS               3
+#define I3_IPC_REPLY_TYPE_OUTPUTS 3
 
 /** Tree reply type */
-#define I3_IPC_REPLY_TYPE_TREE                  4
+#define I3_IPC_REPLY_TYPE_TREE 4
 
 /** Marks reply type */
-#define I3_IPC_REPLY_TYPE_MARKS                 5
+#define I3_IPC_REPLY_TYPE_MARKS 5
 
 /** Bar config reply type */
-#define I3_IPC_REPLY_TYPE_BAR_CONFIG            6
+#define I3_IPC_REPLY_TYPE_BAR_CONFIG 6
 
 /** i3 version reply type */
-#define I3_IPC_REPLY_TYPE_VERSION               7
+#define I3_IPC_REPLY_TYPE_VERSION 7
 
 /*
  * Events from i3 to clients. Events have the first bit set high.
  *
  */
-#define I3_IPC_EVENT_MASK                       (1 << 31)
+#define I3_IPC_EVENT_MASK (1 << 31)
 
 /* The workspace event will be triggered upon changes in the workspace list */
-#define I3_IPC_EVENT_WORKSPACE                  (I3_IPC_EVENT_MASK | 0)
+#define I3_IPC_EVENT_WORKSPACE (I3_IPC_EVENT_MASK | 0)
 
 /* The output event will be triggered upon changes in the output list */
-#define I3_IPC_EVENT_OUTPUT                     (I3_IPC_EVENT_MASK | 1)
+#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)
+#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)
+#define I3_IPC_EVENT_WINDOW (I3_IPC_EVENT_MASK | 3)
 
 /** Bar config update will be triggered to update the bar config */
-#define I3_IPC_EVENT_BARCONFIG_UPDATE           (I3_IPC_EVENT_MASK | 4)
+#define I3_IPC_EVENT_BARCONFIG_UPDATE (I3_IPC_EVENT_MASK | 4)
 
-#endif
+/** The binding event will be triggered when bindings run */
+#define I3_IPC_EVENT_BINDING (I3_IPC_EVENT_MASK | 5)