]> git.sur5r.net Git - i3/i3/blob - include/i3/ipc.h
Merge branch 'master' into next
[i3/i3] / include / i3 / ipc.h
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * This public header defines the different constants and message types to use
8  * for the IPC interface to i3 (see docs/ipc for more information).
9  *
10  */
11 #ifndef _I3_IPC_H
12 #define _I3_IPC_H
13
14 /*
15  * Messages from clients to i3
16  *
17  */
18
19 /** Never change this, only on major IPC breakage (don’t do that) */
20 #define I3_IPC_MAGIC                    "i3-ipc"
21
22 /** The payload of the message will be interpreted as a command */
23 #define I3_IPC_MESSAGE_TYPE_COMMAND             0
24
25 /** Requests the current workspaces from i3 */
26 #define I3_IPC_MESSAGE_TYPE_GET_WORKSPACES      1
27
28 /** Subscribe to the specified events */
29 #define I3_IPC_MESSAGE_TYPE_SUBSCRIBE           2
30
31 /** Requests the current outputs from i3 */
32 #define I3_IPC_MESSAGE_TYPE_GET_OUTPUTS         3
33
34 /** Requests the tree layout from i3 */
35 #define I3_IPC_MESSAGE_TYPE_GET_TREE            4
36
37 /** Request the current defined marks from i3 */
38 #define I3_IPC_MESSAGE_TYPE_GET_MARKS           5
39
40 /** Request the configuration for a specific 'bar' */
41 #define I3_IPC_MESSAGE_TYPE_GET_BAR_CONFIG      6
42
43 /** Request the i3 version */
44 #define I3_IPC_MESSAGE_TYPE_GET_VERSION         7
45
46 /*
47  * Messages from i3 to clients
48  *
49  */
50
51 /** Command reply type */
52 #define I3_IPC_REPLY_TYPE_COMMAND               0
53
54 /** Workspaces reply type */
55 #define I3_IPC_REPLY_TYPE_WORKSPACES            1
56
57 /** Subscription reply type */
58 #define I3_IPC_REPLY_TYPE_SUBSCRIBE             2
59
60 /** Outputs reply type */
61 #define I3_IPC_REPLY_TYPE_OUTPUTS               3
62
63 /** Tree reply type */
64 #define I3_IPC_REPLY_TYPE_TREE                  4
65
66 /** Marks reply type */
67 #define I3_IPC_REPLY_TYPE_MARKS                 5
68
69 /** Bar config reply type */
70 #define I3_IPC_REPLY_TYPE_BAR_CONFIG            6
71
72 /** i3 version reply type */
73 #define I3_IPC_REPLY_TYPE_VERSION               7
74
75 /*
76  * Events from i3 to clients. Events have the first bit set high.
77  *
78  */
79 #define I3_IPC_EVENT_MASK                       (1 << 31)
80
81 /* The workspace event will be triggered upon changes in the workspace list */
82 #define I3_IPC_EVENT_WORKSPACE                  (I3_IPC_EVENT_MASK | 0)
83
84 /* The output event will be triggered upon changes in the output list */
85 #define I3_IPC_EVENT_OUTPUT                     (I3_IPC_EVENT_MASK | 1)
86
87 #endif