]> git.sur5r.net Git - i3/i3.github.io/blob - docs/3.e/i3.html
Fixed missing "<" on "conky-i3bar.html"
[i3/i3.github.io] / docs / 3.e / i3.html
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
4 <head>\r
5 <link rel="icon" type="image/png" href="/favicon.png">\r
6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
7 <meta name="generator" content="AsciiDoc 8.6.4" />\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
12 /*<![CDATA[*/\r
13 window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
14 /*]]>*/\r
15 </script>\r
16 <script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
17 </head>\r
18 <body class="article">\r
19 \r
20         <div id="main">\r
21             <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
22                         <ul id="nav">\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="/contact">Contact</a></li>\r
26                                 <li><a href="http://bugs.i3wm.org/">Bugs</a></li>\r
27                         </ul>\r
28         <br style="clear: both">\r
29 <div id="content">\r
30 <div id="header">\r
31 <h1>i3(1)</h1>\r
32 <span id="author">Michael Stapelberg</span><br />\r
33 <span id="email"><tt>&lt;<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>&gt;</tt></span><br />\r
34 <span id="revnumber">version 3.epsilon,</span>\r
35 <span id="revdate">March 2010</span>\r
36 <div id="toc">
37   <div id="toctitle">Table of Contents</div>
38   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
39 </div>\r
40 </div>\r
41 <div class="sect1">\r
42 <h2 id="_name">1. NAME</h2>\r
43 <div class="sectionbody">\r
44 <div class="paragraph"><p>i3 - an improved dynamic, tiling window manager</p></div>\r
45 </div>\r
46 </div>\r
47 <div class="sect1">\r
48 <h2 id="_synopsis">2. SYNOPSIS</h2>\r
49 <div class="sectionbody">\r
50 <div class="paragraph"><p>i3 [-a] [-c configfile] [-C] [-d &lt;loglevel&gt;] [-v] [-V]</p></div>\r
51 </div>\r
52 </div>\r
53 <div class="sect1">\r
54 <h2 id="_options">3. OPTIONS</h2>\r
55 <div class="sectionbody">\r
56 <div class="dlist"><dl>\r
57 <dt class="hdlist1">\r
58 -a\r
59 </dt>\r
60 <dd>\r
61 <p>\r
62 Disables autostart.\r
63 </p>\r
64 </dd>\r
65 <dt class="hdlist1">\r
66 -c\r
67 </dt>\r
68 <dd>\r
69 <p>\r
70 Specifies an alternate configuration file path.\r
71 </p>\r
72 </dd>\r
73 <dt class="hdlist1">\r
74 -C\r
75 </dt>\r
76 <dd>\r
77 <p>\r
78 Check the configuration file for validity and exit.\r
79 </p>\r
80 </dd>\r
81 <dt class="hdlist1">\r
82 -d\r
83 </dt>\r
84 <dd>\r
85 <p>\r
86 Specifies the debug loglevel. To see the most output, use -d all.\r
87 </p>\r
88 </dd>\r
89 <dt class="hdlist1">\r
90 -v\r
91 </dt>\r
92 <dd>\r
93 <p>\r
94 Display version number (and date of the last commit).\r
95 </p>\r
96 </dd>\r
97 <dt class="hdlist1">\r
98 -V\r
99 </dt>\r
100 <dd>\r
101 <p>\r
102 Be verbose.\r
103 </p>\r
104 </dd>\r
105 </dl></div>\r
106 </div>\r
107 </div>\r
108 <div class="sect1">\r
109 <h2 id="_description">4. DESCRIPTION</h2>\r
110 <div class="sectionbody">\r
111 <div class="sect2">\r
112 <h3 id="_introduction">4.1. INTRODUCTION</h3>\r
113 <div class="paragraph"><p>i3 was created because wmii, our favorite window manager at the time, didn’t\r
114 provide some features we wanted (multi-monitor done right, for example), had\r
115 some bugs, didn’t progress since quite some time and wasn’t easy to hack at all\r
116 (source code comments/documentation completely lacking). Still, we think the\r
117 wmii developers and contributors did a great job. Thank you for inspiring us to\r
118 create i3.</p></div>\r
119 <div class="paragraph"><p>Please be aware that i3 is primarily targeted at advanced users and developers.</p></div>\r
120 </div>\r
121 <div class="sect2">\r
122 <h3 id="_important_note_to_nvidia_binary_driver_users">4.2. IMPORTANT NOTE TO nVidia BINARY DRIVER USERS</h3>\r
123 <div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)\r
124 you need to use the <tt>--force-xinerama</tt> flag (in your .xsession) when starting\r
125 i3, like so:</p></div>\r
126 <div class="listingblock">\r
127 <div class="content">\r
128 <pre><tt>exec i3 --force-xinerama -V &gt;&gt;~/.i3/i3log 2&gt;&amp;1</tt></pre>\r
129 </div></div>\r
130 <div class="paragraph"><p>See also docs/multi-monitor for the full explanation.</p></div>\r
131 </div>\r
132 <div class="sect2">\r
133 <h3 id="_terminology">4.3. TERMINOLOGY</h3>\r
134 <div class="dlist"><dl>\r
135 <dt class="hdlist1">\r
136 Client\r
137 </dt>\r
138 <dd>\r
139 <p>\r
140 A client is X11-speak for a window.\r
141 </p>\r
142 </dd>\r
143 <dt class="hdlist1">\r
144 Table\r
145 </dt>\r
146 <dd>\r
147 <p>\r
148 Your workspace is managed using a table. You can move windows around and create\r
149 new columns (move a client to the right) or rows (move it to the bottom)\r
150 implicitly.\r
151 </p>\r
152 <div class="paragraph"><p>By "snapping" a client in a specific direction, you increase its colspan/rowspan.</p></div>\r
153 </dd>\r
154 <dt class="hdlist1">\r
155 Container\r
156 </dt>\r
157 <dd>\r
158 <p>\r
159 A container contains a variable number of clients. Each cell of the table is a\r
160 container.\r
161 </p>\r
162 <div class="paragraph"><p>Containers can be used in various modes. The default mode is called "default"\r
163 and just resizes each client equally so that it fits.</p></div>\r
164 </dd>\r
165 <dt class="hdlist1">\r
166 Workspace\r
167 </dt>\r
168 <dd>\r
169 <p>\r
170 A workspace is a set of clients (technically speaking, it’s just a table).\r
171 Other window managers call this "Virtual Desktops".\r
172 </p>\r
173 <div class="paragraph"><p>In i3, each workspace is assigned to a specific virtual screen. By default,\r
174 screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you\r
175 create a new workspace (by simply switching to it), it’ll be assigned the\r
176 screen you are currently on.</p></div>\r
177 </dd>\r
178 <dt class="hdlist1">\r
179 Output\r
180 </dt>\r
181 <dd>\r
182 <p>\r
183 Using XRandR, you can have an X11 screen spanning multiple real monitors.\r
184 Furthermore, you can set them up in cloning mode or with positions (monitor 1\r
185 is left of monitor 2).\r
186 </p>\r
187 <div class="paragraph"><p>i3 uses the RandR API to query which outputs are available and which screens\r
188 are connected to these outputs.</p></div>\r
189 </dd>\r
190 </dl></div>\r
191 </div>\r
192 </div>\r
193 </div>\r
194 <div class="sect1">\r
195 <h2 id="_keybindings">5. KEYBINDINGS</h2>\r
196 <div class="sectionbody">\r
197 <div class="paragraph"><p>Here is a short overview of the default keybindings:</p></div>\r
198 <div class="dlist"><dl>\r
199 <dt class="hdlist1">\r
200 j/k/l/;\r
201 </dt>\r
202 <dd>\r
203 <p>\r
204 Direction keys (left, down, up, right). They are on your homerow (see the mark\r
205 on your "j" key). Alternatively, you can use the cursor keys.\r
206 </p>\r
207 </dd>\r
208 <dt class="hdlist1">\r
209 Mod1+&lt;direction&gt;\r
210 </dt>\r
211 <dd>\r
212 <p>\r
213 Focus window in &lt;direction&gt;.\r
214 </p>\r
215 </dd>\r
216 <dt class="hdlist1">\r
217 Mod3+&lt;direction&gt;\r
218 </dt>\r
219 <dd>\r
220 <p>\r
221 Focus container in &lt;direction&gt;.\r
222 </p>\r
223 </dd>\r
224 <dt class="hdlist1">\r
225 Mod1+Shift+&lt;direction&gt;\r
226 </dt>\r
227 <dd>\r
228 <p>\r
229 Move window to &lt;direction&gt;.\r
230 </p>\r
231 </dd>\r
232 <dt class="hdlist1">\r
233 Mod3+Shift+&lt;direction&gt;\r
234 </dt>\r
235 <dd>\r
236 <p>\r
237 Move container to &lt;direction&gt;.\r
238 </p>\r
239 </dd>\r
240 <dt class="hdlist1">\r
241 Mod1+Control+&lt;direction&gt;\r
242 </dt>\r
243 <dd>\r
244 <p>\r
245 Snap container to &lt;direction&gt;.\r
246 </p>\r
247 </dd>\r
248 <dt class="hdlist1">\r
249 Mod1+&lt;number&gt;\r
250 </dt>\r
251 <dd>\r
252 <p>\r
253 Switch to workspace &lt;number&gt;.\r
254 </p>\r
255 </dd>\r
256 <dt class="hdlist1">\r
257 Mod1+Shift+&lt;number&gt;\r
258 </dt>\r
259 <dd>\r
260 <p>\r
261 Move window to workspace &lt;number&gt;.\r
262 </p>\r
263 </dd>\r
264 <dt class="hdlist1">\r
265 Mod1+f\r
266 </dt>\r
267 <dd>\r
268 <p>\r
269 Toggle fullscreen mode.\r
270 </p>\r
271 </dd>\r
272 <dt class="hdlist1">\r
273 Mod1+h\r
274 </dt>\r
275 <dd>\r
276 <p>\r
277 Enable stacking layout for the current container.\r
278 </p>\r
279 </dd>\r
280 <dt class="hdlist1">\r
281 Mod1+e\r
282 </dt>\r
283 <dd>\r
284 <p>\r
285 Enable default layout for the current container.\r
286 </p>\r
287 </dd>\r
288 <dt class="hdlist1">\r
289 Mod1+Shift+Space\r
290 </dt>\r
291 <dd>\r
292 <p>\r
293 Toggle tiling/floating for the current window.\r
294 </p>\r
295 </dd>\r
296 <dt class="hdlist1">\r
297 Mod1+t\r
298 </dt>\r
299 <dd>\r
300 <p>\r
301 Select the first tiling window if the current window is floating and vice-versa.\r
302 </p>\r
303 </dd>\r
304 <dt class="hdlist1">\r
305 Mod1+Shift+q\r
306 </dt>\r
307 <dd>\r
308 <p>\r
309 Kills the current window. This is equivalent to "clicking on the close button",\r
310 meaning a polite request to the application to close this window. For example,\r
311 Firefox will save its session upon such a request. If the application does not\r
312 support that, the window will be killed and it depends on the application what\r
313 happens.\r
314 </p>\r
315 </dd>\r
316 <dt class="hdlist1">\r
317 Mod1+Shift+r\r
318 </dt>\r
319 <dd>\r
320 <p>\r
321 Restarts i3 in place (without losing any windows, but at this time, the layout\r
322 and placement of windows is not retained).\r
323 </p>\r
324 </dd>\r
325 <dt class="hdlist1">\r
326 Mod1+Shift+e\r
327 </dt>\r
328 <dd>\r
329 <p>\r
330 Exits i3.\r
331 </p>\r
332 </dd>\r
333 </dl></div>\r
334 </div>\r
335 </div>\r
336 <div class="sect1">\r
337 <h2 id="_files">6. FILES</h2>\r
338 <div class="sectionbody">\r
339 <div class="sect2">\r
340 <h3 id="_i3_config_or_config_i3_config">6.1. ~/.i3/config (or ~/.config/i3/config)</h3>\r
341 <div class="paragraph"><p>When starting, i3 looks for configuration files in the following order:</p></div>\r
342 <div class="olist arabic"><ol class="arabic">\r
343 <li>\r
344 <p>\r
345 ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)\r
346 </p>\r
347 </li>\r
348 <li>\r
349 <p>\r
350 /etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)\r
351 </p>\r
352 </li>\r
353 <li>\r
354 <p>\r
355 ~/.i3/config\r
356 </p>\r
357 </li>\r
358 <li>\r
359 <p>\r
360 /etc/i3/config\r
361 </p>\r
362 </li>\r
363 </ol></div>\r
364 <div class="paragraph"><p>You can specify a custom path using the -c option.</p></div>\r
365 <div class="listingblock">\r
366 <div class="title">Sample configuration</div>\r
367 <div class="content">\r
368 <pre><tt>font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
369 \r
370 # Start terminal (Mod1+Enter)\r
371 bind Mod1+36 exec /usr/bin/urxvt\r
372 \r
373 # Start dmenu (Mod1+v)\r
374 bind Mod1+55 exec /usr/bin/dmenu_run\r
375 \r
376 # Kill current client (Mod1+Shift+q)\r
377 bind Mod1+Shift+24 kill\r
378 \r
379 # Beamer on/off\r
380 bind Mod1+73 exec /home/michael/toggle_beamer.sh\r
381 \r
382 # Screen locking\r
383 bind Mod1+68 exec /usr/bin/i3lock\r
384 \r
385 # Restart i3 inplace (Mod1+Shift+r)\r
386 bind Mod1+Shift+27 restart\r
387 \r
388 # Exit i3 (Mod1+Shift+e)\r
389 bind Mod1+Shift+26 exit\r
390 \r
391 # Brightness\r
392 bind Mod1+97 exec sudo sh -c "echo up &gt; /proc/acpi/ibm/brightness"\r
393 bind Mod1+103 exec sudo sh -c "echo down &gt; /proc/acpi/ibm/brightness"\r
394 \r
395 # Fullscreen (Mod1+f)\r
396 bind Mod1+41 f\r
397 \r
398 # Stacking (Mod1+h)\r
399 bind Mod1+43 s\r
400 \r
401 # Default (Mod1+e)\r
402 bind Mod1+26 d\r
403 \r
404 # Toggle tiling/floating of the current window (Mod1+Shift+Space)\r
405 bind Mod1+Shift+65 t\r
406 \r
407 # Go into the tiling layer / floating layer, depending on whether\r
408 # the current window is tiling / floating (Mod1+t)\r
409 bind Mod1+28 focus ft\r
410 \r
411 # Focus (Mod1+j/k/l/;)\r
412 bind Mod1+44 h\r
413 bind Mod1+45 j\r
414 bind Mod1+46 k\r
415 bind Mod1+47 l\r
416 \r
417 # Focus Container (Mod3+j/k/l/;)\r
418 bind Mod3+44 wch\r
419 bind Mod3+45 wcj\r
420 bind Mod3+46 wck\r
421 bind Mod3+47 wcl\r
422 \r
423 # Snap (Mod1+Control+j/k/l/;)\r
424 bind Mod1+Control+44 sh\r
425 bind Mod1+Control+45 sj\r
426 bind Mod1+Control+46 sk\r
427 bind Mod1+Control+47 sl\r
428 \r
429 # Move (Mod1+Shift+j/k/l/;)\r
430 bind Mod1+Shift+44 mh\r
431 bind Mod1+Shift+45 mj\r
432 bind Mod1+Shift+46 mk\r
433 bind Mod1+Shift+47 ml\r
434 \r
435 # Move Container (Mod3+Shift+j/k/l/;)\r
436 bind Mod3+Shift+44 wcmh\r
437 bind Mod3+Shift+45 wcmj\r
438 bind Mod3+Shift+46 wcmk\r
439 bind Mod3+Shift+47 wcml\r
440 \r
441 # Workspaces\r
442 bind Mod1+10 1\r
443 bind Mod1+11 2\r
444 ...\r
445 \r
446 # Move to Workspace\r
447 bind Mod1+Shift+10 1\r
448 bind Mod1+Shift+11 2\r
449 ...</tt></pre>\r
450 </div></div>\r
451 </div>\r
452 <div class="sect2">\r
453 <h3 id="_xsession">6.2. ~/.xsession</h3>\r
454 <div class="paragraph"><p>This file is where you should configure your locales and start i3. It is run by\r
455 your login manager (xdm, slim, gdm, …) as soon as you login.</p></div>\r
456 <div class="listingblock">\r
457 <div class="title">Sample xsession</div>\r
458 <div class="content">\r
459 <pre><tt># Disable DPMS turning off the screen\r
460 xset dpms force on\r
461 xset s off\r
462 \r
463 # Disable bell\r
464 xset -b\r
465 \r
466 # Enable zapping (C-A-&lt;Bksp&gt; kills X)\r
467 setxkbmap -option terminate:ctrl_alt_bksp\r
468 \r
469 # Enforce correct locales from the beginning\r
470 unset LC_COLLATE\r
471 export LC_CTYPE=de_DE.UTF-8\r
472 export LC_TIME=de_DE.UTF-8\r
473 export LC_NUMERIC=de_DE.UTF-8\r
474 export LC_MONETARY=de_DE.UTF-8\r
475 export LC_MESSAGES=C\r
476 export LC_PAPER=de_DE.UTF-8\r
477 export LC_NAME=de_DE.UTF-8\r
478 export LC_ADDRESS=de_DE.UTF-8\r
479 export LC_TELEPHONE=de_DE.UTF-8\r
480 export LC_MEASUREMENT=de_DE.UTF-8\r
481 export LC_IDENTIFICATION=de_DE.UTF-8\r
482 \r
483 # Use XToolkit in java applications\r
484 export AWT_TOOLKIT=XToolkit\r
485 \r
486 # Set background color\r
487 xsetroot -solid "#333333"\r
488 \r
489 # Enable core dumps in case something goes wrong\r
490 ulimit -c unlimited\r
491 \r
492 # Start i3 and log to ~/.i3/logfile\r
493 echo "Starting at $(date)" &gt;&gt; ~/.i3/logfile\r
494 exec /usr/bin/i3 -V -d all &gt;&gt; ~/.i3/logfile</tt></pre>\r
495 </div></div>\r
496 </div>\r
497 </div>\r
498 </div>\r
499 <div class="sect1">\r
500 <h2 id="_todo">7. 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
504 </div>\r
505 </div>\r
506 <div class="sect1">\r
507 <h2 id="_see_also">8. 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)</p></div>\r
515 </div>\r
516 </div>\r
517 <div class="sect1">\r
518 <h2 id="_author">9. AUTHOR</h2>\r
519 <div class="sectionbody">\r
520 <div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
521 </div>\r
522 </div>\r
523 </div>\r
524 <div id="footnotes"><hr /></div>\r
525 <div id="footer" lang="de">\r
526 © 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
527 </div>\r
528 </body>\r
529 </html>\r