]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/userguide.html
add 4.10 release
[i3/i3.github.io] / docs / userguide.html
index 0f294dfb58732aa52910ea48210a2662948d40b3..05da6d2b027a9b7411a05f63d795d67211520ba4 100644 (file)
@@ -2,15 +2,15 @@
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
-<link rel="icon" type="image/png" href="/favicon.png">\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.7" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
 <title>i3: i3 User’s Guide</title>\r
 <link rel="stylesheet" href="/css/style.css" type="text/css" />\r
 <link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
 <script type="text/javascript">\r
 /*<![CDATA[*/\r
-window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
 /*]]>*/\r
 </script>\r
 <script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
@@ -22,8 +22,9 @@ window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
                         <ul id="nav">\r
                                 <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
                                 <li><a href="/screenshots">Screens</a></li>\r
+                                <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
                                 <li><a href="/contact">Contact</a></li>\r
-                                <li><a href="http://bugs.i3wm.org/">Bugs</a></li>\r
+                                <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
                         </ul>\r
         <br style="clear: both">\r
 <div id="content">\r
@@ -31,7 +32,7 @@ window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
 <h1>i3 User’s Guide</h1>\r
 <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">August 2012</span>\r
+<span id="revdate">March 2013</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>
@@ -69,8 +70,8 @@ are your homerow.</p></div>
 <h2 id="_using_i3">2. Using i3</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>Throughout this guide, the keyword <tt>$mod</tt> will be used to refer to the\r
-configured modifier. This is the Alt key (Mod1) by default, with windows (Mod4)\r
-being a popular alternative.</p></div>\r
+configured modifier. This is the Alt key (Mod1) by default, with the Windows\r
+key (Mod4) being a popular alternative.</p></div>\r
 <div class="sect2">\r
 <h3 id="_opening_terminals_and_moving_around">2.1. Opening terminals and moving around</h3>\r
 <div class="paragraph"><p>One very basic operation is opening a new terminal. By default, the keybinding\r
@@ -148,7 +149,7 @@ stacking and <tt>$mod+w</tt> for tabbed.</p></div>
 <div class="paragraph"><p>To display a window in fullscreen mode or to go out of fullscreen mode again,\r
 press <tt>$mod+f</tt>.</p></div>\r
 <div class="paragraph"><p>There is also a global fullscreen mode in i3 in which the client will span all\r
-available outputs (the command is <tt>fullscreen global</tt>).</p></div>\r
+available outputs (the command is <tt>fullscreen toggle global</tt>).</p></div>\r
 </div>\r
 <div class="sect2">\r
 <h3 id="_opening_other_applications">2.4. Opening other applications</h3>\r
@@ -200,24 +201,27 @@ columns/rows with your keyboard.</p></div>
 </div>\r
 <div class="sect2">\r
 <h3 id="_restarting_i3_inplace">2.9. Restarting i3 inplace</h3>\r
-<div class="paragraph"><p>To restart i3 inplace (and thus get into a clean state if there is a bug, or\r
+<div class="paragraph"><p>To restart i3 in place (and thus get into a clean state if there is a bug, or\r
 to upgrade to a newer version of i3) you can use <tt>$mod+Shift+r</tt>.</p></div>\r
 </div>\r
 <div class="sect2">\r
 <h3 id="_exiting_i3">2.10. Exiting i3</h3>\r
-<div class="paragraph"><p>To cleanly exit i3 without killing your X server, you can use <tt>$mod+Shift+e</tt>.</p></div>\r
+<div class="paragraph"><p>To cleanly exit i3 without killing your X server, you can use <tt>$mod+Shift+e</tt>.\r
+By default, a dialog will ask you to confirm if you really want to quit.</p></div>\r
 </div>\r
 <div class="sect2">\r
 <h3 id="_floating">2.11. Floating</h3>\r
-<div class="paragraph"><p>Floating mode is the opposite of tiling mode. The position and size of a window\r
-are not managed by i3, but by you. Using this mode violates the tiling\r
-paradigm but can be useful for some corner cases like "Save as" dialog\r
-windows, or toolbar windows (GIMP or similar). Those windows usually set the\r
-appropriate hint and are opened in floating mode by default.</p></div>\r
+<div class="paragraph"><p>Floating mode is the opposite of tiling mode. The position and size of\r
+a window are not managed automatically by i3, but manually by\r
+you. Using this mode violates the tiling paradigm but can be useful\r
+for some corner cases like "Save as" dialog windows, or toolbar\r
+windows (GIMP or similar). Those windows usually set the appropriate\r
+hint and are opened in floating mode by default.</p></div>\r
 <div class="paragraph"><p>You can toggle floating mode for a window by pressing <tt>$mod+Shift+Space</tt>. By\r
 dragging the window’s titlebar with your mouse you can move the window\r
 around. By grabbing the borders and moving them you can resize the window. You\r
-can also do that by using the <a href="#floating_modifier">[floating_modifier]</a>.</p></div>\r
+can also do that by using the <a href="#floating_modifier">[floating_modifier]</a>. Another way to resize\r
+floating windows using the mouse is to right-click on the titlebar and drag.</p></div>\r
 <div class="paragraph"><p>For resizing floating windows with your keyboard, see <a href="#resizingconfig">[resizingconfig]</a>.</p></div>\r
 <div class="paragraph"><p>Floating windows are always on top of tiling windows.</p></div>\r
 </div>\r
@@ -260,7 +264,7 @@ orientation (horizontal, vertical or unspecified) and the orientation depends
 on the layout the container is in (vertical for splitv and stacking, horizontal\r
 for splith and tabbed). So, in our example with the workspace, the default\r
 layout of the workspace <tt>Container</tt> is splith (most monitors are widescreen\r
-nowadays). If you change the layout to splitv (<tt>$mod+l</tt> in the default config)\r
+nowadays). If you change the layout to splitv (<tt>$mod+v</tt> in the default config)\r
 and <strong>then</strong> open two terminals, i3 will configure your windows like this:</p></div>\r
 <div class="imageblock">\r
 <div class="content">\r
