i3 stores all information about the X11 outputs, workspaces and layout of the
windows on them in a tree. The root node is the X11 root window, followed by
the X11 outputs, then dock areas and a content container, then workspaces and
-finally the windows themselve. In previous versions of i3 we had multiple lists
+finally the windows themselves. In previous versions of i3 we had multiple lists
(of outputs, workspaces) and a table for each workspace. That approach turned
out to be complicated to use (snapping), understand and implement.
*Example*:
-------------------------------------------------
-status_command i3status --config ~/.i3status.conf
+bar {
+ status_command i3status --config ~/.i3status.conf
+}
-------------------------------------------------
=== Display mode
*Example*:
----------------
-mode hide
+bar {
+ mode hide
+}
----------------
=== Position
*Example*:
---------------------
-position top
+bar {
+ position top
+}
---------------------
=== Output(s)
handle all outputs. Restricting the outputs is useful for using different
options for different outputs by using multiple 'bar' blocks.
+To make a particular i3bar instance handle multiple outputs, specify the output
+directive multiple times.
+
*Syntax*:
---------------
output <output>
-------------------------------
# big monitor: everything
bar {
- output HDMI2
- status_command i3status
+ # The display is connected either via HDMI or via DisplayPort
+ output HDMI2
+ output DP2
+ status_command i3status
}
# laptop monitor: bright colors and i3status with less modules.
bar {
- output LVDS1
- status_command i3status --config ~/.i3status-small.conf
- colors {
- background #000000
- statusline #ffffff
- }
+ output LVDS1
+ status_command i3status --config ~/.i3status-small.conf
+ colors {
+ background #000000
+ statusline #ffffff
+ }
}
-------------------------------
*Example*:
-------------------------
# disable system tray
-tray_output none
+bar {
+ tray_output none
+}
# show tray icons on the big monitor
-tray_output HDMI2
+bar {
+ tray_output HDMI2
+}
-------------------------
=== Font
*Example*:
--------------------------------------------------------------
-font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+bar {
+ font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+}
--------------------------------------------------------------
=== Workspace buttons
*Example*:
--------------------
-workspace_buttons no
+bar {
+ workspace_buttons no
+}
--------------------
=== Colors
*Example*:
--------------------------------------
-colors {
- background #000000
- statusline #ffffff
-
- focused_workspace #ffffff #285577
- active_workspace #ffffff #333333
- inactive_workspace #888888 #222222
- urgent_workspace #ffffff #900000
+bar {
+ colors {
+ background #000000
+ statusline #ffffff
+
+ focused_workspace #ffffff #285577
+ active_workspace #ffffff #333333
+ inactive_workspace #888888 #222222
+ urgent_workspace #ffffff #900000
+ }
}
--------------------------------------
bindsym mod+g exec gimp
# Start the terminal emulator urxvt which is not yet startup-notification-aware
-bindsym mod+enter exec --no-startup-id urxvt
+bindsym mod+Return exec --no-startup-id urxvt
------------------------------
The +--no-startup-id+ parameter disables startup-notification support for this
<div class="paragraph"><p>i3 stores all information about the X11 outputs, workspaces and layout of the\r
windows on them in a tree. The root node is the X11 root window, followed by\r
the X11 outputs, then dock areas and a content container, then workspaces and\r
-finally the windows themselve. In previous versions of i3 we had multiple lists\r
+finally the windows themselves. In previous versions of i3 we had multiple lists\r
(of outputs, workspaces) and a table for each workspace. That approach turned\r
out to be complicated to use (snapping), understand and implement.</p></div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>status_command i3status --config ~/.i3status.conf</tt></pre>\r
+<pre><tt>bar {\r
+ status_command i3status --config ~/.i3status.conf\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>mode hide</tt></pre>\r
+<pre><tt>bar {\r
+ mode hide\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>position top</tt></pre>\r
+<pre><tt>bar {\r
+ position top\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\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
+<div class="paragraph"><p>To make a particular i3bar instance handle multiple outputs, specify the output\r
+directive multiple times.</p></div>\r
<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt># big monitor: everything\r
bar {\r
- output HDMI2\r
- status_command i3status\r
+ # The display is connected either via HDMI or via DisplayPort\r
+ output HDMI2\r
+ output DP2\r
+ status_command i3status\r
}\r
\r
# laptop monitor: bright colors and i3status with less modules.\r
bar {\r
- output LVDS1\r
- status_command i3status --config ~/.i3status-small.conf\r
- colors {\r
- background #000000\r
- statusline #ffffff\r
- }\r
+ output LVDS1\r
+ status_command i3status --config ~/.i3status-small.conf\r
+ colors {\r
+ background #000000\r
+ statusline #ffffff\r
+ }\r
}</tt></pre>\r
</div></div>\r
</div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt># disable system tray\r
-tray_output none\r
+bar {\r
+ tray_output none\r
+}\r
\r
# show tray icons on the big monitor\r
-tray_output HDMI2</tt></pre>\r
+bar {\r
+ tray_output HDMI2\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1</tt></pre>\r
+<pre><tt>bar {\r
+ font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>workspace_buttons no</tt></pre>\r
+<pre><tt>bar {\r
+ workspace_buttons no\r
+}</tt></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>colors {\r
- background #000000\r
- statusline #ffffff\r
+<pre><tt>bar {\r
+ colors {\r
+ background #000000\r
+ statusline #ffffff\r
\r
- focused_workspace #ffffff #285577\r
- active_workspace #ffffff #333333\r
- inactive_workspace #888888 #222222\r
- urgent_workspace #ffffff #900000\r
+ focused_workspace #ffffff #285577\r
+ active_workspace #ffffff #333333\r
+ inactive_workspace #888888 #222222\r
+ urgent_workspace #ffffff #900000\r
+ }\r
}</tt></pre>\r
</div></div>\r
</div>\r
bindsym mod+g exec gimp\r
\r
# Start the terminal emulator urxvt which is not yet startup-notification-aware\r
-bindsym mod+enter exec --no-startup-id urxvt</tt></pre>\r
+bindsym mod+Return exec --no-startup-id urxvt</tt></pre>\r
</div></div>\r
<div class="paragraph"><p>The <tt>--no-startup-id</tt> parameter disables startup-notification support for this\r
particular exec command. With startup-notification, i3 can make sure that a\r