1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <link rel="icon" type="image/x-icon" href="/favicon.ico">
\r
6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
\r
7 <meta name="generator" content="AsciiDoc 8.6.8" />
\r
8 <title>i3: i3(1)</title>
\r
9 <link rel="stylesheet" href="/css/style.css" type="text/css" />
\r
10 <link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />
\r
11 <script type="text/javascript">
\r
13 document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);
\r
16 <script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>
\r
18 <body class="article">
\r
21 <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>
\r
23 <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>
\r
24 <li><a href="/screenshots">Screens</a></li>
\r
25 <li><a href="https://faq.i3wm.org/">FAQ</a></li>
\r
26 <li><a href="/contact">Contact</a></li>
\r
27 <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>
\r
29 <br style="clear: both">
\r
33 <span id="author">Michael Stapelberg</span><br />
\r
34 <span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />
\r
35 <span id="revnumber">version 4.0,</span>
\r
36 <span id="revdate">July 2011</span>
\r
38 <div id="toctitle">Table of Contents</div>
39 <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
43 <h2 id="_name">1. NAME</h2>
\r
44 <div class="sectionbody">
\r
45 <div class="paragraph"><p>i3 - an improved dynamic, tiling window manager</p></div>
\r
49 <h2 id="_synopsis">2. SYNOPSIS</h2>
\r
50 <div class="sectionbody">
\r
51 <div class="paragraph"><p>i3 [-a] [-c configfile] [-C] [-d <loglevel>] [-v] [-V]</p></div>
\r
55 <h2 id="_options">3. OPTIONS</h2>
\r
56 <div class="sectionbody">
\r
57 <div class="dlist"><dl>
\r
58 <dt class="hdlist1">
\r
66 <dt class="hdlist1">
\r
71 Specifies an alternate configuration file path.
\r
74 <dt class="hdlist1">
\r
79 Check the configuration file for validity and exit.
\r
82 <dt class="hdlist1">
\r
87 Specifies the debug loglevel. To see the most output, use -d all.
\r
90 <dt class="hdlist1">
\r
95 Display version number (and date of the last commit).
\r
98 <dt class="hdlist1">
\r
109 <div class="sect1">
\r
110 <h2 id="_description">4. DESCRIPTION</h2>
\r
111 <div class="sectionbody">
\r
112 <div class="sect2">
\r
113 <h3 id="_introduction">4.1. INTRODUCTION</h3>
\r
114 <div class="paragraph"><p>i3 was created because wmii, our favorite window manager at the time, didn’t
\r
115 provide some features we wanted (multi-monitor done right, for example), had
\r
116 some bugs, didn’t progress since quite some time and wasn’t easy to hack at all
\r
117 (source code comments/documentation completely lacking). Still, we think the
\r
118 wmii developers and contributors did a great job. Thank you for inspiring us to
\r
119 create i3.</p></div>
\r
120 <div class="paragraph"><p>Please be aware that i3 is primarily targeted at advanced users and developers.</p></div>
\r
122 <div class="sect2">
\r
123 <h3 id="_important_note_to_nvidia_binary_driver_users">4.2. IMPORTANT NOTE TO nVidia BINARY DRIVER USERS</h3>
\r
124 <div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)
\r
125 you need to use the <tt>--force-xinerama</tt> flag (in your ~/.xsession) when starting
\r
126 i3, like so:</p></div>
\r
127 <div class="listingblock">
\r
128 <div class="content">
\r
129 <pre><tt>exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1</tt></pre>
\r
131 <div class="paragraph"><p>See also docs/multi-monitor for the full explanation.</p></div>
\r
133 <div class="sect2">
\r
134 <h3 id="_terminology">4.3. TERMINOLOGY</h3>
\r
135 <div class="dlist"><dl>
\r
136 <dt class="hdlist1">
\r
141 i3 keeps your layout in a tree data structure.
\r
144 <dt class="hdlist1">
\r
149 An X11 window, like the Firefox browser window or a terminal emulator.
\r
152 <dt class="hdlist1">
\r
157 A split container contains multiple other split containers or windows.
\r
159 <div class="paragraph"><p>Containers can be used in various layouts. The default mode is called "default"
\r
160 and just resizes each client equally so that it fits.</p></div>
\r
162 <dt class="hdlist1">
\r
167 A workspace is a set of containers. Other window managers call this "Virtual
\r
170 <div class="paragraph"><p>In i3, each workspace is assigned to a specific virtual screen. By default,
\r
171 screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you
\r
172 create a new workspace (by simply switching to it), it’ll be assigned the
\r
173 screen you are currently on.</p></div>
\r
175 <dt class="hdlist1">
\r
180 Using XRandR, you can have an X11 screen spanning multiple real monitors.
\r
181 Furthermore, you can set them up in cloning mode or with positions (monitor 1
\r
182 is left of monitor 2).
\r
184 <div class="paragraph"><p>i3 uses the RandR API to query which outputs are available and which screens
\r
185 are connected to these outputs.</p></div>
\r
191 <div class="sect1">
\r
192 <h2 id="_keybindings">5. KEYBINDINGS</h2>
\r
193 <div class="sectionbody">
\r
194 <div class="paragraph"><p>Here is a short overview of the default keybindings:</p></div>
\r
195 <div class="dlist"><dl>
\r
196 <dt class="hdlist1">
\r
201 Direction keys (left, down, up, right). They are on your homerow (see the mark
\r
202 on your "j" key). Alternatively, you can use the cursor keys.
\r
205 <dt class="hdlist1">
\r
206 Mod1+<direction>
\r
210 Focus window in <direction>.
\r
213 <dt class="hdlist1">
\r
214 Mod1+Shift+<direction>
\r
218 Move window to <direction>.
\r
221 <dt class="hdlist1">
\r
222 Mod1+<number>
\r
226 Switch to workspace <number>.
\r
229 <dt class="hdlist1">
\r
230 Mod1+Shift+<number>
\r
234 Move window to workspace <number>.
\r
237 <dt class="hdlist1">
\r
242 Toggle fullscreen mode.
\r
245 <dt class="hdlist1">
\r
250 Enable stacking layout for the current container.
\r
253 <dt class="hdlist1">
\r
258 Enable default layout for the current container.
\r
261 <dt class="hdlist1">
\r
266 Enable tabbed layout for the current container.
\r
269 <dt class="hdlist1">
\r
274 Toggle tiling/floating for the current container.
\r
277 <dt class="hdlist1">
\r
282 Select the first tiling container if the current container is floating and
\r
286 <dt class="hdlist1">
\r
291 Kills the current window. This is equivalent to "clicking on the close button",
\r
292 meaning a polite request to the application to close this window. For example,
\r
293 Firefox will save its session upon such a request. If the application does not
\r
294 support that, the window will be killed and it depends on the application what
\r
298 <dt class="hdlist1">
\r
303 Restarts i3 in place. Your layout will be preserved.
\r
306 <dt class="hdlist1">
\r
317 <div class="sect1">
\r
318 <h2 id="_files">6. FILES</h2>
\r
319 <div class="sectionbody">
\r
320 <div class="sect2">
\r
321 <h3 id="_i3_config_or_config_i3_config">6.1. ~/.i3/config (or ~/.config/i3/config)</h3>
\r
322 <div class="paragraph"><p>When starting, i3 looks for configuration files in the following order:</p></div>
\r
323 <div class="olist arabic"><ol class="arabic">
\r
326 ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)
\r
331 /etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)
\r
345 <div class="paragraph"><p>You can specify a custom path using the -c option.</p></div>
\r
346 <div class="listingblock">
\r
347 <div class="title">Sample configuration</div>
\r
348 <div class="content">
\r
349 <pre><tt># i3 config file (v4)
\r
351 # font for window titles. ISO 10646 = Unicode
\r
352 font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
\r
354 # use Mouse+Mod1 to drag floating windows to their wanted position
\r
355 floating_modifier Mod1
\r
358 bindsym Mod1+Return exec /usr/bin/urxvt
\r
360 # kill focused window
\r
361 bindsym Mod1+Shift+q kill
\r
363 # start dmenu (a program launcher)
\r
364 bindsym Mod1+d exec /usr/bin/dmenu_run
\r
367 bindsym Mod1+j focus left
\r
368 bindsym Mod1+k focus down
\r
369 bindsym Mod1+l focus up
\r
370 bindsym Mod1+semicolon focus right
\r
372 # alternatively, you can use the cursor keys:
\r
373 bindsym Mod1+Left focus left
\r
374 bindsym Mod1+Down focus down
\r
375 bindsym Mod1+Up focus up
\r
376 bindsym Mod1+Right focus right
\r
378 # move focused window
\r
379 bindsym Mod1+Shift+j move left
\r
380 bindsym Mod1+Shift+k move down
\r
381 bindsym Mod1+Shift+l move up
\r
382 bindsym Mod1+Shift+semicolon move right
\r
384 # alternatively, you can use the cursor keys:
\r
385 bindsym Mod1+Shift+Left move left
\r
386 bindsym Mod1+Shift+Down move down
\r
387 bindsym Mod1+Shift+Up move up
\r
388 bindsym Mod1+Shift+Right move right
\r
390 # split in horizontal orientation
\r
391 bindsym Mod1+h split h
\r
393 # split in vertical orientation
\r
394 bindsym Mod1+v split v
\r
396 # enter fullscreen mode for the focused container
\r
397 bindsym Mod1+f fullscreen
\r
399 # change container layout (stacked, tabbed, default)
\r
400 bindsym Mod1+s layout stacking
\r
401 bindsym Mod1+w layout tabbed
\r
402 bindsym Mod1+e layout default
\r
404 # toggle tiling / floating
\r
405 bindsym Mod1+Shift+space floating toggle
\r
407 # change focus between tiling / floating windows
\r
408 bindsym Mod1+space focus mode_toggle
\r
410 # focus the parent container
\r
411 bindsym Mod1+a focus parent
\r
413 # focus the child container
\r
414 #bindsym Mod1+d focus child
\r
416 # switch to workspace
\r
417 bindsym Mod1+1 workspace 1
\r
418 bindsym Mod1+2 workspace 2
\r
421 # move focused container to workspace
\r
422 bindsym Mod1+Shift+1 move workspace 1
\r
423 bindsym Mod1+Shift+2 move workspace 2
\r
426 # reload the configuration file
\r
427 bindsym Mod1+Shift+c reload
\r
428 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
\r
429 bindsym Mod1+Shift+r restart
\r
430 # exit i3 (logs you out of your X session)
\r
431 bindsym Mod1+Shift+e exit
\r
433 # display workspace buttons plus a statusline generated by i3status
\r
435 status_command i3status
\r
439 <div class="sect2">
\r
440 <h3 id="_xsession">6.2. ~/.xsession</h3>
\r
441 <div class="paragraph"><p>This file is where you should configure your locales and start i3. It is run by
\r
442 your login manager (xdm, slim, gdm, …) as soon as you login.</p></div>
\r
443 <div class="listingblock">
\r
444 <div class="title">Sample xsession</div>
\r
445 <div class="content">
\r
446 <pre><tt># Disable DPMS turning off the screen
\r
453 # Enable zapping (C-A-<Bksp> kills X)
\r
454 setxkbmap -option terminate:ctrl_alt_bksp
\r
456 # Enforce correct locales from the beginning
\r
458 export LC_CTYPE=de_DE.UTF-8
\r
459 export LC_TIME=de_DE.UTF-8
\r
460 export LC_NUMERIC=de_DE.UTF-8
\r
461 export LC_MONETARY=de_DE.UTF-8
\r
462 export LC_MESSAGES=C
\r
463 export LC_PAPER=de_DE.UTF-8
\r
464 export LC_NAME=de_DE.UTF-8
\r
465 export LC_ADDRESS=de_DE.UTF-8
\r
466 export LC_TELEPHONE=de_DE.UTF-8
\r
467 export LC_MEASUREMENT=de_DE.UTF-8
\r
468 export LC_IDENTIFICATION=de_DE.UTF-8
\r
470 # Use XToolkit in java applications
\r
471 export AWT_TOOLKIT=XToolkit
\r
473 # Set background color
\r
474 xsetroot -solid "#333333"
\r
476 # Enable core dumps in case something goes wrong
\r
477 ulimit -c unlimited
\r
479 # Start i3 and log to ~/.i3/logfile
\r
480 echo "Starting at $(date)" >> ~/.i3/logfile
\r
481 exec /usr/bin/i3 -V -d all >> ~/.i3/logfile</tt></pre>
\r
486 <div class="sect1">
\r
487 <h2 id="_environment">7. ENVIRONMENT</h2>
\r
488 <div class="sectionbody">
\r
489 <div class="sect2">
\r
490 <h3 id="_i3sock">7.1. I3SOCK</h3>
\r
491 <div class="paragraph"><p>This variable overwrites the IPC socket path (placed in
\r
492 /tmp/i3-%u.XXXXXX/ipc-socket.%p by default, where %u is replaced with your UNIX
\r
493 username, %p is replaced with i3’s PID and XXXXXX is a string of random
\r
494 characters from the portable filename character set (see mkdtemp(3))). The IPC
\r
495 socket is used by external programs like i3-msg(1) or i3bar(1).</p></div>
\r
499 <div class="sect1">
\r
500 <h2 id="_todo">8. TODO</h2>
\r
501 <div class="sectionbody">
\r
502 <div class="paragraph"><p>There is still lot of work to do. Please check our bugtracker for up-to-date
\r
503 information about tasks which are still not finished.</p></div>
\r
506 <div class="sect1">
\r
507 <h2 id="_see_also">9. SEE ALSO</h2>
\r
508 <div class="sectionbody">
\r
509 <div class="paragraph"><p>You should have a copy of the userguide (featuring nice screenshots/graphics
\r
510 which is why this is not integrated into this manpage), the debugging guide,
\r
511 and the "how to hack" guide. If you are building from source, run:
\r
512 <tt>make -C docs</tt></p></div>
\r
513 <div class="paragraph"><p>You can also access these documents online at <a href="http://i3.zekjur.net/">http://i3.zekjur.net/</a></p></div>
\r
514 <div class="paragraph"><p>i3-input(1), i3-msg(1), i3-wsbar(1), i3-nagbar(1), i3-config-wizard(1),
\r
515 i3-migrate-config-to-v4(1)</p></div>
\r
518 <div class="sect1">
\r
519 <h2 id="_author">10. AUTHOR</h2>
\r
520 <div class="sectionbody">
\r
521 <div class="paragraph"><p>Michael Stapelberg and contributors</p></div>
\r
525 <div id="footnotes"><hr /></div>
\r
526 <div id="footer" lang="de">
\r
527 © 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>
\r