@@ -316,20 +320,20 @@ command.</p></div>
 single workspace on which you open three terminal windows. All these terminal\r
 windows are directly attached to one node inside i3’s layout tree, the\r
 workspace node. By default, the workspace node’s orientation is <tt>horizontal</tt>.</p></div>\r
-<div class="paragraph"><p>Now you move one of these terminals down (<tt>$mod+k</tt> by default). The workspace\r
-node’s orientation will be changed to <tt>vertical</tt>. The terminal window you moved\r
-down is directly attached to the workspace and appears on the bottom of the\r
-screen. A new (horizontal) container was created to accomodate the other two\r
-terminal windows. You will notice this when switching to tabbed mode (for\r
-example). You would end up having one tab called "another container" and the\r
-other one being the terminal window you moved down.</p></div>\r
+<div class="paragraph"><p>Now you move one of these terminals down (<tt>$mod+Shift+k</tt> by default). The\r
+workspace node’s orientation will be changed to <tt>vertical</tt>. The terminal window\r
+you moved down is directly attached to the workspace and appears on the bottom\r
+of the screen. A new (horizontal) container was created to accommodate the\r
+other two terminal windows. You will notice this when switching to tabbed mode\r
+(for example). You would end up having one tab called "another container" and\r
+the other one being the terminal window you moved down.</p></div>\r
 </div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
 <h2 id="configuring">4. Configuring i3</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>This is where the real fun begins ;-). Most things are very dependant on your\r
+<div class="paragraph"><p>This is where the real fun begins ;-). Most things are very dependent on your\r
 ideal working environment so we can’t make reasonable defaults for them.</p></div>\r
 <div class="paragraph"><p>While not using a programming language for the configuration, i3 stays\r
 quite flexible in regards to the things you usually want your window manager\r
@@ -384,7 +388,7 @@ font pango:[family list] [style options] [size]</tt></pre>
 <pre><tt>font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
 font pango:DejaVu Sans Mono 10\r
 font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11\r
-font pango:Terminus 11x</tt></pre>\r
+font pango:Terminus 11px</tt></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
@@ -428,7 +432,7 @@ bindcode [--release] [Modifiers+]keycode command</tt></pre>
 <div class="listingblock">\r
 <div class="content">\r
 <pre><tt># Fullscreen\r
-bindsym $mod+f fullscreen\r
+bindsym $mod+f fullscreen toggle\r
 \r
 # Restart\r
 bindsym $mod+Shift+r restart\r
@@ -467,7 +471,39 @@ workspaces is totally convenient. Try it :-).
 </dl></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="floating_modifier">4.4. The floating modifier</h3>\r
+<h3 id="mousebindings">4.4. Mouse bindings</h3>\r
+<div class="paragraph"><p>A mouse binding makes i3 execute a command upon pressing a specific mouse\r
+button in the scope of the clicked container (see <a href="#command_criteria">[command_criteria]</a>). You\r
+can configure mouse bindings in a similar way to key bindings.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym [--release] [--whole-window] [Modifiers+]button[n] command</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>By default, the binding will only run when you click on the titlebar of the\r
+window. If the <tt>--whole-window</tt> flag is given, it will run when any part of the\r
+window is clicked. If the <tt>--release</tt> flag is given, it will run when the mouse\r
+button is released.</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># The middle button over a titlebar kills the window\r
+bindsym --release button2 kill\r
+\r
+# The middle button and a modifer over any part of the window kills the window\r
+bindsym --whole-window $mod+button2 kill\r
+\r
+# The right button toggles floating\r
+bindsym button3 floating toggle\r
+bindsym $mod+button3 floating toggle\r
+\r
+# The side buttons move the window around\r
+bindsym button9 move left\r
+bindsym button8 move right</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="floating_modifier">4.5. The floating modifier</h3>\r
 <div class="paragraph"><p>To move floating windows with your mouse, you can either grab their titlebar\r
 or configure the so called floating modifier which you can then press and\r
 click anywhere in the window itself to move it. The most common setup is to\r
@@ -490,7 +526,7 @@ ratio will be preserved).</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_constraining_floating_window_size">4.5. Constraining floating window size</h3>\r
+<h3 id="_constraining_floating_window_size">4.6. Constraining floating window size</h3>\r
 <div class="paragraph"><p>The maximum and minimum dimensions of floating windows can be specified. If\r
 either dimension of <tt>floating_maximum_size</tt> is specified as -1, that dimension\r
 will be unconstrained with respect to its maximum value. If either dimension of\r
@@ -511,12 +547,12 @@ floating_maximum_size -1 x -1</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_orientation_for_new_workspaces">4.6. Orientation for new workspaces</h3>\r
+<h3 id="_orientation_for_new_workspaces">4.7. Orientation for new workspaces</h3>\r
 <div class="paragraph"><p>New workspaces get a reasonable default orientation: Wide-screen monitors\r
 (anything wider than high) get horizontal orientation, rotated monitors\r
 (anything higher than wide) get vertical orientation.</p></div>\r
 <div class="paragraph"><p>With the <tt>default_orientation</tt> configuration directive, you can override that\r
-behaviour.</p></div>\r
+behavior.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
@@ -529,7 +565,7 @@ behaviour.</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_layout_mode_for_new_containers">4.7. Layout mode for new containers</h3>\r
+<h3 id="_layout_mode_for_new_containers">4.8. Layout mode for new containers</h3>\r
 <div class="paragraph"><p>This option determines in which mode new containers on workspace level will\r
 start.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
@@ -544,7 +580,7 @@ start.</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_border_style_for_new_windows">4.8. Border style for new windows</h3>\r
+<h3 id="_border_style_for_new_windows">4.9. Border style for new windows</h3>\r
 <div class="paragraph"><p>This option determines which border style new windows will have. The default is\r
 "normal". Note that new_float applies only to windows which are starting out as\r
 floating windows, e.g. dialog windows.</p></div>\r
