]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/ipc.html
Change copyright notice to show 2009-present
[i3/i3.github.io] / docs / ipc.html
index 350483e33f37c8463906ac6da522aa4867504de3..268e1405341efda25643ad502376660c0a19c267 100644 (file)
@@ -4,7 +4,7 @@
 <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
@@ -33,9 +33,9 @@ document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); a
 <span id="author">Michael Stapelberg</span><br />\r
 <span id="email"><tt>&lt;<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>&gt;</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
@@ -177,6 +177,12 @@ cellspacing="0" cellpadding="4">
 <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
@@ -656,6 +662,14 @@ window (integer)
 </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
@@ -826,6 +840,12 @@ VGA1
             "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
@@ -1213,6 +1233,17 @@ events generated prior to the <tt>SEND_TICK</tt> message (happened-before relati
 <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
@@ -1230,6 +1261,13 @@ situation can happen: You send a GET_WORKSPACES request but you receive a
 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&#8217;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
@@ -1850,7 +1888,9 @@ From here on out, send/receive all messages using the detected byte order.
 </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