IPC: Custom 'event' command documentation
Patch status: needinfo
Patch by Paul Grove
To apply this patch, use:
curl http://cr.i3wm.org/patch/275/raw.patch | git am
b/docs/ipc
| 14 |
@@ -631,6 +631,9 @@ window (3):: |
| 15 |
barconfig_update (4):: |
| 16 |
Sent when the hidden_state or mode field in the barconfig of any bar |
| 17 |
instance was updated. |
| 18 |
+custom (5):: |
| 19 |
+ Sent when triggered by the i3 +event+ command. Custom events can be |
| 20 |
+ subscribed to under any name but always use the the same event type (5) |
| 21 |
|
| 22 |
*Example:* |
| 23 |
-------------------------------------------------------------------- |
| 24 |
@@ -746,6 +749,22 @@ corresponds to the current mode. |
| 25 |
} |
| 26 |
--------------------------- |
| 27 |
|
| 28 |
+=== custom event |
| 29 |
+ |
| 30 |
+This event is the result of an issued +event+ command usualy bound to a |
| 31 |
+keybinding. The event names are custom and variable, but the message type |
| 32 |
+will allways be the same, because of this the name of the triggered event |
| 33 |
+is included along with the payload. See the i3 userguide for more information |
| 34 |
+on the +event+ command. |
| 35 |
+ |
| 36 |
+*Example:* |
| 37 |
+--------------------------- |
| 38 |
+{
|
| 39 |
+ "event": "test", |
| 40 |
+ "payload": "Hello World" |
| 41 |
+} |
| 42 |
+--------------------------- |
| 43 |
+ |
| 44 |
== See also (existing libraries) |
| 45 |
|
| 46 |
[[libraries]] |
b/docs/userguide
| 51 |
@@ -1915,6 +1915,33 @@ bindsym $mod+b bar mode hide bar-1 |
| 52 |
bindsym $mod+Shift+b bar mode invisible bar-1 |
| 53 |
------------------------------------------------ |
| 54 |
|
| 55 |
+=== custom event |
| 56 |
+ |
| 57 |
+The +event+ command is an advanced feature to pass messages to connected IPC |
| 58 |
+clients. This allows scripters to run services that respond to commands |
| 59 |
+processed by i3. |
| 60 |
+ |
| 61 |
+*Syntax*: |
| 62 |
+--------------- |
| 63 |
+event <event_name> <event_data> |
| 64 |
+--------------- |
| 65 |
+ |
| 66 |
+<event_name> is required and can be any single word. |
| 67 |
+<event_data> is required and can be any valid string. |
| 68 |
+ |
| 69 |
+Any IPC clients subscribed to the event matching <event_name> will receive an |
| 70 |
+event with a JSON blob containing the event_name and event_data sent. e.g. |
| 71 |
+ |
| 72 |
+*Example*: |
| 73 |
+--------------- |
| 74 |
+# If bound to a key press |
| 75 |
+bindsym $mod+y event test "Hello World" |
| 76 |
+ |
| 77 |
+# The following JSON will be received by all connect IPC clients subscribed |
| 78 |
+# to the test event when $mod+y is pressed: |
| 79 |
+{"event": "test", "Hello World"}
|
| 80 |
+--------------- |
| 81 |
+ |
| 82 |
[[multi_monitor]] |
| 83 |
|
| 84 |
== Multiple monitors |