@@ -572,7 +608,7 @@ new_window pixel 3</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_hiding_vertical_borders">4.9. Hiding vertical borders</h3>\r
+<h3 id="_hiding_vertical_borders">4.10. Hiding vertical borders</h3>\r
 <div class="paragraph"><p>You can hide vertical borders adjacent to the screen edges using\r
 <tt>hide_edge_borders</tt>. This is useful if you are using scrollbars, or do not want\r
 to waste even two pixels in displayspace. Default is none.</p></div>\r
@@ -588,7 +624,7 @@ to waste even two pixels in displayspace. Default is none.</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_arbitrary_commands_for_specific_windows_for_window">4.10. Arbitrary commands for specific windows (for_window)</h3>\r
+<h3 id="_arbitrary_commands_for_specific_windows_for_window">4.11. Arbitrary commands for specific windows (for_window)</h3>\r
 <div class="paragraph"><p>With the <tt>for_window</tt> command, you can let i3 execute any command when it\r
 encounters a specific window. This can be used to set windows to floating or to\r
 change their border style, for example.</p></div>\r
@@ -614,7 +650,7 @@ for_window [title="x200: ~/work"] floating enable</tt></pre>
 <div class="paragraph"><p>The valid criteria are the same as those for commands, see <a href="#command_criteria">[command_criteria]</a>.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_variables">4.11. Variables</h3>\r
+<h3 id="_variables">4.12. Variables</h3>\r
 <div class="paragraph"><p>As you learned in the section about keyboard bindings, you will have\r
 to configure lots of bindings containing modifier keys. If you want to save\r
 yourself some typing and be able to change the modifier you use later,\r
@@ -630,14 +666,15 @@ variables can be handy.</p></div>
 <pre><tt>set $m Mod1\r
 bindsym $m+Shift+r restart</tt></pre>\r
 </div></div>\r
-<div class="paragraph"><p>Variables are directly replaced in the file when parsing. There is no fancy\r
-handling and there are absolutely no plans to change this. If you need a more\r
-dynamic configuration you should create a little script which generates a\r
-configuration file and run it before starting i3 (for example in your\r
-<tt>~/.xsession</tt> file).</p></div>\r
+<div class="paragraph"><p>Variables are directly replaced in the file when parsing. Variables expansion\r
+is not recursive so it is not possible to define a variable with a value\r
+containing another variable. There is no fancy handling and there are\r
+absolutely no plans to change this. If you need a more dynamic configuration\r
+you should create a little script which generates a configuration file and run\r
+it before starting i3 (for example in your <tt>~/.xsession</tt> file).</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_automatically_putting_clients_on_specific_workspaces">4.12. Automatically putting clients on specific workspaces</h3>\r
+<h3 id="_automatically_putting_clients_on_specific_workspaces">4.13. Automatically putting clients on specific workspaces</h3>\r
 <div class="paragraph" id="assign_workspace"><p>To automatically make a specific window show up on a specific workspace, you\r
 can use an <strong>assignment</strong>. You can match windows by using any criteria,\r
 see <a href="#command_criteria">[command_criteria]</a>. It is recommended that you match on window classes\r
@@ -648,6 +685,9 @@ starts up being named Firefox, and only when Vimperator is loaded does the
 title change. As i3 will get the title as soon as the application maps the\r
 window (mapping means actually displaying it on the screen), you’d need to have\r
 to match on <em>Firefox</em> in this case.</p></div>\r
+<div class="paragraph"><p>Assignments are processed by i3 in the order in which they appear in the config\r
+file. The first one which matches the window wins and later assignments are not\r
+considered.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
@@ -703,7 +743,7 @@ exec --no-startup-id i3-msg 'workspace 3; exec iceweasel; workspace 1'</tt></pre
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_automatically_starting_applications_on_i3_startup">4.13. Automatically starting applications on i3 startup</h3>\r
+<h3 id="_automatically_starting_applications_on_i3_startup">4.14. Automatically starting applications on i3 startup</h3>\r
 <div class="paragraph"><p>By using the <tt>exec</tt> keyword outside a keybinding, you can configure\r
 which commands will be performed by i3 on initial startup. <tt>exec</tt>\r
 commands will not run when restarting i3, if you need a command to run\r
@@ -727,7 +767,7 @@ exec --no-startup-id urxvt</tt></pre>
 <div class="paragraph"><p>The flag --no-startup-id is explained in <a href="#exec">[exec]</a>.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="workspace_screen">4.14. Automatically putting workspaces on specific screens</h3>\r
+<h3 id="workspace_screen">4.15. Automatically putting workspaces on specific screens</h3>\r
 <div class="paragraph"><p>If you assign clients to workspaces, it might be handy to put the\r
 workspaces on specific screens. Also, the assignment of workspaces to screens\r
 will determine which workspace i3 uses for a new screen when adding screens\r
@@ -751,7 +791,7 @@ workspace "2: vim" output VGA1</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_changing_colors">4.15. Changing colors</h3>\r
+<h3 id="_changing_colors">4.16. Changing colors</h3>\r
 <div class="paragraph"><p>You can change all colors which i3 uses to draw the window decorations.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
@@ -793,6 +833,15 @@ client.urgent
         A client which has its urgency hint activated.\r
 </p>\r
 </dd>\r
+<dt class="hdlist1">\r
+client.placeholder\r
+</dt>\r
+<dd>\r
+<p>\r
+        Background and text color are used to draw placeholder window contents\r
+        (when restoring layouts). Border and indicator are ignored.\r
+</p>\r
+</dd>\r
 </dl></div>\r
 <div class="paragraph"><p>You can also specify the color to be used to paint the background of the client\r
 windows. This color will be used to paint the window on top of which the client\r
@@ -803,10 +852,7 @@ will be rendered.</p></div>
 <pre><tt>client.background color</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Only clients that do not cover the whole area of this window expose the color\r
