]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/userguide.html
add 4.10 release
[i3/i3.github.io] / docs / userguide.html
index b2039783ec773f7cb2ac3be6ed64a817922a7dc4..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
@@ -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
@@ -205,7 +206,8 @@ to upgrade to a newer version of i3) you can use <tt>$mod+Shift+r</tt>.</p></div
 </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
@@ -218,7 +220,8 @@ hint and are opened in floating mode by default.</p></div>
 <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
@@ -261,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
@@ -317,13 +320,13 @@ 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
@@ -429,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
@@ -468,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
@@ -491,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
@@ -512,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
@@ -530,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
@@ -545,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
@@ -573,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
@@ -589,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
@@ -615,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
@@ -631,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
@@ -707,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
@@ -731,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
@@ -755,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
@@ -797,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
@@ -816,7 +861,8 @@ used to paint it.</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
@@ -828,7 +874,7 @@ 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
+<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
@@ -850,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
@@ -869,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
@@ -906,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
@@ -928,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
@@ -951,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
@@ -969,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
@@ -1118,7 +1183,28 @@ modifier &lt;Modifier&gt;</tt></pre>
 <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="_bar_id">5.4. Bar ID</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
@@ -1136,7 +1222,7 @@ bar block in the config file (<em>bar-0</em>, <em>bar-1</em>, &#8230;).</p></div
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="i3bar_position">5.5. Position</h3>\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
@@ -1153,7 +1239,7 @@ bar block in the config file (<em>bar-0</em>, <em>bar-1</em>, &#8230;).</p></div
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_output_s">5.6. 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
@@ -1187,7 +1273,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_tray_output">5.7. 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
@@ -1220,7 +1306,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_font">5.8. 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
@@ -1237,7 +1323,7 @@ bar {
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_workspace_buttons">5.9. 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
@@ -1255,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.10. 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
@@ -1319,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
@@ -1374,16 +1503,27 @@ the following keybinding:</p></div>
 <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
+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
@@ -1514,9 +1654,12 @@ bindsym $mod+h split horizontal</tt></pre>
 <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</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>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
@@ -1537,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
@@ -1663,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
@@ -1683,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
@@ -1732,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
@@ -1747,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
@@ -1923,56 +2070,50 @@ likely useful in combination with the above-described <a href="#shmlog">[shmlog]
 <div class="content">\r
 <pre><tt>debuglog &lt;on|off|toggle&gt;</tt></pre>\r
 </div></div>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_strong_examples_strong">7. <strong>Examples</strong>:</h2>\r
-<div class="sectionbody">\r
-<div class="paragraph"><p># Enable/disable logging\r
-bindsym $mod+x debuglog toggle</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>=== Reloading/Restarting/Exiting\r
-\r
-You can make i3 reload its configuration file with +reload+. You can also\r
-restart i3 inplace with the +restart+ 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
-your X session. To exit i3 properly, you can use the +exit+ command,\r
-however you don’t need to (simply killing your X session is fine as well).\r
-\r
-*Examples*:</tt></pre>\r
+<pre><tt># Enable/disable logging\r
+bindsym $mod+x debuglog toggle</tt></pre>\r
 </div></div>\r
-<div class="paragraph"><p>bindsym $mod+Shift+r restart\r
-bindsym $mod+Shift+w reload\r
-bindsym $mod+Shift+e exit</p></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
+your X session. To exit i3 properly, you can use the <tt>exit</tt> command,\r
+however you don’t need to (simply killing your X session is fine as well).</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>=== Scratchpad\r
-\r
-There are two commands to use any existing window as scratchpad window. +move\r
-scratchpad+ will move a window to the scratchpad workspace. This will make it\r
+<pre><tt>bindsym $mod+Shift+r restart\r
+bindsym $mod+Shift+w reload\r
+bindsym $mod+Shift+e exit</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\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
-Instead, when using +scratchpad show+, the window will be shown again, as a\r
-floating window, centered on your current workspace (using +scratchpad show+ on\r
+Instead, when using <tt>scratchpad show</tt>, the window will be shown again, as a\r
+floating window, centered on your current workspace (using <tt>scratchpad show</tt> on\r
 a visible scratchpad window will make it hidden again, so you can have a\r
 keybinding to toggle). Note that this is just a normal floating window, so if\r
 you want to "remove it from scratchpad", you can simple make it tiling again\r
-(+floating toggle+).\r
-\r
-As the name indicates, this is useful for having a window with your favorite\r
+(<tt>floating toggle</tt>).</p></div>\r
+<div class="paragraph"><p>As the name indicates, this is useful for having a window with your favorite\r
 editor always at hand. However, you can also use this for other permanently\r
 running applications which you don’t want to see all the time: Your music\r
-player, alsamixer, maybe even your mail client…?\r
+player, alsamixer, maybe even your mail client…?</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move scratchpad\r
 \r
-*Syntax*:</tt></pre>\r
+scratchpad show</tt></pre>\r
 </div></div>\r
-<div class="paragraph"><p>move scratchpad</p></div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_scratchpad_show">8. scratchpad show</h2>\r
-<div class="sectionbody">\r
 <div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
@@ -1985,8 +2126,9 @@ bindsym $mod+minus scratchpad show
 # Show the sup-mail scratchpad window, if any.\r
 bindsym mod4+s [title="^Sup ::"] scratchpad show</tt></pre>\r
 </div></div>\r
+</div>\r
 <div class="sect2">\r
-<h3 id="_i3bar_control">8.1. i3bar control</h3>\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
@@ -2020,7 +2162,7 @@ bindsym $mod+Shift+b bar mode invisible bar-1</tt></pre>
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="multi_monitor">9. Multiple monitors</h2>\r
+<h2 id="multi_monitor">7. Multiple monitors</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>As you can see in the goal list on the website, i3 was specifically developed\r
 with support for multiple monitors in mind. This section will explain how to\r
@@ -2043,7 +2185,7 @@ create an unlimited number of workspaces in i3 and tie them to specific
 screens, you can have the "traditional" approach of having X workspaces per\r
 screen by changing your configuration (using modes, for example).</p></div>\r
 <div class="sect2">\r
-<h3 id="_configuring_your_monitors">9.1. Configuring your monitors</h3>\r
+<h3 id="_configuring_your_monitors">7.1. Configuring your monitors</h3>\r
 <div class="paragraph"><p>To help you get going if you have never used multiple monitors before, here is\r
 a short overview of the xrandr options which will probably be of interest to\r
 you. It is always useful to get an overview of the current screen configuration.\r
@@ -2106,7 +2248,7 @@ only what you can see in xrandr.</p></div>
 <div class="paragraph"><p>See also <a href="#presentations">[presentations]</a> for more examples of multi-monitor setups.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_interesting_configuration_for_multi_monitor_environments">9.2. Interesting configuration for multi-monitor environments</h3>\r
+<h3 id="_interesting_configuration_for_multi_monitor_environments">7.2. Interesting configuration for multi-monitor environments</h3>\r
 <div class="paragraph"><p>There are several things to configure in i3 which may be interesting if you\r
 have more than one monitor:</p></div>\r
 <div class="olist arabic"><ol class="arabic">\r
@@ -2143,10 +2285,10 @@ For information on how to move existing workspaces between monitors,
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_i3_and_the_rest_of_your_software_world">10. i3 and the rest of your software world</h2>\r
+<h2 id="_i3_and_the_rest_of_your_software_world">8. i3 and the rest of your software world</h2>\r
 <div class="sectionbody">\r
 <div class="sect2">\r
-<h3 id="_displaying_a_status_line">10.1. Displaying a status line</h3>\r
+<h3 id="_displaying_a_status_line">8.1. Displaying a status line</h3>\r
 <div class="paragraph"><p>A very common thing amongst users of exotic window managers is a status line at\r
 some corner of the screen. It is an often superior replacement to the widget\r
 approach you have in the task bar of a traditional desktop environment.</p></div>\r
@@ -2163,14 +2305,14 @@ on which hint the application sets. With i3bar, you can configure its position,
 see <a href="#i3bar_position">[i3bar_position]</a>.</p></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_giving_presentations_multi_monitor">10.2. Giving presentations (multi-monitor)</h3>\r
+<h3 id="_giving_presentations_multi_monitor">8.2. Giving presentations (multi-monitor)</h3>\r
 <div class="paragraph"><p>When giving a presentation, you typically want the audience to see what you see\r
 on your screen and then go through a series of slides (if the presentation is\r
 simple). For more complex presentations, you might want to have some notes\r
 which only you can see on your screen, while the audience can only see the\r
 slides.</p></div>\r
 <div class="sect3">\r
-<h4 id="presentations">10.2.1. Case 1: everybody gets the same output</h4>\r
+<h4 id="presentations">8.2.1. Case 1: everybody gets the same output</h4>\r
 <div class="paragraph"><p>This is the simple case. You connect your computer to the video projector,\r
 turn on both (computer and video projector) and configure your X server to\r
 clone the internal flat panel of your computer to the video output:</p></div>\r
@@ -2183,7 +2325,7 @@ your screen will be left untouched (it will show the X background). So, in
 our example, this would be 1024x768 (my notebook has 1280x800).</p></div>\r
 </div>\r
 <div class="sect3">\r
-<h4 id="_case_2_you_can_see_more_than_your_audience">10.2.2. Case 2: you can see more than your audience</h4>\r
+<h4 id="_case_2_you_can_see_more_than_your_audience">8.2.2. Case 2: you can see more than your audience</h4>\r
 <div class="paragraph"><p>This case is a bit harder. First of all, you should configure the VGA output\r
 somewhere near your internal flat panel, say right of it:</p></div>\r
 <div class="listingblock">\r