<head>\r
<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<meta name="generator" content="AsciiDoc 8.6.10" />\r
<title>i3: IPC interface (interprocess communication)</title>\r
<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
<span id="author">Michael Stapelberg</span><br />\r
<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
<span id="revdate">September 2017</span>\r
-<div id="toc">
- <div id="toctitle">Table of Contents</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+<div id="toc">\r
+ <div id="toctitle">Table of Contents</div>\r
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>\r
</div>\r
</div>\r
<div id="preamble">\r
<td align="center" valign="top"><p class="table"><a href="#_tick_reply">TICK</a></p></td>\r
<td align="center" valign="top"><p class="table">Sends a tick event with the specified payload.</p></td>\r
</tr>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">11</p></td>\r
+<td align="center" valign="top"><p class="table"><tt>SYNC</tt></p></td>\r
+<td align="center" valign="top"><p class="table"><a href="#_sync_reply">SYNC</a></p></td>\r
+<td align="center" valign="top"><p class="table">Sends an i3 sync event with the specified random value to the specified window.</p></td>\r
+</tr>\r
</tbody>\r
</table>\r
</div>\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
+window_properties (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ X11 window properties title, instance, class, window_role and transient_for.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
urgent (bool)\r
</dt>\r
<dd>\r
"width": 1280,\r
"height": 782\r
},\r
+ "window_properties": {\r
+ "class": "Evince",\r
+ "instance": "evince",\r
+ "title": "Properties",\r
+ "transient_for": 52428808\r
+ },\r
"floating_nodes": [],\r
"nodes": [\r
\r
<pre><tt>{ "success": true }</tt></pre>\r
</div></div>\r
</div>\r
+<div class="sect2">\r
+<h3 id="_sync_reply">3.13. SYNC reply</h3>\r
+<div class="paragraph"><p>The reply is a map containing the "success" member. After the reply was\r
+received, the <a href="https://i3wm.org/docs/testsuite.html#i3_sync">i3 sync message</a> was\r
+responded to.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "success": true }</tt></pre>\r
+</div></div>\r
+</div>\r
</div>\r
</div>\r
<div class="sect1">\r
program does not want to cope which such kinds of race conditions (an\r
event based library may not have a problem here), I suggest you create a\r
separate connection to receive events.</p></div>\r
+<div class="paragraph"><p>If an event message needs to be sent and the socket is not writeable (write\r
+returns EAGAIN, happens when the socket doesn’t have enough buffer space for\r
+writing new data) then i3 uses a queue system to store outgoing messages for\r
+each client. This is combined with a timer: if the message queue for a client is\r
+not empty and no data where successfully written in the past 10 seconds, the\r
+connection is killed. Practically, this means that your client should try to\r
+always read events from the socket to avoid having its connection closed.</p></div>\r
<div class="sect2">\r
<h3 id="_subscribing_to_events">4.1. Subscribing to events</h3>\r
<div class="paragraph"><p>By sending a message of type SUBSCRIBE with a JSON-encoded array as payload\r
</div>\r
<div id="footnotes"><hr /></div>\r
<div id="footer" lang="de">\r
-© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+ © 2009-present Michael Stapelberg,\r
+ <a href="/impress.html">Impressum</a>,\r
+ <a href="https://github.com/i3/i3.github.io">Source</a>\r
</div>\r
</body>\r
</html>\r