-used to paint it. If you use a color other than black for your terminals, you\r
-most likely want to set the client background color to the same color as your\r
-terminal program&#8217;s background color to avoid black gaps between the rendered\r
-area of the terminal and the i3 border.</p></div>\r
+used to paint it.</p></div>\r
 <div class="paragraph"><p>Colors are in HTML hex format (#rrggbb), see the following example:</p></div>\r
 <div class="paragraph"><p><strong>Examples (default colors)</strong>:</p></div>\r
 <div class="listingblock">\r
@@ -815,7 +861,8 @@ area of the terminal and the i3 border.</p></div>
 client.focused          #4c7899 #285577 #ffffff #2e9ef4\r
 client.focused_inactive #333333 #5f676a #ffffff #484e50\r
 client.unfocused        #333333 #222222 #888888 #292d2e\r
-client.urgent           #2f343a #900000 #ffffff #900000</tt></pre>\r
+client.urgent           #2f343a #900000 #ffffff #900000\r
+client.placeholder      #000000 #0c0c0c #ffffff #000000</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Note that for the window decorations, the color around the child window is the\r
 background color, and the border color is only the two thin lines at the top of\r
@@ -827,8 +874,8 @@ single windows within a split container, which are otherwise indistinguishable
 from single windows outside of a split container.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_interprocess_communication">4.16. Interprocess communication</h3>\r
-<div class="paragraph"><p>i3 uses unix sockets to provide an IPC interface. This allows third-party\r
+<h3 id="_interprocess_communication">4.17. Interprocess communication</h3>\r
+<div class="paragraph"><p>i3 uses Unix sockets to provide an IPC interface. This allows third-party\r
 programs to get information from i3, such as the current workspaces\r
 (to display a workspace bar), and to control i3.</p></div>\r
 <div class="paragraph"><p>The IPC socket is enabled by default and will be created in\r
@@ -849,7 +896,7 @@ user can create that directory.</p></div>
 the next section.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_focus_follows_mouse">4.17. Focus follows mouse</h3>\r
+<h3 id="_focus_follows_mouse">4.18. Focus follows mouse</h3>\r
 <div class="paragraph"><p>By default, window focus follows your mouse movements. However, if you have a\r
 setup where your mouse usually is in your way (like a touchpad on your laptop\r
 which you do not want to disable completely), you might want to disable <em>focus\r
@@ -868,7 +915,26 @@ links in your browser window).</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_popups_during_fullscreen_mode">4.18. Popups during fullscreen mode</h3>\r
+<h3 id="_mouse_warping">4.19. Mouse warping</h3>\r
+<div class="paragraph"><p>By default, when switching focus to a window on a different output (e.g.\r
+focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on\r
+LVDS-1), the mouse cursor is warped to the center of that window.</p></div>\r
+<div class="paragraph"><p>With the <tt>mouse_warping</tt> option, you can control when the mouse cursor should\r
+be warped. <tt>none</tt> disables warping entirely, whereas <tt>output</tt> is the default\r
+behavior described above.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mouse_warping &lt;output|none&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mouse_warping none</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_popups_during_fullscreen_mode">4.20. Popups during fullscreen mode</h3>\r
 <div class="paragraph"><p>When you are in fullscreen mode, some applications still open popup windows\r
 (take Xpdf for example). This is because these applications may not be aware\r
 that they are in fullscreen mode (they do not check the corresponding hint).\r
@@ -905,11 +971,11 @@ Leave fullscreen mode.
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_focus_wrapping">4.19. Focus wrapping</h3>\r
+<h3 id="_focus_wrapping">4.21. Focus wrapping</h3>\r
 <div class="paragraph"><p>When being in a tabbed or stacked container, the first container will be\r
 focused when you use <tt>focus down</tt> on the last container&#8201;&#8212;&#8201;the focus wraps. If\r
 however there is another stacked/tabbed container in that direction, focus will\r
-be set on that container. This is the default behaviour so you can navigate to\r
+be set on that container. This is the default behavior so you can navigate to\r
 all your windows without having to use <tt>focus parent</tt>.</p></div>\r
 <div class="paragraph"><p>If you want the focus to <strong>always</strong> wrap and you are aware of using <tt>focus\r
 parent</tt> to switch to different containers, you can use the\r
@@ -927,14 +993,14 @@ will always wrap.</p></div>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_forcing_xinerama">4.20. Forcing Xinerama</h3>\r
+<h3 id="_forcing_xinerama">4.22. Forcing Xinerama</h3>\r
 <div class="paragraph"><p>As explained in-depth in <a href="http://i3wm.org/docs/multi-monitor.html">http://i3wm.org/docs/multi-monitor.html</a>, some X11\r
 video drivers (especially the nVidia binary driver) only provide support for\r
 Xinerama instead of RandR. In such a situation, i3 must be told to use the\r
 inferior Xinerama API explicitly and therefore don’t provide support for\r
 reconfiguring your screens on the fly (they are read only once on startup and\r
 that’s it).</p></div>\r
-<div class="paragraph"><p>For people who do cannot modify their <tt>~/.xsession</tt> to add the\r
+<div class="paragraph"><p>For people who cannot modify their <tt>~/.xsession</tt> to add the\r
 <tt>--force-xinerama</tt> commandline parameter, a configuration option is provided:</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
@@ -950,7 +1016,7 @@ that’s it).</p></div>
 Xinerama, instead they are counted up, starting at 0: <tt>xinerama-0</tt>, <tt>xinerama-1</tt>, …</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_automatic_back_and_forth_when_switching_to_the_current_workspace">4.21. Automatic back-and-forth when switching to the current workspace</h3>\r
+<h3 id="_automatic_back_and_forth_when_switching_to_the_current_workspace">4.23. Automatic back-and-forth when switching to the current workspace</h3>\r
 <div class="paragraph"><p>This configuration directive enables automatic <tt>workspace back_and_forth</tt> (see\r
 <a href="#back_and_forth">[back_and_forth]</a>) when switching to the workspace that is currently focused.</p></div>\r
 <div class="paragraph"><p>For instance: Assume you are on workspace "1: www" and switch to "2: IM" using\r
@@ -968,10 +1034,10 @@ came from now, you can just press $mod+2 again to switch back to "1: www".</p></
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_delaying_urgency_hint_reset_on_workspace_change">4.22. Delaying urgency hint reset on workspace change</h3>\r
+<h3 id="_delaying_urgency_hint_reset_on_workspace_change">4.24. Delaying urgency hint reset on workspace change</h3>\r
 <div class="paragraph"><p>If an application on another workspace sets an urgency hint, switching to this\r
 workspace may lead to immediate focus of the application, which also means the\r
-window decoration color would be immediately resetted to <tt>client.focused</tt>. This\r
+window decoration color would be immediately reset to <tt>client.focused</tt>. This\r
 may make it unnecessarily hard to tell which window originally raised the\r
 event.</p></div>\r
 <div class="paragraph"><p>In order to prevent this, you can tell i3 to delay resetting the urgency state\r
@@ -1076,18 +1142,33 @@ have to have correct quoting etc.</p></div>
 </div>\r
 <div class="sect2">\r
 <h3 id="_display_mode">5.3. Display mode</h3>\r
-<div class="paragraph"><p>You can have i3bar either be visible permanently at one edge of the screen\r
-(<tt>dock</tt> mode) or make it show up when you press your modifier key (<tt>hide</tt>\r
+<div class="paragraph"><p>You can either have i3bar be visible permanently at one edge of the screen\r
+(<tt>dock</tt> mode) or make it show up when you press your modifier key (<tt>hide</tt> mode).\r
+It is also possible to force i3bar to always stay hidden (<tt>invisible</tt>\r
 mode). The modifier key can be configured using the <tt>modifier</tt> option.</p></div>\r
+<div class="paragraph"><p>The mode option can be changed during runtime through the <tt>bar mode</tt> command.\r
+On reload the mode will be reverted to its configured value.</p></div>\r
 <div class="paragraph"><p>The hide mode maximizes screen space that can be used for actual windows. Also,\r
 i3bar sends the <tt>SIGSTOP</tt> and <tt>SIGCONT</tt> signals to the statusline process to\r
 save battery power.</p></div>\r
-<div class="paragraph"><p>The default is dock mode; in hide mode, the default modifier is Mod4 (usually\r
-the windows key).</p></div>\r
+<div class="paragraph"><p>Invisible mode allows to permanently maximize screen space, as the bar is never\r
+shown. Thus, you can configure i3bar to not disturb you by popping up because\r
+of an urgency hint or because the modifier key is pressed.</p></div>\r
+<div class="paragraph"><p>In order to control whether i3bar is hidden or shown in hide mode, there exists\r
+the hidden_state option, which has no effect in dock mode or invisible mode. It\r
+indicates the current hidden_state of the bar: (1) The bar acts like in normal\r
+hide mode, it is hidden and is only unhidden in case of urgency hints or by\r
+pressing the modifier key (<tt>hide</tt> state), or (2) it is drawn on top of the\r
+currently visible workspace (<tt>show</tt> state).</p></div>\r
+<div class="paragraph"><p>Like the mode, the hidden_state can also be controlled through i3, this can be\r
+done by using the <tt>bar hidden_state</tt> command.</p></div>\r
+<div class="paragraph"><p>The default mode is dock mode; in hide mode, the default modifier is Mod4 (usually\r
+the windows key). The default value for the hidden_state is hide.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>mode &lt;dock|hide&gt;\r
+<pre><tt>mode &lt;dock|hide|invisible&gt;\r
+hidden_state &lt;hide|show&gt;\r
 modifier &lt;Modifier&gt;</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p><strong>Example</strong>:</p></div>\r
@@ -1095,13 +1176,53 @@ modifier &lt;Modifier&gt;</tt></pre>
 <div class="content">\r
 <pre><tt>bar {\r
     mode hide\r
+    hidden_state hide\r
     modifier Mod1\r
 }</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Available modifiers are Mod1-Mod5, Shift, Control (see <tt>xmodmap(1)</tt>).</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="i3bar_position">5.4. Position</h3>\r
+<h3 id="_mouse_button_commands">5.4. Mouse button commands</h3>\r
+<div class="paragraph"><p>Specifies a command to run when a button was pressed on i3bar to override the\r
+default behavior. Currently only the mouse wheel buttons are supported. This is\r
+useful for disabling the scroll wheel action or running scripts that implement\r
+custom behavior for these buttons.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>wheel_up_cmd &lt;command&gt;\r
+wheel_down_cmd &lt;command&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+    wheel_up_cmd nop\r
+    wheel_down_cmd exec ~/.i3/scripts/custom_wheel_down\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bar_id">5.5. Bar ID</h3>\r
+<div class="paragraph"><p>Specifies the bar ID for the configured bar instance. If this option is missing,\r
+the ID is set to <em>bar-x</em>, where x corresponds to the position of the embedding\r
+bar block in the config file (<em>bar-0</em>, <em>bar-1</em>, &#8230;).</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>id &lt;bar_id&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+    id bar-1\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="i3bar_position">5.6. Position</h3>\r
 <div class="paragraph"><p>This option determines in which edge of the screen i3bar should show up.</p></div>\r
 <div class="paragraph"><p>The default is bottom.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
@@ -1118,7 +1239,7 @@ modifier &lt;Modifier&gt;</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_output_s">5.5. Output(s)</h3>\r
+<h3 id="_output_s">5.7. Output(s)</h3>\r
 <div class="paragraph"><p>You can restrict i3bar to one or more outputs (monitors). The default is to\r
 handle all outputs. Restricting the outputs is useful for using different\r
 options for different outputs by using multiple <em>bar</em> blocks.</p></div>\r
@@ -1152,7 +1273,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_tray_output">5.6. Tray output</h3>\r
+<h3 id="_tray_output">5.8. Tray output</h3>\r
 <div class="paragraph"><p>i3bar by default provides a system tray area where programs such as\r
 NetworkManager, VLC, Pidgin, etc. can place little icons.</p></div>\r
 <div class="paragraph"><p>You can configure on which output (monitor) the icons should be displayed or\r
@@ -1185,7 +1306,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_font">5.7. Font</h3>\r
+<h3 id="_font">5.9. Font</h3>\r
 <div class="paragraph"><p>Specifies the font to be used in the bar. See <a href="#fonts">[fonts]</a>.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
@@ -1202,7 +1323,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_workspace_buttons">5.8. Workspace buttons</h3>\r
+<h3 id="_workspace_buttons">5.10. Workspace buttons</h3>\r
 <div class="paragraph"><p>Specifies whether workspace buttons should be shown or not. This is useful if\r
 you want to display a statusline-only bar containing additional information.</p></div>\r
 <div class="paragraph"><p>The default is to show workspace buttons.</p></div>\r
@@ -1220,7 +1341,50 @@ you want to display a statusline-only bar containing additional information.</p>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_colors">5.9. Colors</h3>\r
+<h3 id="_strip_workspace_numbers">5.11. Strip workspace numbers</h3>\r
+<div class="paragraph"><p>Specifies whether workspace numbers should be displayed within the workspace\r
+buttons. This is useful if you want to have a named workspace that stays in\r
+order on the bar according to its number without displaying the number prefix.</p></div>\r
+<div class="paragraph"><p>When <tt>strip_workspace_numbers</tt> is set to <tt>yes</tt>, any workspace that has a name of\r
+the form "[n]:[NAME]" will display only the name. You could use this, for\r
+instance, to display Roman numerals rather than digits by naming your\r
+workspaces to "1:I", "2:II", "3:III", "4:IV", &#8230;</p></div>\r
+<div class="paragraph"><p>The default is to display the full name within the workspace button.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>strip_workspace_numbers &lt;yes|no&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+    strip_workspace_numbers yes\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_binding_mode_indicator">5.12. Binding Mode indicator</h3>\r
+<div class="paragraph"><p>Specifies whether the current binding mode indicator should be shown or not.\r
+This is useful if you want to hide the workspace buttons but still be able\r
+to see the current binding mode indicator.\r
+For an example of a <tt>mode</tt> definition, see <a href="#resizingconfig">[resizingconfig]</a>.</p></div>\r
+<div class="paragraph"><p>The default is to show the mode indicator.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>binding_mode_indicator &lt;yes|no&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+    binding_mode_indicator no\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_colors">5.13. Colors</h3>\r
 <div class="paragraph"><p>As with i3, colors are in HTML hex format (#rrggbb). The following colors can\r
 be configured at the moment:</p></div>\r
 <div class="dlist"><dl>\r
@@ -1241,6 +1405,14 @@ statusline
 </p>\r
 </dd>\r
 <dt class="hdlist1">\r
+separator\r
+</dt>\r
+<dd>\r
+<p>\r
+        Text color to be used for the separator.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
 focused_workspace\r
 </dt>\r
 <dd>\r
@@ -1276,7 +1448,7 @@ urgent_workspace
 <dd>\r
 <p>\r
         Border, background and text color for a workspace button when the workspace\r
-        window with the urgency hint set.\r
+        contains a window with the urgency hint set. Also applies to <tt>mode</tt> indicators.\r
 </p>\r
 </dd>\r
 </dl></div>\r
@@ -1286,6 +1458,7 @@ urgent_workspace
 <pre><tt>colors {\r
     background &lt;color&gt;\r
     statusline &lt;color&gt;\r
+    separator &lt;color&gt;\r
 \r
     colorclass &lt;border&gt; &lt;background&gt; &lt;text&gt;\r
 }</tt></pre>\r
@@ -1297,6 +1470,7 @@ urgent_workspace
     colors {\r
         background #000000\r
         statusline #ffffff\r
+        separator #666666\r
 \r
         focused_workspace  #4c7899 #285577 #ffffff\r
         active_workspace   #333333 #5f676a #ffffff\r
@@ -1328,17 +1502,28 @@ the following keybinding:</p></div>
 <div class="content">\r
 <pre><tt>bindsym $mod+x move container to workspace 3; workspace 3</tt></pre>\r
 </div></div>\r
-<div class="paragraph" id="command_criteria"><p>Furthermore, you can change the scope of a command, that is, which containers\r
-should be affected by that command, by using various criteria. These are\r
-prefixed in square brackets to every command. If you want to kill all windows\r
-which have the class Firefox, use:</p></div>\r
+<div class="paragraph" id="command_criteria"><p>Furthermore, you can change the scope of a command - that is, which containers\r
+should be affected by that command, by using various criteria. The criteria\r
+are specified before any command in a pair of square brackets and are separated\r
+by space.</p></div>\r
+<div class="paragraph"><p>When using multiple commands, separate them by using a <tt>,</tt> (a comma) instead of\r
+a semicolon. Criteria apply only until the next semicolon, so if you use a\r
+semicolon to separate commands, only the first one will be executed for the\r
+matched window(s).</p></div>\r
 <div class="paragraph"><p><strong>Example</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>bindsym $mod+x [class="Firefox"] kill\r
+<pre><tt># if you want to kill all windows which have the class Firefox, use:\r
+bindsym $mod+x [class="Firefox"] kill\r
 \r
 # same thing, but case-insensitive\r
-bindsym $mod+x [class="(?i)firefox"] kill</tt></pre>\r
+bindsym $mod+x [class="(?i)firefox"] kill\r
+\r
+# kill only the About dialog from Firefox\r
+bindsym $mod+x [class="Firefox" window_role="About"] kill\r
+\r
+# enable floating mode and move container to workspace 4\r
+for_window [class="^evil-app$"] floating enable, move container to workspace 4</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p>The criteria which are currently implemented are:</p></div>\r
 <div class="dlist"><dl>\r
@@ -1466,16 +1651,19 @@ bindsym $mod+h split horizontal</tt></pre>
 </div>\r
 <div class="sect2">\r
 <h3 id="_manipulating_layout">6.3. Manipulating layout</h3>\r
-<div class="paragraph"><p>Use <tt>layout toggle split</tt>, <tt>layout stacking</tt> or <tt>layout tabbed</tt> to change the\r
-current container layout to splith/splitv, stacking or tabbed layout,\r
-respectively.</p></div>\r
-<div class="paragraph"><p>To make the current window (!) fullscreen, use <tt>fullscreen</tt>, to make\r
-it floating (or tiling again) use <tt>floating enable</tt> respectively <tt>floating disable</tt>\r
-(or <tt>floating toggle</tt>):</p></div>\r
+<div class="paragraph"><p>Use <tt>layout toggle split</tt>, <tt>layout stacking</tt>, <tt>layout tabbed</tt>, <tt>layout splitv</tt>\r
+or <tt>layout splith</tt> to change the current container layout to splith/splitv,\r
+stacking, tabbed layout, splitv or splith, respectively.</p></div>\r
+<div class="paragraph"><p>To make the current window (!) fullscreen, use <tt>fullscreen enable</tt> (or\r
+<tt>fullscreen enable global</tt> for the global mode), to leave either fullscreen\r
+mode use <tt>fullscreen disable</tt>, and to toggle between these two states use\r
+<tt>fullscreen toggle</tt> (or <tt>fullscreen toggle global</tt>).</p></div>\r
+<div class="paragraph"><p>Likewise, to make the current window floating (or tiling again) use <tt>floating\r
+enable</tt> respectively <tt>floating disable</tt> (or <tt>floating toggle</tt>):</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>layout &lt;tabbed|stacking&gt;\r
+<pre><tt>layout &lt;default|tabbed|stacking|splitv|splith&gt;\r
 layout toggle [split|all]</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
@@ -1492,7 +1680,7 @@ bindsym $mod+x layout toggle
 bindsym $mod+x layout toggle all\r
 \r
 # Toggle fullscreen\r
-bindsym $mod+f fullscreen\r
+bindsym $mod+f fullscreen toggle\r
 \r
 # Toggle floating/tiling\r
 bindsym $mod+t floating toggle</tt></pre>\r
@@ -1618,6 +1806,9 @@ container to the next/previous workspace and <tt>move container to workspace cur
 (the last one makes sense only when used with criteria).</p></div>\r
 <div class="paragraph"><p>See <a href="#move_to_outputs">[move_to_outputs]</a> for how to move a container/workspace to a different\r
 RandR output.</p></div>\r
+<div class="paragraph"><p>Workspace names are parsed as\r
+<a href="https://developer.gnome.org/pango/stable/PangoMarkupFormat.html">Pango markup</a>\r
+by i3bar.</p></div>\r
 <div class="paragraph" id="back_and_forth"><p>To switch back to the previously focused workspace, use <tt>workspace\r
 back_and_forth</tt>; likewise, you can move containers to the previously focused\r
 workspace using <tt>move container to workspace back_and_forth</tt>.</p></div>\r
@@ -1638,6 +1829,7 @@ move [window|container] [to] workspace &lt;prev|next|current&gt;</tt></pre>
 <div class="content">\r
 <pre><tt>bindsym $mod+1 workspace 1\r
 bindsym $mod+2 workspace 2\r
+bindsym $mod+3 workspace 3:&lt;span foreground="red"&gt;vim&lt;/span&gt;\r
 ...\r
 \r
 bindsym $mod+Shift+1 move container to workspace 1\r
@@ -1687,7 +1879,7 @@ specify a default name if there&#8217;s currently no workspace starting with a "
 <div class="paragraph"><p>You can rename workspaces. This might be useful to start with the default\r
 numbered workspaces, do your work, and rename the workspaces afterwards to\r
 reflect what’s actually on them. You can also omit the old name to rename\r
-the currently focused workspace. This is handy if you wan&#8217;t to use the\r
+the currently focused workspace. This is handy if you want to use the\r
 rename command with <tt>i3-input</tt>.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
@@ -1702,7 +1894,7 @@ rename workspace to &lt;new_name&gt;</tt></pre>
 i3-msg 'rename workspace 1 to "1: www"'\r
 i3-msg 'rename workspace "1: www" to "10: www"'\r
 i3-msg 'rename workspace to "2: mail"\r
-bindsym $mod+r exec i3-input -F 'rename workspace to %s' -P 'New name: '</tt></pre>\r
+bindsym $mod+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '</tt></pre>\r
 </div></div>\r
 </div>\r
 </div>\r
@@ -1740,7 +1932,7 @@ bindsym $mod+x move container to output VGA1</tt></pre>
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>resize &lt;grow|shrink&gt; &lt;direction&gt; [&lt;px&gt; px] [or &lt;ppt&gt; ppt]</tt></pre>\r
+<pre><tt>resize &lt;grow|shrink&gt; &lt;direction&gt; [&lt;px&gt; px [or &lt;ppt&gt; ppt]]</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Direction can either be one of <tt>up</tt>, <tt>down</tt>, <tt>left</tt> or <tt>right</tt>. Or you can be\r
 less specific and use <tt>width</tt> or <tt>height</tt>, in which case i3 will take/give\r
@@ -1785,7 +1977,7 @@ bindsym $mod+r mode "resize"</tt></pre>
 <div class="paragraph"><p>Often when in a multi-monitor environment, you want to quickly jump to a\r
 specific window. For example, while working on workspace 3 you may want to\r
 jump to your mail client to email your boss that you’ve achieved some\r
-important goal. Instead of figuring out how to navigate to your mailclient,\r
+important goal. Instead of figuring out how to navigate to your mail client,\r
 it would be more convenient to have a shortcut. You can use the <tt>focus</tt> command\r
 with criteria for that.</p></div>\r
 <div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
@@ -1806,9 +1998,10 @@ bindsym $mod+a [class="urxvt" title="VIM"] focus</tt></pre>
 <div class="paragraph" id="vim_like_marks"><p>This feature is like the jump feature: It allows you to directly jump to a\r
 specific window (this means switching to the appropriate workspace and setting\r
 focus to the windows). However, you can directly mark a specific window with\r
-an arbitrary label and use it afterwards.  You do not need to ensure that your\r
-windows have unique classes or titles, and you do not need to change your\r
-configuration file.</p></div>\r
+an arbitrary label and use it afterwards. You can unmark the label in the same\r
+way, using the unmark command. If you don&#8217;t specify a label, unmark removes all\r
+marks. You do not need to ensure that your windows have unique classes or\r
+titles, and you do not need to change your configuration file.</p></div>\r
 <div class="paragraph"><p>As the command needs to include the label with which you want to mark the\r
 window, you cannot simply bind it to a key.  <tt>i3-input</tt> is a tool created\r
 for this purpose: It lets you input a command and sends the command to i3. It\r
@@ -1817,13 +2010,15 @@ can also prefix this command and display a custom prompt for the input dialog.</
 <div class="listingblock">\r
 <div class="content">\r
 <pre><tt>mark identifier\r
-[con_mark="identifier"] focus</tt></pre>\r
+[con_mark="identifier"] focus\r
+unmark identifier</tt></pre>\r
 </div></div>\r
 <div class="paragraph"><p><strong>Example (in a terminal)</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
 <pre><tt>$ i3-msg mark irssi\r
-$ i3-msg '[con_mark="irssi"] focus'</tt></pre>\r
+$ i3-msg '[con_mark="irssi"] focus'\r
+$ i3-msg unmark irssi</tt></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
@@ -1841,7 +2036,49 @@ bindsym $mod+u border none</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="stack-limit">6.12. Reloading/Restarting/Exiting</h3>\r
+<h3 id="shmlog">6.12. Enabling shared memory logging</h3>\r
+<div class="paragraph"><p>As described in <a href="http://i3wm.org/docs/debugging.html">http://i3wm.org/docs/debugging.html</a>, i3 can log to a shared\r
+memory buffer, which you can dump using <tt>i3-dump-log</tt>. The <tt>shmlog</tt> command\r
+allows you to enable or disable the shared memory logging at runtime.</p></div>\r
+<div class="paragraph"><p>Note that when using <tt>shmlog &lt;size_in_bytes&gt;</tt>, the current log will be\r
+discarded and a new one will be started.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>shmlog &lt;size_in_bytes&gt;\r
+shmlog &lt;on|off|toggle&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Enable/disable logging\r
+bindsym $mod+x shmlog toggle\r
+\r
+# or, from a terminal:\r
+# increase the shared memory log buffer to 50 MiB\r
+i3-msg shmlog $((50*1024*1024))</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_enabling_debug_logging">6.13. Enabling debug logging</h3>\r
+<div class="paragraph"><p>The <tt>debuglog</tt> command allows you to enable or disable debug logging at\r
+runtime. Debug logging is much more verbose than non-debug logging. This\r
+command does not activate shared memory logging (shmlog), and as such is most\r
+likely useful in combination with the above-described <a href="#shmlog">[shmlog]</a> command.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>debuglog &lt;on|off|toggle&gt;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Enable/disable logging\r
+bindsym $mod+x debuglog toggle</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_reloading_restarting_exiting">6.14. Reloading/Restarting/Exiting</h3>\r
 <div class="paragraph"><p>You can make i3 reload its configuration file with <tt>reload</tt>. You can also\r
 restart i3 inplace with the <tt>restart</tt> command to get it out of some weird state\r
 (if that should ever happen) or to perform an upgrade without having to restart\r
@@ -1856,7 +2093,7 @@ bindsym $mod+Shift+e exit</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_scratchpad">6.13. Scratchpad</h3>\r
+<h3 id="_scratchpad">6.15. Scratchpad</h3>\r
 <div class="paragraph"><p>There are two commands to use any existing window as scratchpad window. <tt>move\r
 scratchpad</tt> will move a window to the scratchpad workspace. This will make it\r
 invisible until you show it again. There is no way to open that workspace.\r
@@ -1890,6 +2127,38 @@ bindsym $mod+minus scratchpad show
 bindsym mod4+s [title="^Sup ::"] scratchpad show</tt></pre>\r
 </div></div>\r
 </div>\r
+<div class="sect2">\r
+<h3 id="_i3bar_control">6.16. i3bar control</h3>\r
+<div class="paragraph"><p>There are two options in the configuration of each i3bar instance that can be\r
+changed during runtime by invoking a command through i3. The commands <tt>bar\r
+hidden_state</tt> and <tt>bar mode</tt> allow setting the current hidden_state\r
+respectively mode option of each bar. It is also possible to toggle between\r
+hide state and show state as well as between dock mode and hide mode. Each\r
+i3bar instance can be controlled individually by specifying a bar_id, if none\r
+is given, the command is executed for all bar instances.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar hidden_state hide|show|toggle [&lt;bar_id&gt;]\r
+\r
+bar mode dock|hide|invisible|toggle [&lt;bar_id&gt;]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Toggle between hide state and show state\r
+bindsym $mod+m bar hidden_state toggle\r
+\r
+# Toggle between dock mode and hide mode\r
+bindsym $mod+n bar mode toggle\r
+\r
+# Set the bar instance with id 'bar-1' to switch to hide mode\r
+bindsym $mod+b bar mode hide bar-1\r
+\r
+# Set the bar instance with id 'bar-1' to always stay hidden\r
+bindsym $mod+Shift+b bar mode invisible bar-1</tt></pre>\r
+</div></div>\r
+</div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r