From 76c40e53207f025ed44a1bb21aad002233dc8f6d Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 12 Jul 2024 07:21:19 +0000 Subject: [PATCH] Publish docs/static analysis for github.com/i3/i3 v4.23-51-gd05eed3c --- CNAME | 1 + docs/bigpicture.png | Bin 0 -> 338214 bytes docs/debugging.html | 249 ++ docs/gaps1920.png | Bin 0 -> 56381 bytes docs/hacking-howto.html | 1541 +++++++++++ docs/i3-config-wizard.html | 128 + docs/i3-dump-log.html | 81 + docs/i3-input.html | 181 ++ docs/i3-migrate-config-to-v4.html | 80 + docs/i3-msg.html | 293 +++ docs/i3-nagbar.html | 160 ++ docs/i3-sensible-editor.html | 145 ++ docs/i3-sensible-pager.html | 100 + docs/i3-sensible-terminal.html | 219 ++ docs/i3-sync-working.png | Bin 0 -> 20482 bytes docs/i3-sync.png | Bin 0 -> 13568 bytes docs/i3.html | 581 +++++ docs/i3bar-protocol.html | 511 ++++ docs/i3bar-workspace-protocol.html | 272 ++ docs/i3bar.html | 159 ++ docs/ipc.html | 2246 ++++++++++++++++ docs/keyboard-layer1.png | Bin 0 -> 55821 bytes docs/keyboard-layer2.png | Bin 0 -> 49858 bytes docs/layout-saving-1.png | Bin 0 -> 14799 bytes docs/layout-saving.html | 306 +++ docs/logo-30.png | Bin 0 -> 2751 bytes docs/modes.png | Bin 0 -> 5826 bytes docs/multi-monitor.html | 106 + docs/refcard.html | 198 ++ docs/refcard_style.css | 45 + docs/single_terminal.png | Bin 0 -> 3382 bytes docs/snapping.png | Bin 0 -> 4880 bytes docs/testsuite.html | 757 ++++++ docs/tree-layout1.png | Bin 0 -> 27856 bytes docs/tree-layout2.png | Bin 0 -> 20101 bytes docs/tree-shot1.png | Bin 0 -> 3665 bytes docs/tree-shot2.png | Bin 0 -> 3383 bytes docs/tree-shot3.png | Bin 0 -> 4001 bytes docs/tree-shot4.png | Bin 0 -> 3050 bytes docs/two_columns.png | Bin 0 -> 4624 bytes docs/two_terminals.png | Bin 0 -> 4901 bytes docs/userguide.html | 3800 ++++++++++++++++++++++++++++ docs/wsbar.html | 134 + docs/wsbar.png | Bin 0 -> 14339 bytes robots.txt | 2 + 45 files changed, 12295 insertions(+) create mode 100644 CNAME create mode 100644 docs/bigpicture.png create mode 100644 docs/debugging.html create mode 100644 docs/gaps1920.png create mode 100644 docs/hacking-howto.html create mode 100644 docs/i3-config-wizard.html create mode 100644 docs/i3-dump-log.html create mode 100644 docs/i3-input.html create mode 100644 docs/i3-migrate-config-to-v4.html create mode 100644 docs/i3-msg.html create mode 100644 docs/i3-nagbar.html create mode 100644 docs/i3-sensible-editor.html create mode 100644 docs/i3-sensible-pager.html create mode 100644 docs/i3-sensible-terminal.html create mode 100644 docs/i3-sync-working.png create mode 100644 docs/i3-sync.png create mode 100644 docs/i3.html create mode 100644 docs/i3bar-protocol.html create mode 100644 docs/i3bar-workspace-protocol.html create mode 100644 docs/i3bar.html create mode 100644 docs/ipc.html create mode 100644 docs/keyboard-layer1.png create mode 100644 docs/keyboard-layer2.png create mode 100644 docs/layout-saving-1.png create mode 100644 docs/layout-saving.html create mode 100644 docs/logo-30.png create mode 100644 docs/modes.png create mode 100644 docs/multi-monitor.html create mode 100644 docs/refcard.html create mode 100644 docs/refcard_style.css create mode 100644 docs/single_terminal.png create mode 100644 docs/snapping.png create mode 100644 docs/testsuite.html create mode 100644 docs/tree-layout1.png create mode 100644 docs/tree-layout2.png create mode 100644 docs/tree-shot1.png create mode 100644 docs/tree-shot2.png create mode 100644 docs/tree-shot3.png create mode 100644 docs/tree-shot4.png create mode 100644 docs/two_columns.png create mode 100644 docs/two_terminals.png create mode 100644 docs/userguide.html create mode 100644 docs/wsbar.html create mode 100644 docs/wsbar.png create mode 100644 robots.txt diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..d56ea0e --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +build.i3wm.org diff --git a/docs/bigpicture.png b/docs/bigpicture.png new file mode 100644 index 0000000000000000000000000000000000000000..031673b8f53856c08164e9c599beafd8fc9f0b8f GIT binary patch literal 338214 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�}oP^r|X<3v=)dbaSQQQtgoF84r4 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

&*dWK8cv%XhACr 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 (hsSh)F!qwx{ToXA*+OQM8QB<|O`MN7l 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 CZZ4_- literal 0 HcmV?d00001 diff --git a/docs/debugging.html b/docs/debugging.html new file mode 100644 index 0000000..c2d79a2 --- /dev/null +++ b/docs/debugging.html @@ -0,0 +1,249 @@ + + + + + + +i3: Debugging i3: How To + + + + + + + +

+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document describes how to debug i3 to send us useful bug +reports, even if you have no knowledge of C programming.

+

Thank you for being interested in debugging i3. It really means +something to us to get your bug fixed. If you have any questions about the +process and/or need further help, do not hesitate to contact us!

+
+
+
+

Verify you are using i3 ≥ 4.10

+
+

Only the latest major version of i3 is supported. To verify which version +you are running, use:

+
+
+
$ i3 --moreversion 2>&- || i3 --version
+Binary i3 version:  4.7 (2013-12-22, branch "tags/4.7")
+Running i3 version: 4.7-84-gac74a63 (2014-01-01, branch "next") (pid 1995)
+
+

Your version can look like this:

+
+
+4.7 (release version) +
+
+

+You are using a release version. In many cases, bugs are already +fixed in the development version of i3. Even if the bug is not a known fixed +one, we will still ask you to reproduce your error with the most recent +development version of i3. Therefore, please upgrade to a development version +if you can. +

+
+
+4.7-85-g9c15b95 (development version) +
+
+

+Your version is 85 commits newer than 4.7, and the git revision of your +version is 9c15b95. Go to https://github.com/i3/i3/commits/next and see if +the most recent commit starts with the same revision. If so, you are using the +latest version. +

+
+
+

Development versions of i3 have logging enabled by default and are compiled +with debug symbols.

+
+
+
+

Enabling logging

+
+

If you are using a development version (see previous section), you don’t need +to do anything — skip to section 3.

+

If you are using a release version with a custom ~/.xsession (or xinitrc) +file, execute i3 with a line like this:

+
+
+
# Use 25 MiB of RAM for debug logs
+exec i3 --shmlog-size=26214400
+
+

If you are NOT using an ~/.xsession file but you just chose "i3" from the +list of sessions in your desktop manager (gdm, lxdm, …), edit +/usr/share/xsessions/i3.desktop and replace the Exec=i3 line with:

+
+
+
Exec=i3 --shmlog-size=26214400
+
+

If you cannot restart i3 for some reason, you can enable debug logging on the +fly:

+
+
+
i3-msg 'debuglog on; shmlog on; reload'
+
+
+
+
+

Reproducing the problem

+
+

Before submitting an issue, please make sure to close down on the problem as +much as you can yourself. Here are some steps you should consider:

+
    +
  • +

    +Find a deterministic, reliable way to reproduce the problem and provide it + with your bug report. +

    +
  • +
  • +

    +Try using the default i3 config to reproduce the problem. If the issue does + not appear with the default config, gradually adapt it to track down what + change(s) to the config introduce the problem. +

    +
  • +
  • +

    +Reproduce the problem with a minimal setup, i.e., only use as few applications, + windows and steps as necessary. +

    +
  • +
  • +

    +In addition, try to stick to applications that are common and, even more + importantly, free / open source. +

    +
  • +
  • +

    +Before obtaining the log file, restart i3 in-place, execute the steps to + reproduce the problem and then save the logs. This keeps the log file as + small as possible and necessary. +

    +
  • +
+

Please be aware that we cannot support compatibility issues with closed-source +software, as digging into compatibility problems without having access to the +source code is too time-consuming. Additionally, experience has shown that +often, the software in question is responsible for the issue. Please raise an +issue with the software in question, not i3.

+
+
+
+

Obtaining the debug logfile

+
+
+ + + +
+
Caution
+
+

Logs may contain sensitive information, so please inspect the log before +submitting it. Logs may be viewed by anyone, once posted. If you choose to +redact the log, make an effort not to discard information which may be relevant +to the issue you are reporting.

+

The best way to avoid submitting such information is to only run the necessary +steps to reproduce the behavior when saving the log file. This will also make +analyzing the log file easier.

+
+
+

No matter whether i3 misbehaved in some way without crashing or whether it just +crashed, the logfile provides all information necessary to debug the problem.

+

To upload a compressed version of the logfile (for a bugreport), use:

+
+
+
DISPLAY=:0 i3-dump-log | bzip2 -c | curl --data-binary @- https://logs.i3wm.org
+
+

This command does not depend on i3 (it also works while i3 displays +the crash dialog), but it requires a working X11 connection.

+

After running it, you will get a URL to the logfile. Please include that URL in +your bug report.

+
+
+
+

On crashes: Obtaining a backtrace

+
+

When i3 crashes, it will display a dialog stating “i3 just crashed”, offering +you to save a backtrace to a text file.

+

To actually get useful backtraces, you should make sure that your version of i3 +is compiled with debug symbols:

+
+
+
$ file `which i3`
+/usr/bin/i3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
+linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
+
+

Notice the not stripped, which is the important part. If you have a version +which is stripped, please check whether your distribution provides debug +symbols (package i3-wm-dbg on Debian for example) or if you can turn off +stripping. If nothing helps, please build i3 from source.

+

Once you have made sure that your i3 is compiled with debug symbols and the C +debugger gdb is installed on your machine, you can let i3 generate a +backtrace in the crash dialog.

+

After pressing "b" in the crash dialog, you will get a file called +/tmp/i3-backtrace.%d.%d.txt where the first %d is replaced by i3’s process +id (PID) and the second one is incremented each time you generate a backtrace, +starting at 0.

+

In Linux, if the backtrace just says No stack., that’s because gdb does not +have necessary permissions to attach to a running process. You can fix that by +running from a terminal (you can open a new tty, e.g. with ctrl-alt-F2):

+
+
+
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
+
+

Afterwards, try re-generating the stack trace. Note that this setting re-sets +after reboot, see more info at +https://www.kernel.org/doc/Documentation/security/Yama.txt.

+
+
+
+

Debugging i3bar

+
+

To debug i3bar problems, use the --verbose commandline parameter, +or add verbose yes to all bar {} blocks in your i3 +config, reload your config and then restart all i3bar instances like this:

+
+
+
$ i3 reload
+$ killall i3bar
+$ for c in $(i3-msg -t get_bar_config | python -c \
+      'import json,sys;print("\n".join(json.load(sys.stdin)))'); do \
+    (i3bar --bar_id=$c >i3bar.$c.log 2>&1) & \
+  done;
+
+

There will now be i3bar.*.log files in your current directory that you can provide +in your bug report.

+
+
+
+

+ + + diff --git a/docs/gaps1920.png b/docs/gaps1920.png new file mode 100644 index 0000000000000000000000000000000000000000..21ff9275efd01ee5c30c0edaec9026bef94cefb5 GIT binary patch literal 56381 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 z zNtk(0p;r^Ohiq&X);i9BXP$?^GX2f$)yFc-QOu0PSsJ=Rc%M#IEH%N?R*$zLIPdfG zu;2Tfw=pNPEen$Jj`pOh-wzw~zKL^D@amEiL2meUD(9erqgZuO=O6_i!ME3%1SD z^bc%D?|j(uHSWVLp;sdaA)_-%2{G7kgyK$n3*dJ)J(u!A`hSJ{4Kp`qX_PD8{9}4Z zNa$RQsD{sF?qnwvu`woMb+RuLkK>R++N?Yna=~L6dB>a18Hxv8k6gI>v7w;9D*Q?x zr9#TWMdqB}Ho487}eZH9yB}HI%PB@Gqtez)D&-Ssa zK?JfQ7jP{O`T3(Ltm_ewEB{wypS^Bu%BBw_;*w>A3>dk7TKY<+mJ1Gvg4y9H-B_B1>gn?9PA#j`+c;{)p9NzUGZ=PJr0eF48An!yP-3V;v@gp{ahst8 zW88{3hv{YZ>L^J|XezlHE~Zklg72HvtpyV%-fvAy^H_9I)?)C~dqL+EPqbg@&LRvE zjNH;ofw{$nwnZaGPbFHx?_OusOv7mGAm0W*pBjq#LSTp|+x}8S%))!9erkTxc5=uF zNbN2ftbFYiPGl#Orc2eR;%WCOst*~E#n6NI3~74pgH4h8-vbq_eNYnDu~ z;Q?nM#XSsPqHeJKa8i=t^k&Ts&AASts#$H94mF5)Mn4IK4y_6DV8q3(+jyRSndQDKE$7EZeuidkuzvrbO5tEx{jn7`TIlL zVot73tcR9Bpo>l!5(Sztn}%Z^kRp`)7W};f~97Os^BP7=YZ)X7~SL~Ng$}B zK3NL{^o@3+*=N;|w&J%JFb|fe>l&$ARROJq19KnCr&r)vDta6$1a^&DHy}RkjhcB= zk*;z-EK&e|oirF%Y~QFy9y{t+)>XBH6FeyF;9xKhIh80K1GSQx9eu0rHRv~d=AgQH zdOZA07r}3q6Y_$+;N_j17Z1-;R%j7{4maF39rPJtO)!#WP1Dt2W-N$eSD`6-_q*Z9 zmy;?m)*E@}8kGYZeJ`l_TNa0(3!FLY(VKMJuED!Cq6^}=8e`&J=rP<$mQjoC=CaMr z34UI6g|WgTl=vIW8Yvm~(VW?Iji3kWB@U_6D{S}HzJC>@7`pY2a{8^g9EB7lKG0*9 zQxs&#vTTdNCCCW1=Z(^`kg3JjODdN_3}UgFaG`dOTZXna#g2*Gky2_ZN$Z}yjgnn< z7CE%d3>R-vU0UqepKeJ|?uRYnEUp;a;XMK~q|MFPmGmYTzg*+I?jik20|6+7npOO^P;=hkWHw!U_*8lQ4=bkj3U>#uT#QA!M*9ne#EEU2-T2)$;H%8_!!!( z?TF9F2IG08^yW|7a?aT=C++>0cLBxUcU{8N>%?Hfm1FW9kFOl*{&Y}35L9En>hDmr zS6@(i;LsYto|bjg(>7{EkrPw8d8TRM-imd*tBwyA?KJ6W2ZFM!A%H=793_bke*fMH zEv~)v2j|Q?96^U)Z(+S*$;q#$Hm}{+`%w1IYG(L28?h5bBE9S1jA<^3(vw@#Ve9Tp z!Ss_Rr%h|lfaw$Szvvh`FRaZn+X>LzMsJPBO(K!!qf~%^yj-UjIu+4^Hc;POJc+~Z*+v24) zRoG@s%!7^_9k~eCyk4E())=I&fgfF0n?-Xir4k)r?%dr7m0b4#5Hqa3xt|Em=zfuPZy+;-zq`BK z!c}$aMT9DB@U3-cZg^?LyA;Os5?cLu*s{>91p4YRGn(q^IIkW}V(YD@7c)&ea}zjV zE93)9ukt-m>BOnIjrFDZ-iwXI_O9fYEq!?Z-?GF+`n1cD_JO}SWr+=sQ&UTO;{vue z7f@@@8dyFsMr*r7W@vSWCoL~*@l~`xCjrEiP7Hd-+!CVAj+bzMEjt6M$88IniwT~N zM5<3UyEoo~wO$F*Q)FsCp&Ykk%J5-Zuf2}!Ts7$<4GV z+khF;F3xQ_g9iMz>@4oAdB#A%yxIm@!eV#dqz%C0A^pokfN=d4s+A75hFPVNr5&lH}nsV1Ub1LHka>YY{6Ijg@rAGPWdtxn(J z-Lv5?uG>zxY3n70NH`d4H z4po<}#*_Wc#8U+`gDUky!M4v3X#vm)RupOrAYzKX(M+u!RF=p38%>Hm8sBgf;Pb{NIFW7X^ zj_8T8+PV^#l^UlOJl%x44^_8Ktf_J8H`n@FJ5L!%%5Ruimk+ybDcqN7bj4n^hL9<+ zrDR5bs?_Z;zEdhsWY+9Xwd(X+1dFuKBju8S%M}@rhTe*GCPBU3%Qi1 zmWh=sB|C#xUW9ceBW^Hi~wykD6pId0& znocUdxy}sRfx7f?MA#~Ucl;B$-XotRJhENw%=n8BOTrp0Kq!n)`>D`@+f%m6!_Mc}w~*Z#yn*^{c;% zzhl3+6$@FX>UPu0{;X+dt@3M2*6TN%Prqw#YYkCWC5)*dVmx~DUB}%&xHcKU|M+15= z{+&<#x?3e0G~`mtdfUc{1D591MG7w4yQyoN=+F?o)!QZ5MUguZRpouf zZ?4+D@Bn#WYvyf4Sp=KkDceEixfAJE#pDDc3Lg$K#ZLUS_$O!~u65c_d@C~`n5WUD z6)GMU{vu!6^vX%qJon3yL1pGkdZl^`W92%jO-q?3+2_?`a~~D^`E})$0^rdNyi-;c zjd*U-5aJ$=M7Eh^Kd+GzNf@Y_g6MY;qS0CKMEeA8cCj-#h3g~%P7?UM#mE>Oyddb; zJs1~gSA~Mk84=lpE(C{M0vFbmZ=~WqdNMZG2bqKw2U`!afNgHbRQb9uH8a`AOZ9gs z=FW8dCtX?Xel6JbEHXiC&jqe|bxFDfh$Ttf_xi3fYzjP5dZ z_b+E4(dkH5T<7o-=l4?fi2Kg2`Oa!!hMqAqj*c}>jN zv#HIA6`T1}gBQPh=tZ2*C_r$`~q*oVl>k6&wYSQ_KQ z55Q(`xUcVc*U;SFHfWXe=a*}JUu&be3t`)(Jd<`7*^W{HyWkSY6hyQ+pl=xhVR`n= zeupsOALIFTN9*T|Y?io7pKp|$^=p(Q!040sBfXl8Ol#R>>mstQGfpeeQ?X(B{V2#~ zz%bS47H%fjYt8S)c!Gv};A#^_WsYXDbmO^#T*pFvMb~qjf9Vi6Rehx9SNQlO#*D6B zvc~P0EY?oO={nc1cFI}FhSVs6XBCjv*vj~$K-a*< zMp*q+S!h?t&WCozF1hTg^Z();+pF!$UZoEutL(w?!joheyxdIyz%M#t3 zyg_Kepe*>qswA2Bn|NwaxJ~tK47}RjwXWV^8U{7UZyHJSELnY{)b$wFs3om*BA)5n z03mUx6pu?@RRW+JmLYR=)etMJ;u+k7NiWzbxCD`O)f#3+_yQP)?HN2-V)d$LEYy*?<*%o)n#3 zBR?quCCsMS5s(Ydi)ZB-$fmTcQ)fa~N6%0b3|B@bBil|DZ1|E=da?>qyWrlUDZ^{_ zstvcjK(fWfPRI$W_mSjRi_BkW>8Gm6~Uu0)*L3WzFd{sdQSU zDo0x+F*4McZXah~tHEFF(^JzLtGV%k4nIe>Dq1@8F(t8rU(J2=N!$GV9Mq6{v5;;V zc|pp_r@FBh(O%6(v zQPTr5Y5~&^Ev))KlanGJDG%S2%Xj4r1o&QO)rs`ggxvJpuAt}k&h~Nk%Bn=cs2zpI5#D~z2 zd%#v}jXkxCW^WQy$(EW~Tg9ZNtg-k;sfm&1UhgrY0+Sk?cYmndTCPPkuR%)A=54+Q z6bvbT&4BH#k2jAe1@ThdW|oN;Frx|6@eV4eIaX%fJ)ce)Mh!I&2E7vO{9w1TVfVu( z7=`9%TN>wj9&xGFP|^x;Jy~eF^93#O+}$B^*RExT`c@SZb|*xSH+OBP4N0vGz2>L2 zINKfTvLvcAJ;tw9pI#_NIGe{J7q8EwY?dBh8O(QgGdw0gl)1zU^6>Q% z?Rc`Ht?FZ~kUNkVDiyt$7GIA~vNGz^A!-|%&4(=4M=nv~BckGZDLgOdjCOC*p*Z_w zonz+HC4M9l8sXoou@I}7<4AhNY)V(7wz}*!-CxHIe0;<&-!(tHF&}DgsY|z1%e71x zP`!_Ea8|2G2yIMC@{~#Slu1rlNwi^XDA}hDBw7+OSn>3vuIePqt{>aSQzx1A*$vjR zwpNN9y@nK#;HhEhacpQ~LXu|zMWX1O1L+kGC9~AHbX=JHDV5%3n_I{OLG!QQ3_PC^ z5DeK|$p{@gykqI&#)fgo#3>2O@D8?D1Zq&iOyZ4R8(G;BEc` zk^c`m{~{NptLahl(Z!vB{ly!x^t-dz5r#Rp7d@`+Q{pp3lc#EorR#d^K(9(-j%<8Fi1 zB$vsG+0T8;56T`Ux-6eY?!|(bkr0nY8-L%QG`PC^b1h~1^Ud+A52fE)7Oca1Cb#)_ ztHrS5rWh-}(tMk;e8-|(x4mQFCO&IXi^-NCpLrk)yFU)iUT(%DV74%ce3(dm`ps$Z zJvDKx_{NfR?Y-NamF=&_xd|GrdvggEw&vCLfqT_0Ftax5$lw3kc}76tfA4Lxc5FW@ zo=Z9h>d=6E{~&;{DsXT2z&S;8O@8n%Q2q(R{u7zseM4am{yU(*xG%}TJY(mHQnR)? zUiz~7U#+z)NxAoamXYI(+~3|Gs=!+#V{%}VvJQJGrJ#WIq;tugcGVs?Jk6Vba8yiH z37;Ftal7*GYhI898-C48Y>@kpG$tsVY&NmjXEALOXePa)dampMOVT+>#VZE>idpYR6y}eOcFu?3c2QyEFWY4{% zeSmP#oj(EAAojAqW5ji}01(P6XmNCB;w`{gbZ2U+?&W6#w3PU6_Pf3JfuNF}9X-?c z`ExwID^-7fb(i2Oq7`s=x;s4)q-+9$hC5(QVD4r?)YYe#TLeiX)n0p83VwYra4QAY zvUWAzc3=s1b4M76J;?cm!{Oj@yH@F4{bX`7f{+;@sHgGTfYY?OsH0I>2$TVjFCIHJ z_CwnDKNy`qbX2AIU!UIVUgs0@l>Gg?_rCR~`wiWWD*W1hQrPZs%b~}W9hRs6)G&Ve zcp&D5)H$f+L6iOP%fARb`T3XYKNtnqA-Nq5oRdBKxs2|mHJ3$Q5`jd>VpFUbI_kWe zWt6Vj{(J{Ok1;Vg7K48BCBky%j^HHDWmit0W0|XT<=es7|Nb#$-gc*AxlP3Hd3Lth z@4x>{DRY6XP4^VLG>J#NYX&XW(cS&QTRjnnBkk_2$tWrLsd_9=ymN!Wz?tUzE}EGg zIdohxr?$4XNAxl{?va3y!sxNifm74n+}!SMFW=@%NJzL@STGGNsqQ?9imF1;jUxp_A}P$=^77{l96CGtxKfR#p|SB# zScqTSmwUHV(lz|24<9-v{~|9hlH!8SnwoOs1D6e|&$4)JP>qVLq%bDg;5^VK&QZl+ zp@S_;*!hzJ2M^;vBk@)*gptp4Th$WZHIEJccG~CC3AAd|nU2d4uUkdRW5tg=x8(kP zX!f^Xh^RmR{PV#gfpJ1RNZt@5PM^)kodui`y>Qm^kG3_*E*Mlo7D{k)Y)gt|$ zJ~fXwB84HoqJTe^=SL%&VAV^;81-YmaiW^<`*NZ1yLXo<5&{Pgko4H{N1`IYhTBRs z55@Bz`MS2VJ@XpV(b;)teyC!e)`XL>$_uE?*6tCw)tjk#_{8~#fS9v7U}au$yXD}h zFP=wycdOY=h2z`%$xtEn6~YrtNd+-s}!mJ2e4t)^+k^@7kpaGE;SSV z)rAq`r#7vB%=F!{yPuEC{#T1)M|~jxK{5&G4d6I=!LSXo?UScZkN)z@WlPIn05?cf zMsec0ow?A|XE8C}5dPGz*2S@UO*A(wntA*7 zZOOA|5%WXJva+(<>;2}lBh_+^p&OpTL_gwAP)HhZiWL^*`tOz6>RPFBL!lEOtAtUs~;sg z+dZm|o;+!6XD7VW#M2YhS?0TO<3<4Ju9hJwXiB*sO%K4I+JM;K)5^kEXKRPpW@!a} zjW-m(4Y)ns8EVlzScs6A*n&i2W@b0&VTW!UutlDpvH-*4t?Y8`+V^|s{4xh)fvgFE ziU2$jApE$D+}zxw$B$D^E1o*_2mqomfCq7JW9~+c4|VV>3eY$H_~VZ+ErR;r-EHK* zXQ)V4JCFKu($klqCF)=u^mO^W9N3Hg06u+FPcI-T$2op?N`A7`%;uov`b73j={l4U zg{Hkd{;=Wwol5S?OIqvHab8S2vp-elzXUT1w8?|n+|*|n3=F8l0GYhAM5ohtf>XwQ zyFtD%a1+9SB{T_MUR*ocrV8to)YB8kw70M}m@*0q3+Ex=HBjht^77vIze8NUydN}v zyPL}W#ZgVb8k{2CAFB%t+g)h~w3)c0XAH`{D5Xaz{?go_27fqQM(C``Z)$4E;K@Ig zx#**~J1{=yu$61x>LOH)$h?1-4wRae(D2P5`X4Vy4}vosM?Kah0R4uj^M z8Z2?RSz=S_(zHlYR#L(MQ)uDrJboGjwyuDC6$Kuz_5IUB!kP%lr%#`9MWxL$uUl9g zh4p6cZ~9L0hP4HXV}n)xdn=wsz`8wDfyMUt@a!l6F{VwnV-ED_dMpHKYierFk5oqk z?=guWyeTU3QU#!Ob{1kwY4>0kKxt)oE+c`?AOP?2jZxaW#*`O9Eav=0y@w_DZ`9RCR;c- zK!Gf8Y-~6Z5Kl8QPQGtx;kW`#R6cR|fsQy|==#hh;8)_~=8%j*gw~3E z(e0C`fOpt;;9z+;*j_nW`+3&^U;UfcLt%$|d^ z;~g|*i4ezLT<=m%{HQArMwJ5+os$+7U&t2r&FdW|=7^&cpj-^Y+n^x~xv zgy9)qRfE6#{;R&Yceic>b#*@=#X6{y2Re?wV))Faj)zDDr*f9gpUf?)x04l4_Fa&0U(`tq7F(75@0ukSH z$Zy|XI4E%PgOIt-C3p8+-kVv#7kVBa|M`x15xH{`qi+VjFCZWQ0<(;~ytBUJ4a3u+ zCC(O-eobd7(t^RN6sexu@^1@ywK&#mv7bwDYRoGq~+wIA+)eWHLt-v z=>o#O)UbBsxT51-|56Zk8DPYFo}ao>ep7z5E-=~@s~(TV0(pc7>Mp>Q@OxhZ{xE2M zXkRnGL|8MB+1-kdA3v@yP${$nKs4CF##C?hlOiGoWo1CGzKd!BytYF#v?hIVOcdbU zR%_H~$;-!pd*!Y4@>y6|fOXL`Xn@$IGo=?D$NOn1aV-ZWVjmf8MY z52hf84;}!|6)-pO5#7VwNJvbK=%T;Bdm-WZ^NZK7{{Win1&H;>(g6PpgtNdkbCHx% zr`IoDycp8~>H&-kx5>-XvjYS|jJ40X(Bq+ico-`J(E!#rsu3x6gdafuzT@ZjUl>u# zG|O)qA07$SLTD4z)YTJkICCqjM6@HYBI?-Kh6Wv;@~0-$5^!DvgM%#OLBng;jtUDK zg@@|`3#>3*c~d?oFVE81xfcW+`!5{NcfE7xo`xteOp4A89o1eG`)=B&PZKm{frVcm z@(x?`9s55AzxQHC`?d3-ru-+KH% DSHFjs literal 0 HcmV?d00001 diff --git a/docs/hacking-howto.html b/docs/hacking-howto.html new file mode 100644 index 0000000..000aabf --- /dev/null +++ b/docs/hacking-howto.html @@ -0,0 +1,1541 @@ + + + + + + +i3: Hacking i3: How To + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document is intended to be the first thing you read before looking and/or +touching i3’s source code. It should contain all important information to help +you understand why things are like they are. If it does not mention something +you find necessary, please do not hesitate to contact me.

+
+WARNING! +

+

This document is not 100% up to date. Specifically, everything up to and +including [startup] has been updated recently. The rest might contain +outdated information.

+

+
+
+
+
+

Building i3

+
+

You can build i3 like you build any other software package which uses +The Meson Build system; see +Quickstart +Guide → Compiling a Meson project. In case you’re unfamiliar:

+
+
+
mkdir -p build
+meson setup build
+meson compile -C build
+
+
+

Build system features

+
    +
  • +

    +ninja test runs the i3 testsuite. See docs/testsuite for details. +

    +
  • +
  • +

    +meson dist builds a release tarball and runs tests on the result. +

    +
  • +
  • +

    +meson -Ddocs=true -Dmans=true will enable the options to build docs and + manpages. These options require additional dependencies that are normally not + required for users who just want to build i3. +

    +
  • +
  • +

    +meson -Db_sanitize=address will enable the address sanitizer which is + disabled by default. A summary of memory leaks will be printed on program + exit. This can include false-positives. For other options of the b_sanitize + flag see https://mesonbuild.com/Builtin-options.html. +

    +
  • +
+
+
+
+
+

Pull requests

+
+

Please talk to us before working on new features to see whether they will be +accepted. A good way for this is to open an issue and asking for opinions on it. +Even for accepted features, this can be a good way to refine an idea upfront. +However, we don’t want to see certain features in i3, e.g., switching window +focus in an Alt+Tab like way.

+

When working on bugfixes, please make sure you mention that you are working on it +in the corresponding bug report at https://github.com/i3/i3/issues. In case there +is no bug report yet, please create one.

+

After you are done, please submit your work for review as a pull request at +https://github.com/i3/i3. In order to make your review go as fast as possible, +you could have a look at previous reviews and see what the common mistakes are.

+
+

Which branch to use?

+

Work on i3 generally happens in two branches: “next” (default) and “stable”.

+

The contents of “stable” are always stable. That is, it contains the source code +of the latest release, plus any bugfixes that were applied since that release.

+

New features are only found in the “next” branch. Always use this branch when +writing new code (both bugfixes and features).

+
+
+
+
+

Window Managers

+
+

A window manager is not necessarily needed to run X, but it is usually used in +combination with X to facilitate some things. The window manager’s job is to +take care of the placement of windows, to provide the user with some mechanisms +to change the position/size of windows and to communicate with clients to a +certain extent (for example handle fullscreen requests of clients such as +MPlayer).

+

There are no different contexts in which X11 clients run, so a window manager +is just another client, like all other X11 applications. However, it handles +some events which normal clients usually don’t handle.

+

In the case of i3, the tasks (and order of them) are the following:

+
    +
  1. +

    +Grab the key bindings (events will be sent upon keypress/keyrelease) +

    +
  2. +
  3. +

    +Iterate through all existing windows (if the window manager is not started as + the first client of X) and manage them (reparent them, create window + decorations, etc.) +

    +
  4. +
  5. +

    +When new windows are created, manage them +

    +
  6. +
  7. +

    +Handle the client’s _WM_STATE property, but only _WM_STATE_FULLSCREEN and + _NET_WM_STATE_DEMANDS_ATTENTION +

    +
  8. +
  9. +

    +Handle the client’s WM_NAME property +

    +
  10. +
  11. +

    +Handle the client’s size hints to display them proportionally +

    +
  12. +
  13. +

    +Handle the client’s urgency hint +

    +
  14. +
  15. +

    +Handle enter notifications (focus follows mouse) +

    +
  16. +
  17. +

    +Handle button (as in mouse buttons) presses for focus/raise on click +

    +
  18. +
  19. +

    +Handle expose events to re-draw own windows such as decorations +

    +
  20. +
  21. +

    +React to the user’s commands: Change focus, Move windows, Switch workspaces, + Change the layout mode of a container (default/stacking/tabbed), start a new + application, restart the window manager +

    +
  22. +
+

In the following chapters, each of these tasks and their implementation details +will be discussed.

+
+

Tiling window managers

+

Traditionally, there are two approaches to managing windows: The most common one +nowadays is stacking (or floating, using i3’s terminology), which means the user +can freely move/resize the windows, potentially overlapping them. The other +approach is called tiling, which means that the window manager distributes +windows to use as much space as possible while not overlapping each other.

+

The idea behind tiling is that you should not need to waste your time +moving/resizing windows while you usually want to get some work done. After +all, most users sooner or later tend to lay out their windows in a way which +corresponds to tiling or stacking mode in i3. Therefore, why not let i3 do this +for you? Certainly, it’s faster than you could ever do it.

+

The problem with most tiling window managers is that they are too inflexible. +In my opinion, a window manager is just another tool, and similar to vim which +can edit all kinds of text files (like source code, HTML, …) and is not limited +to a specific file type, a window manager should not limit itself to a certain +layout (like dwm, awesome, …) but provide mechanisms for you to easily create +the layout you need at the moment.

+
+
+

The layout tree

+

The data structure which i3 uses to keep track of your windows is a tree. Every +node in the tree is a container (type Con). Some containers represent actual +windows (every container with a window != NULL), some represent split +containers and a few have special purposes: they represent workspaces, outputs +(like VGA1, LVDS1, …) or the X11 root window.

+

So, when you open a terminal and immediately open another one, they reside in +the same split container, which uses the default layout. In case of an empty +workspace, the split container we are talking about is the workspace.

+

To get an impression of how different layouts are represented, just play around +and look at the data structures — they are exposed as a JSON hash. See +https://i3wm.org/docs/ipc.html#_tree_reply for documentation on that and an +example.

+
+
+
+
+

Files

+
+

i3’s source code is in the src folder while header files reside in include. +Other tools such as i3bar and i3-nagbar have their own folders. i3 and its tools +share an internal library called “libi3” which also has its own folder.

+

The following list gives an overview of the codebase, explaining the +functionality of the most important, core source code files. Other files in the +tree that are not mentioned here implement specific functionalities: for example, +src/scratchpad.c is obviously about the scratchpad functionality.

+
+
+include/data.h +
+
+

+Contains data definitions used by nearly all files. +

+
+
+include/*.h +
+
+

+Contains forward definitions for all public functions, as well as +doxygen-compatible comments (so if you want to get a bit more of the big +picture, either browse all header files or use doxygen if you prefer that). +

+
+
+src/config_directives.c +
+
+src/commands.c +
+
+

+Contain the definitions for all high-level config and command directives. These +are excellent places to start with a top-to-bottom approach to understand +specific i3 behavior. For example, if you want to investigate a bug that happens +for the move to mark command, you can use gdb to pause in +cmd_move_con_to_mark and then work your way from there, stepping into +lower-level functions. +

+
+
+src/con.c +
+
+

+Contains all functions which deal with containers directly (creating containers, +searching containers, getting specific properties from containers, …). Contains +abstractions and auxiliary functions necessary to work with the container +structure which is used in almost all parts of the codebase. +

+
+
+src/tree.c +
+
+

+Contains functions which deal with the tree abstraction. However, be aware that +src/con.c also contains functions that heavily interact with the tree +structure. Some functions that are included in str/tree.c are those that handle +opening and closing containers in the tree, finding the container that should be +focused next and flattening the tree. See also src/move.c for other +move-specific functions that interact with the tree, which were moved into their +own file because they are so long. +

+
+
+src/workspace.c +
+
+

+Contains functions which deal with workspaces. Includes code that creates new +workspaces, shows existing ones and deals with workspace assignments. +

+
+
+src/handlers.c +
+
+

+Contains all handlers for all kinds of X events (new window title, new hints, +unmapping, key presses, button presses, …). This is a very important file to +understand how i3 interacts with changes to its environment. +

+
+
+src/command_parser.c +
+
+src/config_parser.c +
+
+

+Contain a hand-written parser to parse commands and configuration (commands are what +you bind on keys and what you can send to i3 using the IPC interface, like +move left or workspace 4). src/config.c is responsible for calling the +configuration parser. +

+
+
+src/click.c +
+
+src/resize.c +
+
+

+Contain functions which handle mouse button clicks (right mouse button +clicks initiate resizing and thus are relatively complex). +

+
+
+src/manage.c +
+
+

+Looks at existing or new windows and decides whether to manage them. If so, it +reparents the window and inserts it into our data structures. +

+
+
+src/match.c +
+
+

+A "match" is a data structure which acts like a mask or expression to match +certain windows or not. For example, when using commands, you can specify a +command like this: [title="Firefox"] kill. The title member of the match +data structure will then be filled and i3 will check each window using +match_matches_window() to find the windows affected by this command. +

+
+
+src/randr.c +
+
+

+The RandR API is used to get (and re-query) the configured outputs (monitors, +…). Legacy Xinerama support resides in src/xinerama.c. +

+
+
+src/render.c +
+
+

+Renders the tree data structure by assigning coordinates to every node. These +values will later be pushed to X11 in src/x.c. +

+
+
+src/sighandler.c +
+
+

+Handles SIGSEGV, SIGABRT and SIGFPE by showing a dialog that i3 crashed. +You can choose to let it dump core and restart i3 in-place (either trying to +preserve layout or forget about it). +

+
+
+src/window.c +
+
+

+Handlers to update X11 window properties like WM_CLASS, _NET_WM_NAME, +CLIENT_LEADER, etc. +

+
+
+include/.xmacro. +
+
+

+A file containing all X11 atoms which i3 uses. This file will be included +various times (for defining, requesting and receiving the atoms), each time +with a different definition of xmacro(). +

+
+
+
+
+
+

Data structures

+
+

See include/data.h for documented data structures. The most important ones are +explained here.

+

The following picture is generated by the contrib/dump-asy.pl script.

+

+ +The Big Picture + +

+

The hierarchy is:

+
    +
  1. +

    +Root container +

    +
  2. +
  3. +

    +Output containers: eDP-1 in this example and the internal __i3+ output +

    +
  4. +
  5. +

    +Content and 2 dockarea containers +

    +
  6. +
  7. +

    +Workspaces: Numbered workspace “1” and a “Named workspace” +

    +
  8. +
  9. +

    +Split containers: One horizontal in the first workspace and a tabbed one in + the named one. +

    +
  10. +
  11. +

    +Leaf containers: Windows like vim and an i3bar dock. +

    +
  12. +
+

The data type is Con, in all cases.

+
+

Root container

+

The root container (global variable croot) is the up-most ascendant of every i3 +container. It can be used to iterate over the whole tree structure. E.g., it is +used to reply to the GET_WORKSPACES request, iterating over it’s children to +find all workspaces. This is different from the X11 root window.

+

The X11 root window (global variable root) is a single window per X11 display +(a display is identified by :0 or :1 etc.). The root window is what you draw +your background image on. It spans all the available outputs, e.g. VGA1 is a +specific part of the root window and LVDS1 is a specific part of the root +window.

+
+
+

Output container

+

Every active output obtained through RandR is represented by one output +container. Outputs are considered active when a mode is configured (meaning +something is actually displayed on the output) and the output is not a clone.

+

For example, if your notebook has a screen resolution of 1280x800 px and you +connect a video projector with a resolution of 1024x768 px, set it up in clone +mode (xrandr --output VGA1 --mode 1024x768 --same-as LVDS1), i3 will +reduce the resolution to the lowest common resolution and disable one of the +cloned outputs afterwards.

+

However, if you configure it using xrandr --output VGA1 --mode 1024x768 +--right-of LVDS1, i3 will set both outputs active. For each output, a new +workspace will be assigned. New workspaces are created on the output you are +currently on.

+
+
+

Content container

+

Each output has multiple children. Two of them are dock containers which hold +the top and bottom dock clients. The other one is the content container, which +holds the actual content (workspaces) of this output.

+
+
+

Workspace

+

A workspace is identified by its name. Basically, you could think of +workspaces as different desks in your office, if you like the desktop +metaphor. They just contain different sets of windows and are completely +separate of each other. Other window managers also call this “Virtual +desktops”.

+
+
+

Split container

+

A split container is a container which holds an arbitrary amount of split +containers or X11 window containers. It has an orientation (horizontal or +vertical) and a layout.

+

Split containers (and X11 window containers, which are a subtype of split +containers) can have different border styles.

+
+
+

Leaf containers

+

A leaf container holds exactly one X11 window. They can’t have any children.

+
+
+
+
+

List/queue macros

+
+

i3 makes heavy use of the list macros defined in BSD operating systems. To +ensure that the operating system on which i3 is compiled has all the expected +features, i3 comes with include/queue.h. On BSD systems, you can use man +queue(3). On Linux, you have to use google (or read the source).

+

The lists used are SLIST (single linked lists), CIRCLEQ (circular queues) +and TAILQ (tail queues). Usually, TAILQ is used which allows inserting +elements at arbitrary positions or at the end of the list. If only forward +traversal is necessary, an SLIST can be used. CIRCLEQ is used just to +manage the X11 state of each window.

+
+
+
+

Startup (src/main.c, main())

+
+

Among other things, the main() function does the following:

+
    +
  • +

    +Establish the xcb connection +

    +
  • +
  • +

    +Load the i3 config +

    +
  • +
  • +

    +Check for XKB extension on the separate X connection, load Xcursor +

    +
  • +
  • +

    +Set up EWMH hints +

    +
  • +
  • +

    +Grab the keycodes for which bindings exist +

    +
  • +
  • +

    +Check for XRandR screens +

    +
  • +
  • +

    +Manage all existing windows +

    +
  • +
  • +

    +Exec configured startup processes +

    +
  • +
  • +

    +Start i3bar if configured +

    +
  • +
  • +

    +Enter the event loop +

    +
  • +
+
+
+
+

Keybindings

+
+
+

Grabbing the bindings

+

Grabbing the bindings is quite straight-forward. You pass X your combination of +modifiers and the keycode you want to grab and whether you want to grab them +actively or passively. Most bindings (everything except for bindings using +Mode_switch) are grabbed passively, that is, just the window manager gets the +event and cannot replay it.

+

We need to grab bindings that use Mode_switch actively because of a bug in X. +When the window manager receives the keypress/keyrelease event for an actively +grabbed keycode, it has to decide what to do with this event: It can either +replay it so that other applications get it or it can prevent other +applications from receiving it.

+

So, why do we need to grab keycodes actively? Because X does not set the +state-property of keypress/keyrelease events properly. The Mode_switch bit is +not set and we need to get it using XkbGetState. This means we cannot pass X +our combination of modifiers containing Mode_switch when grabbing the key and +therefore need to grab the keycode itself without any modifiers. This means, +if you bind Mode_switch + keycode 38 ("a"), i3 will grab keycode 38 ("a") and +check on each press of "a" if the Mode_switch bit is set using XKB. If yes, it +will handle the event, if not, it will replay the event.

+
+
+

Handling a keypress

+

As mentioned in "Grabbing the bindings", upon a keypress event, i3 first gets +the correct state.

+

Then, it looks through all bindings and gets the one which matches the received +event.

+

The bound command is parsed by the i3 parser, see parse_command in +src/commands_parser.c.

+
+
+
+
+

Manage windows (src/main.c, manage_window() and reparent_window())

+
+

manage_window() does some checks to decide whether the window should be +managed at all:

+
    +
  • +

    +Windows have to be mapped, that is, visible on screen +

    +
  • +
  • +

    +The override_redirect must not be set. Windows with override_redirect shall + not be managed by a window manager +

    +
  • +
+

Afterwards, i3 gets the initial geometry and reparents the window (see +reparent_window()) if it wasn’t already managed.

+

Reparenting means that for each window which is reparented, a new window, +slightly larger than the original one, is created. The original window is then +reparented to the bigger one (called "frame").

+

After reparenting, the window type (_NET_WM_WINDOW_TYPE) is checked to see +whether this window is a dock (_NET_WM_WINDOW_TYPE_DOCK), like dzen2 for +example. Docks are handled differently, they don’t have decorations and are not +assigned to a specific container. Instead, they are positioned at the bottom +or top of the screen (in the appropriate dock area containers). To get the +height which needs to be reserved for the window, the _NET_WM_STRUT_PARTIAL +property is used.

+

Furthermore, the list of assignments (to other workspaces, which may be on +other screens) is checked. If the window matches one of the user’s criteria, +it may either be put in floating mode or moved to a different workspace. If the +target workspace is not visible, the window will not be mapped.

+
+
+
+

What happens when an application is started?

+
+

i3 does not care about applications. All it notices is when new windows are +mapped (see src/handlers.c, handle_map_request()). The window is then +reparented (see section "Manage windows").

+

After reparenting the window, render_tree() is called which renders the +internal layout table. The new window has been placed in the currently focused +container and therefore the new window and the old windows (if any) need to be +moved/resized so that the currently active layout (default/stacking/tabbed mode) +is rendered correctly. To move/resize windows, a window is “configured” in +X11-speak.

+

Some applications, such as MPlayer obviously assume the window manager is +stupid and try to configure their windows by themselves. This generates an +event called configurerequest. i3 handles these events and tells the window the +size it had before the configurerequest (with the exception of not yet mapped +windows, which get configured like they want to, and floating windows, which +can reconfigure themselves).

+
+
+
+

_NET_WM_STATE

+
+

Only the _NET_WM_STATE_FULLSCREEN and _NET_WM_STATE_DEMANDS_ATTENTION atoms +are handled.

+

The former calls toggle_fullscreen() for the specific client which just +configures the client to use the whole screen on which it currently is. +Also, it is set as fullscreen_client for the i3Screen.

+

The latter is used to set, read and display urgency hints.

+
+
+
+

WM_NAME

+
+

When the WM_NAME property of a window changes, its decoration (containing the +title) is re-rendered. Note that WM_NAME is in COMPOUND_TEXT encoding which is +totally uncommon and cumbersome. Therefore, the _NET_WM_NAME atom will be used +if present.

+
+
+
+

_NET_WM_NAME

+
+

Like WM_NAME, this atom contains the title of a window. However, _NET_WM_NAME +is encoded in UTF-8. i3 will recode it to UCS-2 in order to be able to pass it +to X. Using an appropriate font (ISO-10646), you can see most special +characters (every special character contained in your font).

+
+
+
+

Size hints

+
+

Size hints specify the minimum/maximum size for a given window as well as its +aspect ratio. This is important for clients like mplayer, who only set the +aspect ratio and resize their window to be as small as possible (but only with +some video outputs, for example in Xv, while when using x11, mplayer does the +necessary centering for itself).

+

So, when an aspect ratio was specified, i3 adjusts the height of the window +until the size maintains the correct aspect ratio. For the code to do this, see +src/layout.c, function resize_client().

+
+
+
+

Rendering (src/layout.c, render_layout() and render_container())

+
+

Rendering in i3 version 4 is the step which assigns the correct sizes for +borders, decoration windows, child windows and the stacking order of all +windows. In a separate step (x_push_changes()), these changes are pushed to +X11.

+

Keep in mind that all these properties (rect, window_rect and deco_rect) +are temporary, meaning they will be overwritten by calling render_con. +Persistent position/size information is kept in geometry.

+

The entry point for every rendering operation (except for the case of moving +floating windows around) currently is tree_render() which will re-render +everything that’s necessary (for every output, only the currently displayed +workspace is rendered). This behavior is expected to change in the future, +since for a lot of updates, re-rendering everything is not actually necessary. +Focus was on getting it working correct, not getting it work very fast.

+

What tree_render() actually does is calling render_con() on the root +container and then pushing the changes to X11. The following sections talk +about the different rendering steps, in the order of "top of the tree" (root +container) to the bottom.

+
+

Rendering the root container

+

The i3 root container (con→type == CT_ROOT) represents the X11 root window. +It contains one child container for every output (like LVDS1, VGA1, …), which +is available on your computer.

+

Rendering the root will first render all tiling windows and then all floating +windows. This is necessary because a floating window can be positioned in such +a way that it is visible on two different outputs. Therefore, by first +rendering all the tiling windows (of all outputs), we make sure that floating +windows can never be obscured by tiling windows.

+

Essentially, though, this code path will just call render_con() for every +output and x_raise_con(); render_con() for every floating window.

+

In the special case of having a "global fullscreen" window (fullscreen mode +spanning all outputs), a shortcut is taken and x_raise_con(); render_con() is +only called for the global fullscreen window.

+
+
+

Rendering an output

+

Output containers (con→layout == L_OUTPUT) represent a hardware output like +LVDS1, VGA1, etc. An output container has three children (at the moment): One +content container (having workspaces as children) and the top/bottom dock area +containers.

+

The rendering happens in the function render_l_output() in the following +steps:

+
    +
  1. +

    +Find the content container (con→type == CT_CON) +

    +
  2. +
  3. +

    +Get the currently visible workspace (con_get_fullscreen_con(content, + CF_OUTPUT)). +

    +
  4. +
  5. +

    +If there is a fullscreened window on that workspace, directly render it and + return, thus ignoring the dock areas. +

    +
  6. +
  7. +

    +Sum up the space used by all the dock windows (they have a variable height + only). +

    +
  8. +
  9. +

    +Set the workspace rects (x/y/width/height) based on the position of the + output (stored in con→rect) and the usable space + (con→rect.{width,height} without the space used for dock windows). +

    +
  10. +
  11. +

    +Recursively raise and render the output’s child containers (meaning dock + area containers and the content container). +

    +
  12. +
+
+
+

Rendering a workspace or split container

+

From here on, there really is no difference anymore. All containers are of +con→type == CT_CON (whether workspace or split container) and some of them +have a con→window, meaning they represent an actual window instead of a +split container.

+
+

Default layout

+

In default layout, containers are placed horizontally or vertically next to +each other (depending on the con→orientation).

+
+
+

Stacked layout

+

In stacked layout, only the focused window is actually shown (this is achieved +by calling x_raise_con() in reverse focus order at the end of render_con()).

+

The available space for the focused window is the size of the container minus +the height of the window decoration for all windows inside this stacked +container.

+

If border style is "1pixel" or "none", no window decoration height will be +reserved (or displayed later on), unless there is more than one window inside +the stacked container.

+
+
+

Tabbed layout

+

Tabbed layout works precisely like stacked layout, but the window decoration +position/size is different: They are placed next to each other on a single line +(fixed height).

+
+
+

Dock area layout

+

This is a special case. Users cannot choose the dock area layout, but it will be +set for the dock area containers. In the dockarea layout (at the moment!), +windows will be placed above each other.

+
+
+
+

Rendering a window

+

A window’s size and position will be determined in the following way:

+
    +
  1. +

    +Subtract the border if border style is not "none" (but "normal" or "1pixel"). +

    +
  2. +
  3. +

    +Subtract the X11 border, if the window has an X11 border > 0. +

    +
  4. +
  5. +

    +Obey the aspect ratio of the window (think MPlayer). +

    +
  6. +
  7. +

    +Obey the height- and width-increments of the window (think terminal emulator + which can only be resized in one-line or one-character steps). +

    +
  8. +
+
+
+
+
+

Pushing updates to X11 / Drawing

+
+

A big problem with i3 before version 4 was that we just sent requests to X11 +anywhere in the source code. This was bad because nobody could understand the +entirety of our interaction with X11, it lead to subtle bugs and a lot of edge +cases which we had to consider all over again.

+

Therefore, since version 4, we have a single file, src/x.c, which is +responsible for repeatedly transferring parts of our tree datastructure to X11.

+

src/x.c consists of multiple parts:

+
    +
  1. +

    +The state pushing: x_push_changes(), which calls x_push_node(). +

    +
  2. +
  3. +

    +State modification functions: x_con_init, x_reinit, + x_reparent_child, x_move_win, x_con_kill, x_raise_con, x_set_name + and x_set_warp_to. +

    +
  4. +
  5. +

    +Expose event handling (drawing decorations): x_deco_recurse() and + x_draw_decoration(). +

    +
  6. +
+
+

Pushing state to X11

+

In general, the function x_push_changes should be called to push state +changes. Only when the scope of the state change is clearly defined (for +example only the title of a window) and its impact is known beforehand, one can +optimize this and call x_push_node on the appropriate con directly.

+

x_push_changes works in the following steps:

+
    +
  1. +

    +Clear the eventmask for all mapped windows. This leads to not getting + useless ConfigureNotify or EnterNotify events which are caused by our + requests. In general, we only want to handle user input. +

    +
  2. +
  3. +

    +Stack windows above each other, in reverse stack order (starting with the + most obscured/bottom window). This is relevant for floating windows which + can overlap each other, but also for tiling windows in stacked or tabbed + containers. We also update the _NET_CLIENT_LIST_STACKING hint which is + necessary for tab drag and drop in Chromium. +

    +
  4. +
  5. +

    +x_push_node will be called for the root container, recursively calling + itself for the container’s children. This function actually pushes the + state, see the next paragraph. +

    +
  6. +
  7. +

    +If the pointer needs to be warped to a different position (for example when + changing focus to a different output), it will be warped now. +

    +
  8. +
  9. +

    +The eventmask is restored for all mapped windows. +

    +
  10. +
  11. +

    +Window decorations will be rendered by calling x_deco_recurse on the root + container, which then recursively calls itself for the children. +

    +
  12. +
  13. +

    +If the input focus needs to be changed (because the user focused a different + window), it will be updated now. +

    +
  14. +
  15. +

    +x_push_node_unmaps will be called for the root container. This function + only pushes UnmapWindow requests. Separating the state pushing is necessary + to handle fullscreen windows (and workspace switches) in a smooth fashion: + The newly visible windows should be visible before the old windows are + unmapped. +

    +
  16. +
+

x_push_node works in the following steps:

+
    +
  1. +

    +Update the window’s WM_NAME, if changed (the WM_NAME is set on i3 + containers mainly for debugging purposes). +

    +
  2. +
  3. +

    +Reparents a child window into the i3 container if the container was created + for a specific managed window. +

    +
  4. +
  5. +

    +If the size/position of the i3 container changed (due to opening a new + window or switching layouts for example), the window will be reconfigured. + Also, the pixmap which is used to draw the window decoration/border on is + reconfigured (pixmaps are size-dependent). +

    +
  6. +
  7. +

    +Size/position for the child window is adjusted. +

    +
  8. +
  9. +

    +The i3 container is mapped if it should be visible and was not yet mapped. + When mapping, WM_STATE is set to WM_STATE_NORMAL. Also, the eventmask of + the child window is updated and the i3 container’s contents are copied from + the pixmap. +

    +
  10. +
  11. +

    +x_push_node is called recursively for all children of the current + container. +

    +
  12. +
+

x_push_node_unmaps handles the remaining case of an i3 container being +unmapped if it should not be visible anymore. WM_STATE will be set to +WM_STATE_WITHDRAWN.

+
+
+

Drawing window decorations/borders/backgrounds

+

x_draw_decoration draws window decorations. It is run for every leaf +container (representing an actual X11 window) and for every non-leaf container +which is in a stacked/tabbed container (because stacked/tabbed containers +display a window decoration for split containers, which consists of a representation +of the child container’s names.

+

Then, parameters are collected to be able to determine whether this decoration +drawing is actually necessary or was already done. This saves a substantial +number of redraws (depending on your workload, but far over 50%).

+

Assuming that we need to draw this decoration, we start by filling the empty +space around the child window (think of MPlayer with a specific aspect ratio) +in the user-configured client background color.

+

Afterwards, we draw the appropriate border (in case of border styles "normal" +and "1pixel") and the top bar (in case of border style "normal").

+

The last step is drawing the window title on the top bar.

+
+
+
+
+

User commands (parser-specs/commands.spec)

+
+

In the configuration file and when using i3 interactively (with i3-msg, for +example), you use commands to make i3 do things, like focus a different window, +set a window to fullscreen, and so on. An example command is floating enable, +which enables floating mode for the currently focused window. See the +appropriate section in the User’s Guide for a reference of +all commands.

+

In earlier versions of i3, interpreting these commands was done using lex and +yacc, but experience has shown that lex and yacc are not well suited for our +command language. Therefore, starting from version 4.2, we use a custom parser +for user commands and the configuration file. +The input specification for this parser can be found in the file +parser-specs/*.spec. Should you happen to use Vim as an editor, use +:source parser-specs/highlighting.vim to get syntax highlighting for this file +(highlighting files for other editors are welcome).

+
+
Excerpt from commands.spec
+
+
state INITIAL:
+  '[' -> call cmd_criteria_init(); CRITERIA
+  'move' -> MOVE
+  'exec' -> EXEC
+  'workspace' -> WORKSPACE
+  'exit' -> call cmd_exit()
+  'restart' -> call cmd_restart()
+  'reload' -> call cmd_reload()
+
+

The input specification is written in an extremely simple format. The +specification is then converted into C code by the Perl script +generate-commands-parser.pl (the output file names begin with GENERATED and the +files are stored in the include directory). The parser implementation +src/commands_parser.c includes the generated C code at compile-time.

+

The above excerpt from commands.spec illustrates nearly all features of our +specification format: You describe different states and what can happen within +each state. State names are all-caps; the state in the above excerpt is called +INITIAL. A list of tokens and their actions (separated by an ASCII arrow) +follows. In the excerpt, all tokens are literals, that is, simple text strings +which will be compared with the input. An action is either the name of a state +in which the parser will transition into, or the keyword call, followed by +the name of a function (and optionally a state).

+
+

Example: The WORKSPACE state

+

Let’s have a look at the WORKSPACE state, which is a good example of all +features. This is its definition:

+
+
WORKSPACE state (commands.spec)
+
+
# workspace next|prev|next_on_output|prev_on_output
+# workspace back_and_forth
+# workspace <name>
+# workspace number <number>
+state WORKSPACE:
+  direction = 'next_on_output', 'prev_on_output', 'next', 'prev'
+      -> call cmd_workspace($direction)
+  'back_and_forth'
+      -> call cmd_workspace_back_and_forth()
+  'number'
+      -> WORKSPACE_NUMBER
+  workspace = string
+      -> call cmd_workspace_name($workspace)
+
+

As you can see from the commands, there are multiple different valid variants +of the workspace command:

+
+
+workspace <direction> +
+
+

+ The word workspace can be followed by any of the tokens next, + prev, next_on_output or prev_on_output. This command will + switch to the next or previous workspace (optionally on the same + output).
+ There is one function called cmd_workspace, which is defined + in src/commands.c. It will handle this kind of command. To know which + direction was specified, the direction token is stored on the stack + with the name "direction", which is what the "direction = " means in + the beginning.
+

+
+
+
+ + + +
+
Note
+
Note that you can specify multiple literals in the same line. This has + exactly the same effect as if you specified direction = + next_on_output → call cmd_workspace($direction) and so forth.
+
+
+ + + +
+
Note
+
Also note that the order of literals is important here: If next were + ordered before next_on_output, then next_on_output would never + match.
+
+
+
+workspace back_and_forth +
+
+

+ This is a very simple case: When the literal back_and_forth is found + in the input, the function cmd_workspace_back_and_forth will be + called without parameters and the parser will return to the INITIAL + state (since no other state was specified). +

+
+
+workspace <name> +
+
+

+ In this case, the workspace command is followed by an arbitrary string, + possibly in quotes, for example "workspace 3" or "workspace bleh".
+ This is the first time that the token is actually not a literal (not in + single quotes), but just called string. Other possible tokens are word + (the same as string, but stops matching at a whitespace) and end + (matches the end of the input). +

+
+
+workspace number <number> +
+
+

+ The workspace command has to be followed by the keyword number. It + then transitions into the state WORKSPACE_NUMBER, where the actual + parameter will be read. +

+
+
+
+
+

Introducing a new command

+

The following steps have to be taken in order to properly introduce a new +command (or possibly extend an existing command):

+
    +
  1. +

    +Define a function beginning with cmd_ in the file src/commands.c. Copy + the prototype of an existing function. +

    +
  2. +
  3. +

    +After adding a comment on what the function does, copy the comment and + function definition to include/commands.h. Make the comment in the header + file use double asterisks to make doxygen pick it up. +

    +
  4. +
  5. +

    +Write a test case (or extend an existing test case) for your feature, see + i3 testsuite. For now, it is sufficient to simply call + your command in all the various possible ways. +

    +
  6. +
  7. +

    +Extend the parser specification in parser-specs/commands.spec. Run the + testsuite and see if your new function gets called with the appropriate + arguments for the appropriate input. +

    +
  8. +
  9. +

    +Actually implement the feature. +

    +
  10. +
  11. +

    +Document the feature in the User’s Guide. +

    +
  12. +
+
+
+
+
+

Moving containers

+
+

The movement code is pretty delicate. You need to consider all cases before +making any changes or before being able to fully understand how it works.

+
+

Case 1: Moving inside the same container

+

The reference layout for this case is a single workspace in horizontal +orientation with two containers on it. Focus is on the left container (1).

+
+ +++ + + + + + +

1

2

+
+

When moving the left window to the right (command move right), tree_move will +look for a container with horizontal orientation and finds the parent of the +left container, that is, the workspace. Afterwards, it runs the code branch +commented with "the easy case": it calls TAILQ_NEXT to get the container right +of the current one and swaps both containers.

+
+
+

Case 2: Move a container into a split container

+

The reference layout for this case is a horizontal workspace with two +containers. The right container is a v-split with two containers. Focus is on +the left container (1).

+
+ +++ + + + + + + + + +

1

2

3

+
+

When moving to the right (command move right), i3 will work like in case 1 +("the easy case"). However, as the right container is not a leaf container, but +a v-split, the left container (1) will be inserted at the right position (below +2, assuming that 2 is focused inside the v-split) by calling insert_con_into.

+

insert_con_into detaches the container from its parent and inserts it +before/after the given target container. Afterwards, the on_remove_child +callback is called on the old parent container which will then be closed, if +empty.

+

Afterwards, con_focus will be called to fix the focus stack and the tree will +be flattened.

+
+
+

Case 3: Moving to non-existent top/bottom

+

Like in case 1, the reference layout for this case is a single workspace in +horizontal orientation with two containers on it. Focus is on the left +container:

+
+ +++ + + + + + +

1

2

+
+

This time however, the command is move up or move down. tree_move will look +for a container with vertical orientation. As it will not find any, +same_orientation is NULL and therefore i3 will perform a forced orientation +change on the workspace by creating a new h-split container, moving the +workspace contents into it and then changing the workspace orientation to +vertical. Now it will again search for parent containers with vertical +orientation and it will find the workspace.

+

This time, the easy case code path will not be run as we are not moving inside +the same container. Instead, insert_con_into will be called with the focused +container and the container above/below the current one (on the level of +same_orientation).

+

Now, con_focus will be called to fix the focus stack and the tree will be +flattened.

+
+
+

Case 4: Moving to existent top/bottom

+

The reference layout for this case is a vertical workspace with two containers. +The bottom one is a h-split containing two containers (1 and 2). Focus is on +the bottom left container (1).

+
+ +++ + + + + + + + + +

3

1

2

+
+

This case is very much like case 3, only this time the forced workspace +orientation change does not need to be performed because the workspace already +is in vertical orientation.

+
+
+

Case 5: Moving in one-child h-split

+

The reference layout for this case is a horizontal workspace with two +containers having a v-split on the left side with a one-child h-split on the +bottom. Focus is on the bottom left container (2(h)):

+
+ +++ + + + + + + + + +

1

3

2(h)

+
+

In this case, same_orientation will be set to the h-split container around +the focused container. However, when trying the easy case, the next/previous +container swap will be NULL. Therefore, i3 will search again for a +same_orientation container, this time starting from the parent of the h-split +container.

+

After determining a new same_orientation container (if it is NULL, the +orientation will be force-changed), this case is equivalent to case 2 or case +4.

+
+
+

Case 6: Floating containers

+

The reference layout for this case is a horizontal workspace with two +containers plus one floating h-split container. Focus is on the floating +container.

+

TODO: nice illustration. table not possible?

+

When moving up/down, the container needs to leave the floating container and it +needs to be placed on the workspace (at workspace level). This is accomplished +by calling the function attach_to_workspace.

+
+
+
+
+

Click handling

+
+

Without much ado, here is the list of cases which need to be considered:

+
    +
  • +

    +click to focus (tiling + floating) and raise (floating) +

    +
  • +
  • +

    +click to focus/raise when in stacked/tabbed mode +

    +
  • +
  • +

    +floating_modifier + left mouse button to drag a floating con +

    +
  • +
  • +

    +floating_modifier + right mouse button to resize a floating con +

    +
  • +
  • +

    +click on decoration in a floating con to either initiate a resize (if there + is more than one child in the floating con) or to drag the + floating con (if it’s the one at the top). +

    +
  • +
  • +

    +click on border in a floating con to resize the floating con +

    +
  • +
  • +

    +floating_modifier + right mouse button to resize a tiling con +

    +
  • +
  • +

    +click on border/decoration to resize a tiling con +

    +
  • +
+
+
+
+

Gotchas

+
+
    +
  • +

    +Forgetting to call xcb_flush(conn); after sending a request. This usually + leads to code which looks like it works fine but which does not work under + certain conditions. +

    +
  • +
  • +

    +Forgetting to call floating_fix_coordinates(con, old_rect, new_rect) after + moving workspaces across outputs. Coordinates for floating containers are + not relative to workspace boundaries, so you must correct their coordinates + or those containers will show up in the wrong workspace or not at all. +

    +
  • +
+
+
+
+

Thought experiments

+
+

In this section, we collect thought experiments, so that we don’t forget our +thoughts about specific topics. They are not necessary to get into hacking i3, +but if you are interested in one of the topics they cover, you should read them +before asking us why things are the way they are or why we don’t implement +things.

+
+

Using cgroups per workspace

+

cgroups (control groups) are a linux-only feature which provides the ability to +group multiple processes. For each group, you can individually set resource +limits, like allowed memory usage. Furthermore, and more importantly for our +purposes, they serve as a namespace, a label which you can attach to processes +and their children.

+

One interesting use for cgroups is having one cgroup per workspace (or +container, doesn’t really matter). That way, you could set different priorities +and have a workspace for important stuff (say, writing a LaTeX document or +programming) and a workspace for unimportant background stuff (say, +JDownloader). Both tasks can obviously consume a lot of I/O resources, but in +this example it doesn’t really matter if JDownloader unpacks the download a +minute earlier or not. However, your compiler should work as fast as possible. +Having one cgroup per workspace, you would assign more resources to the +programming workspace.

+

Another interesting feature is that an inherent problem of the workspace +concept could be solved by using cgroups: When starting an application on +workspace 1, then switching to workspace 2, you will get the application’s +window(s) on workspace 2 instead of the one you started it on. This is because +the window manager does not have any mapping between the process it starts (or +gets started in any way) and the window(s) which appear.

+

Imagine for example using dmenu: The user starts dmenu by pressing Mod+d, dmenu +gets started with PID 3390. The user then decides to launch Firefox, which +takes a long time. So they enter firefox into dmenu and press enter. Firefox +gets started with PID 4001. When it finally finishes loading, it creates an X11 +window and uses MapWindow to make it visible. This is the first time i3 +actually gets in touch with Firefox. It decides to map the window, but it has +no way of knowing that this window (even though it has the _NET_WM_PID property +set to 4001) belongs to the dmenu the user started before.

+

How do cgroups help with this? Well, when pressing Mod+d to launch dmenu, i3 +would create a new cgroup, let’s call it i3-3390-1. It launches dmenu in that +cgroup, which gets PID 3390. As before, the user enters firefox and Firefox +gets launched with PID 4001. This time, though, the Firefox process with PID +4001 is also member of the cgroup i3-3390-1 (because fork()ing in a cgroup +retains the cgroup property). Therefore, when mapping the window, i3 can look +up in which cgroup the process is and can establish a mapping between the +workspace and the window.

+

There are multiple problems with this approach:

+
    +
  1. +

    +Every application has to properly set _NET_WM_PID. This is acceptable and + patches can be written for the few applications which don’t set the hint yet. +

    +
  2. +
  3. +

    +It does only work on Linux, since cgroups are a Linux-only feature. Again, + this is acceptable. +

    +
  4. +
  5. +

    +The main problem is that some applications create X11 windows completely + independent of UNIX processes. An example for this is Chromium (or + gnome-terminal), which, when being started a second time, communicates with + the first process and lets the first process open a new window. Therefore, if + you have a Chromium window on workspace 2 and you are currently working on + workspace 3, starting chromium does not lead to the desired result (the + window will open on workspace 2). +

    +
  6. +
+

Therefore, my conclusion is that the only proper way of fixing the "window gets +opened on the wrong workspace" problem is in the application itself. Most +modern applications support freedesktop startup-notifications which can be +used for this.

+
+
+
+
+

+ + + diff --git a/docs/i3-config-wizard.html b/docs/i3-config-wizard.html new file mode 100644 index 0000000..6b84c3e --- /dev/null +++ b/docs/i3-config-wizard.html @@ -0,0 +1,128 @@ + + + + + + +i3: i3-config-wizard(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-config-wizard - creates a keysym based config based on your layout

+
+
+
+

SYNOPSIS

+
+

i3-config-wizard [-s socket] [-m modifier] [-v] [-h]

+
+
+
+

OPTIONS

+
+
+
+-s, --socket socket +
+
+

+Overwrites the path to the i3 IPC socket. +

+
+
+-m, --modifier modifier +
+
+

+Generates the configuration file headlessly. Accepts win or alt. +

+
+
+-v, --version +
+
+

+Display version number and exit. +

+
+
+-h, --help +
+
+

+Display a short help message and exit. +

+
+
+
+
+
+

FILES

+
+
+

/etc/i3/config.keycodes

+

This file contains the default configuration with keycodes. All the bindcode +lines will be transformed to bindsym and the user-specified modifier will be +used.

+
+
+
+
+

DESCRIPTION

+
+

i3-config-wizard is started by i3 in its default config, unless ~/.i3/config +exists. i3-config-wizard creates a keysym based i3 config file (based on +/etc/i3/config.keycodes) in ~/.i3/config.

+

The advantage of using keysyms is that the config file is easy to read, +understand and modify. However, if we shipped with a keysym based default +config file, the key positions would not be consistent across different +keyboard layouts (take for example the homerow for movement). Therefore, we +ship with a keycode based default config and let the wizard transform it +according to your current keyboard layout.

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-dump-log.html b/docs/i3-dump-log.html new file mode 100644 index 0000000..7661fbb --- /dev/null +++ b/docs/i3-dump-log.html @@ -0,0 +1,81 @@ + + + + + + +i3: i3-dump-log(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-dump-log - dumps the i3 SHM log

+
+
+
+

SYNOPSIS

+
+

i3-dump-log [-s <socketpath>] [-f]

+
+
+
+

DESCRIPTION

+
+

Debug versions of i3 automatically use 1% of your RAM (but 25 MiB max) to store +full debug log output. This is extremely helpful for bugreports and +figuring out what is going on, without permanently logging to a file.

+

With i3-dump-log, you can dump the SHM log to stdout.

+

The -f flag works like tail -f, i.e. the process does not terminate after +dumping the log, but prints new lines as they appear.

+
+
+
+

EXAMPLE

+
+

i3-dump-log | gzip -9 > /tmp/i3-log.gz

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-input.html b/docs/i3-input.html new file mode 100644 index 0000000..3ce65f6 --- /dev/null +++ b/docs/i3-input.html @@ -0,0 +1,181 @@ + + + + + + +i3: i3-input(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-input - interactively take a command for i3 window manager

+
+
+
+

SYNOPSIS

+
+

i3-input [-s <socket>] [-F <format>] [-l <limit>] [-P <prompt>] [-f <font>] [-v]

+
+
+
+

DESCRIPTION

+
+

i3-input is a tool to take commands (or parts of a command) composed by +the user, and send it/them to i3. This is useful, for example, for the +mark/goto command.

+

You can press Escape to close i3-input without sending any commands.

+
+
+
+

OPTIONS

+
+
+
+-s <socket> +
+
+

+Specify the path to the i3 IPC socket (it should not be necessary to use this +option, i3-input will figure out the path on its own). +

+
+
+-F <format> +
+
+

+Every occurrence of "%s" in the <format> string is replaced by the user input, +and the result is sent to i3 as a command. Default value is "%s". +

+
+
+-l <limit> +
+
+

+Set the maximum allowed length of the user input to <limit> characters. +i3-input will automatically issue the command when the user input reaches that +length. +

+
+
+-P <prompt> +
+
+

+Display the <prompt> string in front of user input text field. +The prompt string is not included in the user input/command. +

+
+
+-f <font> +
+
+

+Use the specified X11 core font (use xfontsel to choose a font). +

+
+
+-v +
+
+

+Show version and exit. +

+
+
+
+
+
+

EXAMPLES

+
+

Mark a container with a single character:

+
+
+
i3-input -F 'mark %s' -l 1 -P 'Mark: '
+
+

Go to the container marked with above example:

+
+
+
i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Go to: '
+
+
+
+
+

ENVIRONMENT

+
+
+

I3SOCK

+

i3-input handles the different sources of socket paths in the following order:

+
    +
  • +

    +I3SOCK environment variable +

    +
  • +
  • +

    +I3SOCK gets overwritten by the -s parameter, if specified +

    +
  • +
  • +

    +if neither are available, i3-input reads the socket path from the X11 + property, which is the recommended way +

    +
  • +
  • +

    +if everything fails, i3-input tries /tmp/i3-ipc.sock +

    +
  • +
+

The socket path is necessary to connect to i3 and actually issue the command.

+
+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-migrate-config-to-v4.html b/docs/i3-migrate-config-to-v4.html new file mode 100644 index 0000000..c415a87 --- /dev/null +++ b/docs/i3-migrate-config-to-v4.html @@ -0,0 +1,80 @@ + + + + + + +i3: i3-migrate-config-to-v4(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-migrate-config-to-v4 - migrates your i3 config file

+
+
+
+

SYNOPSIS

+
+
+
+
mv ~/.i3/config ~/.i3/old.config
+i3-migrate-config-to-v4 ~/.i3/old.config > ~/.i3/config
+
+
+
+
+

DESCRIPTION

+
+

i3-migrate-config-to-v4 is a Perl script which migrates your old (< version 4) +configuration files to a version 4 config file. The most significant changes +are the new commands (see the release notes).

+

This script will automatically be run by i3 when it detects an old config file. +Please migrate your config file as soon as possible. We plan to include this +script in all i3 release until 2012-08-01. Afterwards, old config files will no +longer be supported.

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-msg.html b/docs/i3-msg.html new file mode 100644 index 0000000..6d62cf0 --- /dev/null +++ b/docs/i3-msg.html @@ -0,0 +1,293 @@ + + + + + + +i3: i3-msg(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-msg - send messages to i3 window manager

+
+
+
+

SYNOPSIS

+
+

i3-msg [-q] [-v] [-h] [-s socket] [-t type] [-r] [message]

+
+
+
+

OPTIONS

+
+
+
+-q, --quiet +
+
+

+Only send ipc message and suppress the output of the response. +

+
+
+-v, --version +
+
+

+Display version number and exit. +

+
+
+-h, --help +
+
+

+Display a short help-message and exit. +

+
+
+-s, --socket sock_path +
+
+

+i3-msg will use the environment variable I3SOCK or the socket path +given here. If both fail, it will try to get the socket information +from the root window and then try /tmp/i3-ipc.sock before exiting +with an error. +

+
+
+-t type +
+
+

+Send ipc message, see below. This option defaults to "command". +

+
+
+-m, --monitor +
+
+

+Instead of exiting right after receiving the first subscribed event, +wait indefinitely for all of them. Can only be used with "-t subscribe". +See the "subscribe" IPC message type below for details. +

+
+
+-r, --raw +
+
+

+Display the raw JSON reply instead of pretty-printing errors (for commands) or +displaying the top-level config file contents (for GET_CONFIG). +

+
+
+message +
+
+

+Send ipc message, see below. +

+
+
+
+
+
+

IPC MESSAGE TYPES

+
+
+
+command +
+
+

+The payload of the message is a command for i3 (like the commands you can bind +to keys in the configuration file) and will be executed directly after +receiving it. +

+
+
+get_workspaces +
+
+

+Gets the current workspaces. The reply will be a JSON-encoded list of +workspaces. +

+
+
+get_outputs +
+
+

+Gets the current outputs. The reply will be a JSON-encoded list of outputs (see +the reply section of docs/ipc, e.g. at +https://i3wm.org/docs/ipc.html#_receiving_replies_from_i3). +

+
+
+get_tree +
+
+

+Gets the layout tree. i3 uses a tree as data structure which includes every +container. The reply will be the JSON-encoded tree. +

+
+
+get_marks +
+
+

+Gets a list of marks (identifiers for containers to easily jump to them later). +The reply will be a JSON-encoded list of window marks. +

+
+
+get_bar_config +
+
+

+Gets the configuration (as JSON map) of the workspace bar with the given ID. If +no ID is provided, an array with all configured bar IDs is returned instead. +

+
+
+get_binding_modes +
+
+

+Gets a list of configured binding modes. +

+
+
+get_version +
+
+

+Gets the version of i3. The reply will be a JSON-encoded dictionary with the +major, minor, patch and human-readable version. +

+
+
+get_config +
+
+

+Gets the currently loaded i3 configuration. +

+
+
+send_tick +
+
+

+Sends a tick to all IPC connections which subscribe to tick events. +

+
+
+subscribe +
+
+

+The payload of the message describes the events to subscribe to. +Upon reception, each event will be dumped as a JSON-encoded object. +See the -m option for continuous monitoring. +

+
+
+
+
+
+

DESCRIPTION

+
+

i3-msg is a sample implementation for a client using the unix socket IPC +interface to i3.

+
+

Exit status:

+

0: +if OK, +1: +if invalid syntax or unable to connect to ipc-socket +2: +if i3 returned an error processing your command(s)

+
+
+
+
+

EXAMPLES

+
+
+
+
# Use 1-px border for current client
+i3-msg "border 1pixel"
+
+# You can leave out the quotes
+i3-msg border normal
+
+# Dump the layout tree
+i3-msg -t get_tree
+
+# Monitor window changes
+i3-msg -t subscribe -m '[ "window" ]'
+
+
+
+
+

ENVIRONMENT

+
+
+

I3SOCK

+

If no ipc-socket is specified on the commandline, this variable is used +to determine the path, at which the unix domain socket is expected, on which +to connect to i3.

+
+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-nagbar.html b/docs/i3-nagbar.html new file mode 100644 index 0000000..a38ac26 --- /dev/null +++ b/docs/i3-nagbar.html @@ -0,0 +1,160 @@ + + + + + + +i3: i3-nagbar(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-nagbar - displays an error bar on top of your screen

+
+
+
+

SYNOPSIS

+
+

i3-nagbar [-m <message>] [-b <button> <action>] [-B <button> <action>] [-t warning|error] [-f <font>] [-v] [-p]

+
+
+
+

OPTIONS

+
+
+
+-v, --version +
+
+

+Display version number and exit. +

+
+
+-h, --help +
+
+

+Display a short help-message and exit. +

+
+
+-t, --type type +
+
+

+Display either a warning or error message. This only changes the color scheme +for the i3-nagbar. Default: error. +

+
+
+-m, --message message +
+
+

+Display message as text on the left of the i3-nagbar. +

+
+
+-f, --font font +
+
+

+Select font that is being used. +

+
+
+-b, --button button action +
+
+

+Create a button with text button. The action are the shell commands that +will be executed by this button. Multiple buttons can be defined. +Will launch the shell commands inside a terminal emulator, using +i3-sensible-terminal. +

+
+
+-B, --button-no-terminal button action +
+
+

+Same as above, but will execute the shell commands directly, without launching a +terminal emulator. +

+
+
+-p, --primary +
+
+

+Always opens the i3-nagbar on the primary monitor. By default it opens on the +focused monitor. +

+
+
+
+
+
+

DESCRIPTION

+
+

i3-nagbar is used by i3 to tell you about errors in your configuration file +(for example). While these errors are logged to the logfile (if any), the past +has proven that users are either not aware of their logfile or do not check it +after modifying the configuration file.

+
+
+
+

EXAMPLE

+
+
+
+
i3-nagbar -m 'You have an error in your i3 config file!' \
+-b 'edit config' 'i3-sensible-editor ~/.config/i3/config'
+
+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-sensible-editor.html b/docs/i3-sensible-editor.html new file mode 100644 index 0000000..6681695 --- /dev/null +++ b/docs/i3-sensible-editor.html @@ -0,0 +1,145 @@ + + + + + + +i3: i3-sensible-editor(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-sensible-editor - launches $EDITOR with fallbacks

+
+
+
+

SYNOPSIS

+
+

i3-sensible-editor [arguments]

+
+
+
+

DESCRIPTION

+
+

i3-sensible-editor is used by i3-nagbar(1) when you click on the edit button.

+

It tries to start one of the following (in that order):

+
    +
  • +

    +$VISUAL +

    +
  • +
  • +

    +$EDITOR +

    +
  • +
  • +

    +nano +

    +
  • +
  • +

    +nvim +

    +
  • +
  • +

    +vim +

    +
  • +
  • +

    +vi +

    +
  • +
  • +

    +emacs +

    +
  • +
  • +

    +pico +

    +
  • +
  • +

    +qe +

    +
  • +
  • +

    +mg +

    +
  • +
  • +

    +jed +

    +
  • +
  • +

    +gedit +

    +
  • +
  • +

    +mcedit +

    +
  • +
  • +

    +gvim +

    +
  • +
+

Please don’t complain about the order: If the user has any preference, they will +have $VISUAL or $EDITOR set.

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-sensible-pager.html b/docs/i3-sensible-pager.html new file mode 100644 index 0000000..24d102b --- /dev/null +++ b/docs/i3-sensible-pager.html @@ -0,0 +1,100 @@ + + + + + + +i3: i3-sensible-pager(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-sensible-pager - launches $PAGER with fallbacks

+
+
+
+

SYNOPSIS

+
+

i3-sensible-pager [arguments]

+
+
+
+

DESCRIPTION

+
+

i3-sensible-pager is used by i3-nagbar(1) when you click on the view button.

+

It tries to start one of the following (in that order):

+
    +
  • +

    +$PAGER +

    +
  • +
  • +

    +less +

    +
  • +
  • +

    +most +

    +
  • +
  • +

    +w3m +

    +
  • +
  • +

    +i3-sensible-editor(1) +

    +
  • +
+

Please don’t complain about the order: If the user has any preference, they will +have $PAGER set.

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-sensible-terminal.html b/docs/i3-sensible-terminal.html new file mode 100644 index 0000000..6643a08 --- /dev/null +++ b/docs/i3-sensible-terminal.html @@ -0,0 +1,219 @@ + + + + + + +i3: i3-sensible-terminal(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3-sensible-terminal - launches $TERMINAL with fallbacks

+
+
+
+

SYNOPSIS

+
+

i3-sensible-terminal [arguments]

+
+
+
+

DESCRIPTION

+
+

i3-sensible-terminal is invoked in the i3 default config to start a terminal. +This wrapper script is necessary since there is no distribution-independent +terminal launcher (but for example Debian has x-terminal-emulator). +Distribution packagers are responsible for shipping this script in a way which +is appropriate for the distribution.

+

It tries to start one of the following (in that order):

+
    +
  • +

    +$TERMINAL (this is a non-standard variable) +

    +
  • +
  • +

    +x-terminal-emulator (only present on Debian and derivatives) +

    +
  • +
  • +

    +mate-terminal +

    +
  • +
  • +

    +gnome-terminal +

    +
  • +
  • +

    +terminator +

    +
  • +
  • +

    +xfce4-terminal +

    +
  • +
  • +

    +urxvt +

    +
  • +
  • +

    +rxvt +

    +
  • +
  • +

    +termit +

    +
  • +
  • +

    +Eterm +

    +
  • +
  • +

    +aterm +

    +
  • +
  • +

    +uxterm +

    +
  • +
  • +

    +xterm +

    +
  • +
  • +

    +roxterm +

    +
  • +
  • +

    +termite +

    +
  • +
  • +

    +lxterminal +

    +
  • +
  • +

    +terminology +

    +
  • +
  • +

    +st +

    +
  • +
  • +

    +qterminal +

    +
  • +
  • +

    +lilyterm +

    +
  • +
  • +

    +tilix +

    +
  • +
  • +

    +terminix +

    +
  • +
  • +

    +konsole +

    +
  • +
  • +

    +kitty +

    +
  • +
  • +

    +guake +

    +
  • +
  • +

    +tilda +

    +
  • +
  • +

    +alacritty +

    +
  • +
  • +

    +hyper +

    +
  • +
+

Please don’t complain about the order: If the user has any preference, they will +have $TERMINAL set or modified their i3 configuration file.

+
+
+
+

SEE ALSO

+
+

i3(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3-sync-working.png b/docs/i3-sync-working.png new file mode 100644 index 0000000000000000000000000000000000000000..419334d0e6659c4232a70972bf1f17c64300aa64 GIT binary patch literal 20482 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 o;^Xq>prpz?v~1xQjbFJ1>@|^_ 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 N=9K)&6lv|-{|hP|e1-r3 literal 0 HcmV?d00001 diff --git a/docs/i3-sync.png b/docs/i3-sync.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a5a01c81461cefb71e6549c1b3d85ddc9de4bb GIT binary patch literal 13568 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 literal 0 HcmV?d00001 diff --git a/docs/i3.html b/docs/i3.html new file mode 100644 index 0000000..aedaebf --- /dev/null +++ b/docs/i3.html @@ -0,0 +1,581 @@ + + + + + + +i3: i3(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3 - an improved dynamic, tiling window manager

+
+
+
+

SYNOPSIS

+
+

i3 [-a] [-c configfile] [-C] [-d all] [-v] [-V]

+
+
+
+

OPTIONS

+
+
+
+-a +
+
+

+Disables autostart. +

+
+
+-c +
+
+

+Specifies an alternate configuration file path. +

+
+
+-C +
+
+

+Check the configuration file for validity and exit. +

+
+
+-d all +
+
+

+Enables debug logging. +The all parameter is present for historical reasons. +

+
+
+-v +
+
+

+Display version number (and date of the last commit). +

+
+
+-V +
+
+

+Be verbose. +

+
+
+--force-xinerama +
+
+

+Use Xinerama instead of RandR. This option should only be used if you are stuck +with the old nVidia closed source driver (older than 302.17) which does not +support RandR. +

+
+
+--get-socketpath +
+
+

+Retrieve the i3 IPC socket path from X11, print it, then exit. +

+
+
+--shmlog-size <limit> +
+
+

+Limits the size of the i3 SHM log to <limit> bytes. Setting this to 0 disables +SHM logging entirely. The default is 0 bytes. +

+
+
+--replace +
+
+

+Replace an existing window manager. +

+
+
+
+
+
+

DESCRIPTION

+
+
+

INTRODUCTION

+

i3 was created because wmii, our favorite window manager at the time, didn’t +provide some features we wanted (multi-monitor done right, for example), had +some bugs, didn’t progress since quite some time and wasn’t easy to hack at all +(source code comments/documentation completely lacking). Still, we think the +wmii developers and contributors did a great job. Thank you for inspiring us to +create i3.

+

Please be aware that i3 is primarily targeted at advanced users and developers.

+
+
+

IMPORTANT NOTE TO nVidia BINARY DRIVER USERS

+

If you are using the nVidia binary graphics driver (also known as blob) +before version 302.17, you need to use the --force-xinerama flag (in your +~/.xsession) when starting i3, like so:

+
+
+
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1
+
+

See also docs/multi-monitor for the full explanation.

+
+
+

TERMINOLOGY

+
+
+Tree +
+
+

+i3 keeps your layout in a tree data structure. +

+
+
+Window +
+
+

+An X11 window, like the Firefox browser window or a terminal emulator. +

+
+
+Floating Window +
+
+

+A window which "floats" on top of other windows. This style is used by i3 to +display X11 windows with type "dialog", such as the "Print" or "Open File" +dialog boxes in many GUI applications. Use of floating windows can be +fine-tuned with the for_window command (see HTML userguide). +

+
+
+Split container +
+
+

+A split container contains multiple other split containers or windows. +

+

Containers can be used in various layouts. The default mode is called "default" +and just resizes each client equally so that it fits.

+
+
+Workspace +
+
+

+A workspace is a set of containers. Other window managers call this "Virtual +Desktops". +

+

In i3, each workspace is assigned to a specific virtual screen. By default, +screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you +create a new workspace (by simply switching to it), it’ll be assigned the +screen you are currently on.

+
+
+Output +
+
+

+Using XRandR, you can have an X11 screen spanning multiple real monitors. +Furthermore, you can set them up in cloning mode or with positions (monitor 1 +is left of monitor 2). +

+

i3 uses the RandR API to query which outputs are available and which screens +are connected to these outputs.

+
+
+
+
+
+
+

KEYBINDINGS

+
+

Here is a short overview of the default keybindings:

+
+
+Mod1+Enter +
+
+

+Open a new terminal emulator window. +

+
+
+Mod1+d +
+
+

+Open dmenu for starting any application by typing (part of) its name. +

+
+
+j/k/l/; +
+
+

+Direction keys (left, down, up, right). They are on your homerow (see the mark +on your "j" key). Alternatively, you can use the cursor keys. +

+
+
+Mod1+<direction> +
+
+

+Focus window in <direction>. +

+
+
+Mod1+Shift+<direction> +
+
+

+Move window to <direction>. +

+
+
+Mod1+<number> +
+
+

+Switch to workspace <number>. +

+
+
+Mod1+Shift+<number> +
+
+

+Move window to workspace <number>. +

+
+
+Mod1+f +
+
+

+Toggle fullscreen mode. +

+
+
+Mod1+s +
+
+

+Enable stacking layout for the current container. +

+
+
+Mod1+e +
+
+

+Enable default layout for the current container. +

+
+
+Mod1+w +
+
+

+Enable tabbed layout for the current container. +

+
+
+Mod1+Shift+Space +
+
+

+Toggle tiling/floating for the current container. +

+
+
+Mod1+Space +
+
+

+Select the first tiling container if the current container is floating and +vice-versa. +

+
+
+Mod1+Shift+q +
+
+

+Kills the current window. This is equivalent to "clicking on the close button", +meaning a polite request to the application to close this window. For example, +Firefox will save its session upon such a request. If the application does not +support that, the window will be killed and it depends on the application what +happens. +

+
+
+Mod1+Shift+r +
+
+

+Restarts i3 in place. Your layout will be preserved. +

+
+
+Mod1+Shift+e +
+
+

+Exits i3. +

+
+
+
+
+
+

FILES

+
+
+

~/.config/i3/config (or ~/.i3/config)

+

When starting, i3 looks for configuration files in the following order:

+
    +
  1. +

    +~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) +

    +
  2. +
  3. +

    +~/.i3/config +

    +
  4. +
  5. +

    +/etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set) +

    +
  6. +
  7. +

    +/etc/i3/config +

    +
  8. +
+

You can specify a custom path using the -c option.

+
+
Sample configuration
+
+
# i3 config file (v4)
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+font pango:DejaVu Sans Mono 8
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# use Mouse+Mod1 to drag floating windows to their wanted position
+floating_modifier Mod1
+
+# start a terminal
+bindsym Mod1+Return exec /usr/bin/urxvt
+
+# kill focused window
+bindsym Mod1+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym Mod1+d exec /usr/bin/dmenu_run
+
+# change focus
+bindsym Mod1+j focus left
+bindsym Mod1+k focus down
+bindsym Mod1+l focus up
+bindsym Mod1+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+bindsym Mod1+Left focus left
+bindsym Mod1+Down focus down
+bindsym Mod1+Up focus up
+bindsym Mod1+Right focus right
+
+# move focused window
+bindsym Mod1+Shift+j move left
+bindsym Mod1+Shift+k move down
+bindsym Mod1+Shift+l move up
+bindsym Mod1+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym Mod1+Shift+Left move left
+bindsym Mod1+Shift+Down move down
+bindsym Mod1+Shift+Up move up
+bindsym Mod1+Shift+Right move right
+
+# split in horizontal orientation
+bindsym Mod1+h split h
+
+# split in vertical orientation
+bindsym Mod1+v split v
+
+# enter fullscreen mode for the focused container
+bindsym Mod1+f fullscreen toggle
+
+# change container layout (stacked, tabbed, default)
+bindsym Mod1+s layout stacking
+bindsym Mod1+w layout tabbed
+bindsym Mod1+e layout default
+
+# toggle tiling / floating
+bindsym Mod1+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym Mod1+space focus mode_toggle
+
+# focus the parent container
+bindsym Mod1+a focus parent
+
+# focus the child container
+#bindsym Mod1+d focus child
+
+# switch to workspace
+bindsym Mod1+1 workspace 1
+bindsym Mod1+2 workspace 2
+# ..
+
+# move focused container to workspace
+bindsym Mod1+Shift+1 move workspace 1
+bindsym Mod1+Shift+2 move workspace 2
+# ...
+
+# reload the configuration file
+bindsym Mod1+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym Mod1+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym Mod1+Shift+e exit
+
+# display workspace buttons plus a statusline generated by i3status
+bar {
+    status_command i3status
+}
+
+
+
+

~/.xsession

+

This file is where you should configure your locales and start i3. It is run by +your login manager (xdm, slim, gdm, …) as soon as you login.

+
+
Sample xsession
+
+
# Disable DPMS turning off the screen
+xset -dpms
+xset s off
+
+# Disable bell
+xset -b
+
+# Enable zapping (C-A-<Bksp> kills X)
+setxkbmap -option terminate:ctrl_alt_bksp
+
+# Enforce correct locales from the beginning:
+# LC_ALL is unset since it overwrites everything
+# LANG=de_DE.UTF-8 is used, except for:
+# LC_MESSAGES=C never translates program output
+# LC_TIME=en_DK leads to yyyy-mm-dd hh:mm date/time output
+unset LC_ALL
+export LANG=de_DE.UTF-8
+export LC_MESSAGES=C
+export LC_TIME=en_DK.UTF-8
+
+# Use XToolkit in java applications
+export AWT_TOOLKIT=XToolkit
+
+# Set background color
+xsetroot -solid "#333333"
+
+# Enable core dumps in case something goes wrong
+ulimit -c unlimited
+
+# Start i3 and log to ~/.local/share/i3/log
+mkdir -p ~/.local/share/i3
+echo "Starting at $(date)" >> ~/.local/share/i3/log
+exec /usr/bin/i3 -V -d all >> ~/.local/share/i3/log
+
+
+
+
+
+

ENVIRONMENT

+
+
+

I3SOCK

+

This variable overwrites the IPC socket path (see userguide for default +location). The IPC socket is used by external programs like i3-msg(1), i3bar(1) +or user-made scripts.

+
+
+
+
+

SEE ALSO

+
+

You should have a copy of the userguide (featuring nice screenshots/graphics +which is why this is not integrated into this manpage), the debugging guide, +and the "how to hack" guide.

+

You can also access these documents online at https://i3wm.org/

+

i3-input(1), i3-msg(1), i3bar(1), i3-nagbar(1), i3-config-wizard(1), +i3-migrate-config-to-v4(1)

+
+
+
+

AUTHOR

+
+

Michael Stapelberg and contributors

+
+
+
+

+ + + diff --git a/docs/i3bar-protocol.html b/docs/i3bar-protocol.html new file mode 100644 index 0000000..9885186 --- /dev/null +++ b/docs/i3bar-protocol.html @@ -0,0 +1,511 @@ + + + + + + +i3: i3bar input protocol + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document explains the protocol in which i3bar expects its input. It +provides support for colors, urgency, shortening and easy manipulation.

+
+
+
+

Rationale for choosing JSON

+
+

Before describing the protocol, let’s cover why JSON is a building block of +this protocol.

+
    +
  1. +

    +Other bar display programs such as dzen2 or xmobar are using in-band + signaling: they recognize certain sequences (like ^fg(#330000) in your input + text). We would like to avoid that and separate information from + meta-information. By information, we mean the actual output, like the IP + address of your ethernet adapter and by meta-information, we mean in which + color it should be displayed right now. +

    +
  2. +
  3. +

    +It is easy to write a simple script which manipulates part(s) of the input. + Each block of information (like a block for the disk space indicator, a block + for the current IP address, etc.) can be identified specifically and modified + in whichever way you like. +

    +
  4. +
  5. +

    +It remains easy to write a simple script which just suffixes (or prefixes) a + status line input, because tools like i3status will output their JSON in + such a way that each line array will be terminated by a newline. Therefore, + you are not required to use a streaming JSON parser, but you can use any + JSON parser and write your script in any programming language. In fact, you + can decide to not bother with the JSON parsing at all and just inject your + output at a specific position (beginning or end). +

    +
  6. +
  7. +

    +Relying on JSON does not introduce any new dependencies. In fact, the IPC + interface of i3 also uses JSON, therefore i3bar already depends on JSON. +

    +
  8. +
+

The only point against using JSON is computational complexity. If that really +bothers you, just use the plain text input format (which i3bar will continue to +support).

+
+
+
+

The protocol

+
+

The first message of the protocol is a header block, which contains (at least) +the version of the protocol to be used. In case there are significant changes +(not only additions), the version will be incremented. i3bar will still +understand the old protocol version, but in order to use the new one, you need +to provide the correct version. The header block is terminated by a newline and +consists of a single JSON hash:

+

Minimal example:

+
+
+
{ "version": 1 }
+
+

All features example:

+
+
+
{ "version": 1, "stop_signal": 10, "cont_signal": 12, "click_events": true }
+
+

(Note that before i3 v4.3 the precise format had to be {"version":1}, +byte-for-byte.)

+

What follows is an infinite array (so it should be parsed by a streaming JSON +parser, but as described above you can go for a simpler solution), whose +elements are one array per status line. A status line is one unit of +information which should be displayed at a time. i3bar will not display any +input until the status line is complete. In each status line, every block will +be represented by a JSON hash:

+

Example:

+
+
+
[
+
+ [
+  {
+   "full_text": "E: 10.0.0.1 (1000 Mbit/s)",
+   "color": "#00ff00"
+  },
+  {
+   "full_text": "2012-01-05 20:00:01"
+  }
+ ],
+
+ [
+  {
+   "full_text": "E: 10.0.0.1 (1000 Mbit/s)",
+   "color": "#00ff00"
+  },
+  {
+   "full_text": "2012-01-05 20:00:02"
+  }
+ ],
+ …
+
+

Please note that this example was pretty printed for human consumption. +i3status and others will output single statuslines in one line, separated by +\n.

+

You can find an example of a shell script which can be used as your +status_command in the bar configuration at +https://github.com/i3/i3/blob/next/contrib/trivial-bar-script.sh

+
+

Header in detail

+
+
+version +
+
+

+ The version number (as an integer) of the i3bar protocol you will use. +

+
+
+stop_signal +
+
+

+ Specify the signal (as an integer) that i3bar should send to request that you + pause your output. This is used to conserve battery power when the bar is + hidden by not unnecessarily computing bar updates. The default value is SIGSTOP, + which will unconditionally stop your process. If this is an issue, this feature + can be disabled by setting the value to 0. +

+
+
+cont_signal +
+
+

+ Specify to i3bar the signal (as an integer) to send to continue your + processing. + The default value (if none is specified) is SIGCONT. +

+
+
+click_events +
+
+

+ If specified and true i3bar will write an infinite array (same as above) + to your stdin. +

+
+
+
+
+

Blocks in detail

+
+
+full_text +
+
+

+ The full_text will be displayed by i3bar on the status line. This is the + only required key. If full_text is an empty string, the block will be + skipped. +

+
+
+short_text +
+
+

+ Where appropriate, the short_text (string) entry should also be + provided. It will be used in case the status line needs to be shortened + because it uses more space than your screen provides. For example, when + displaying an IPv6 address, the prefix is usually (!) more relevant + than the suffix, because the latter stays constant when using autoconf, + while the prefix changes. When displaying the date, the time is more + important than the date (it is more likely that you know which day it + is than what time it is). +

+
+
+color +
+
+

+ To make the current state of the information easy to spot, colors can + be used. For example, the wireless block could be displayed in red + (using the color (string) entry) if the card is not associated with + any network and in green or yellow (depending on the signal strength) + when it is associated. + Colors are specified in hex (like in HTML), starting with a leading + hash sign. For example, #ff0000 means red. +

+
+
+background +
+
+

+ Overrides the background color for this particular block. +

+
+
+border +
+
+

+ Overrides the border color for this particular block. +

+
+
+border_top +
+
+

+ Defines the width (in pixels) of the top border of this block. Defaults + to 1. +

+
+
+border_right +
+
+

+ Defines the width (in pixels) of the right border of this block. Defaults + to 1. +

+
+
+border_bottom +
+
+

+ Defines the width (in pixels) of the bottom border of this block. Defaults + to 1. +

+
+
+border_left +
+
+

+ Defines the width (in pixels) of the left border of this block. Defaults + to 1. +

+
+
+min_width +
+
+

+ The minimum width (in pixels) of the block. If the content of the + full_text key take less space than the specified min_width, the block + will be padded to the left and/or the right side, according to the align + key. This is useful when you want to prevent the whole status line to shift + when value take more or less space between each iteration. + The value can also be a string. In this case, the width of the text given + by min_width determines the minimum width of the block. This is useful + when you want to set a sensible minimum width regardless of which font you + are using, and at what particular size. +

+
+
+align +
+
+

+ Align text on the center, right or left (default) of the block, when + the minimum width of the latter, specified by the min_width key, is not + reached. +

+
+
+name and instance +
+
+

+ Every block should have a unique name (string) entry so that it can + be easily identified in scripts which process the output. i3bar + completely ignores the name and instance fields. Make sure to also + specify an instance (string) entry where appropriate. For example, + the user can have multiple disk space blocks for multiple mount points. +

+
+
+urgent +
+
+

+ A boolean which specifies whether the current value is urgent. Examples + are battery charge values below 1 percent or no more available disk + space (for non-root users). The presentation of urgency is up to i3bar. +

+
+
+separator +
+
+

+ A boolean which specifies whether a separator line should be drawn + after this block. The default is true, meaning the separator line will + be drawn. Note that if you disable the separator line, there will still + be a gap after the block, unless you also use separator_block_width. +

+
+
+separator_block_width +
+
+

+ The amount of pixels to leave blank after the block. In the middle of + this gap, a separator line will be drawn unless separator is + disabled. Normally, you want to set this to an odd value (the default + is 9 pixels), since the separator line is drawn in the middle. +

+
+
+markup +
+
+

+ A string that indicates how the text of the block should be parsed. Set to + "pango" to use Pango markup. + Set to "none" to not use any markup (default). Pango markup only works + if you use a pango font. +

+
+
+

If you want to put in your own entries into a block, prefix the key with an +underscore (_). i3bar will ignore all keys it doesn’t understand, and prefixing +them with an underscore makes it clear in every script that they are not part +of the i3bar protocol.

+

Example:

+
+
+
{
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",
+ "_ethernet_vendor": "Intel"
+}
+
+

In the following example, the longest (widest) possible value of the block is +used to set the minimum width:

+
+
+
{
+ "full_text": "CPU 4%",
+ "min_width": "CPU 100%",
+ "align": "left"
+}
+
+

An example of a block which uses all possible entries follows:

+

Example:

+
+
+
{
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",
+ "short_text": "10.0.0.1",
+ "color": "#00ff00",
+ "background": "#1c1c1c",
+ "border": "#ee0000",
+ "border_top": 1,
+ "border_right": 0,
+ "border_bottom": 3,
+ "border_left": 1,
+ "min_width": 300,
+ "align": "right",
+ "urgent": false,
+ "name": "ethernet",
+ "instance": "eth0",
+ "separator": true,
+ "separator_block_width": 9,
+ "markup": "none"
+}
+
+
+
+

Click events

+

If enabled i3bar will send you notifications if the user clicks on a block and +looks like this:

+
+
+name +
+
+

+ Name of the block, if set +

+
+
+instance +
+
+

+ Instance of the block, if set +

+
+
+x, y +
+
+

+ X11 root window coordinates where the click occurred +

+
+
+button +
+
+

+ X11 button ID (for example 1 to 3 for left/middle/right mouse button) +

+
+
+relative_x, relative_y +
+
+

+ Coordinates where the click occurred, with respect to the top left corner + of the block +

+
+
+output_x, output_y +
+
+

+ Coordinates relative to the current output where the click occurred +

+
+
+width, height +
+
+

+ Width and height (in px) of the block +

+
+
+modifiers +
+
+

+ An array of the modifiers active when the click occurred. The order in which + modifiers are listed is not guaranteed. +

+
+
+

Example:

+
+
+
{
+ "name": "ethernet",
+ "instance": "eth0",
+ "button": 1,
+ "modifiers": ["Shift", "Mod1"],
+ "x": 1925,
+ "y": 1400,
+ "relative_x": 12,
+ "relative_y": 8,
+ "output_x": 5,
+ "output_y": 1400,
+ "width": 50,
+ "height": 22
+}
+
+
+
+
+
+

+ + + diff --git a/docs/i3bar-workspace-protocol.html b/docs/i3bar-workspace-protocol.html new file mode 100644 index 0000000..a5e55f4 --- /dev/null +++ b/docs/i3bar-workspace-protocol.html @@ -0,0 +1,272 @@ + + + + + + +i3: i3bar workspace buttons protocol + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document explains the protocol in which i3bar expects input for +configuring workspace buttons. This feature is available since i3 version 4.23.

+

The program defined by the workspace_command configuration option for i3bar can +modify the workspace buttons displayed by i3bar. The command should constantly +print in its standard output a stream of messages following the protocol +defined in this page.

+

If you are looking for the status line protocol instead, see https://i3wm.org/docs/i3bar-protocol.html.

+
+
+
+

The protocol

+
+

Each message should be a newline-delimited JSON array. The array is in the same +format as the GET_WORKSPACES ipc event, see +https://i3wm.org/docs/ipc.html#_workspaces_reply.

+

As an example, this is the output of the i3-msg -t get_workspaces command:

+
+
+
[
+  {
+    "id": 94131549984064,
+    "num": 1,
+    "name": "1",
+    "visible": false,
+    "focused": false,
+    "output": "HDMI-A-0",
+    "urgent": false
+  },
+  {
+    "id": 94131550477584,
+    "num": 2,
+    "name": "2",
+    "visible": true,
+    "focused": true,
+    "output": "HDMI-A-0",
+    "urgent": false
+  },
+  {
+    "id": 94131550452704,
+    "num": 3,
+    "name": "3:some workspace",
+    "visible": false,
+    "focused": false,
+    "output": "HDMI-A-0",
+    "urgent": false
+  }
+]
+
+

Please note that this example was pretty printed for human consumption, with +the "rect" field removed. Workspace button commands should output each array +in one line.

+

Each element in the array represents a workspace. i3bar creates one workspace +button for each element in the array. The order of these buttons is the same as +the order of the elements in the array.

+

In general, we recommend subscribing to the workspace and output +events, +fetching the current workspace information with GET_WORKSPACES, modifying the +JSON array in the response according to your needs and then printing it to the +standard output. However, you are free to build a new message from the ground +up.

+
+

Workspace objects in detail

+

The documentation of GET_WORKSPACES should be sufficient to understand the +meaning of each property but here we provide extra notes for each property and +its meaning with respect to i3bar.

+

All properties but name are optional.

+
+
+id (integer) +
+
+

+ If it is included it will be used to switch to that workspace when you + click the corresponding button. If it’s not provided, the name will be + used. You can use the id field to present workspaces under a modified + name. +

+
+
+num (integer) +
+
+

+ The only use of a workspace’s number is if the strip_workspace_numbers + setting is enabled. +

+
+
+name (string) +
+
+

+ The only required property. If an id is provided you can freely change + the name as you wish, effectively renaming the buttons of i3bar. +

+
+
+visible (boolean) +
+
+

+ Defaults to false if not included. focused takes precedence over it, + however visible is important for more than one monitor. +

+
+
+focused (boolean) +
+
+

+ Defaults to false if not included. Generally, exactly one of the + workspaces should be focused. If not, no button will have the + focused_workspace color. +

+
+
+urgent (boolean) +
+
+

+ Defaults to false if not included. +

+
+
+rect (map) +
+
+

+ Not used by i3bar but will be ignored. +

+
+
+output (string) +
+
+

+ Defaults to the primary output if not included. +

+
+
+
+
+
+
+

Examples

+
+

These example scripts require the jq utility to +be installed but otherwise just use the standard i3-msg utility included with +i3. However, you can write your own scripts in your preferred language, with +the help of one of the +pre-existing i3 +libraries

+
+

Base configuration

+
+
+
bar {
+  …
+  workspace_command /path/to/your/script.sh
+  …
+}
+
+
+
+

Re-create the default behaviour of i3bar

+

Not very useful by itself but this will be the basic building block of all the +following scripts. This one does not require jq.

+
+
+
#!/bin/sh
+i3-msg -t subscribe -m '["workspace", "output"]' | {
+    # Initially print the current workspaces before we receive any events. This
+    # avoids having an empty bar when starting up.
+    i3-msg -t get_workspaces;
+    # Then, while we receive events, update the workspace information.
+    while read EVENT; do i3-msg -t get_workspaces; done;
+}
+
+
+
+

Hide workspace named foo unless if it is focused.

+
+
+
#!/bin/sh
+i3-msg -t subscribe -m '["workspace", "output"]' | {
+    i3-msg -t get_workspaces;
+    while read EVENT; do i3-msg -t get_workspaces; done;
+} | jq --unbuffered -c '[ .[] | select(.name != "foo" or .focused) ]'
+
+

Important! Make sure you use the --unbuffered flag with jq, otherwise you +might not get the changes in real-time but whenever they are flushed, which +might mean that you are getting an empty bar until enough events are written.

+
+
+

Show empty workspaces foo and bar on LVDS1 even if they do not exist at the moment.

+
+
+
#!/bin/sh
+i3-msg -t subscribe -m '["workspace", "output"]' | {
+    i3-msg -t get_workspaces;
+    while read EVENT; do i3-msg -t get_workspaces; done;
+} | jq --unbuffered -c '
+    def fake_ws(name): {
+        name: name,
+        output: "LVDS1",
+    };
+    . + [ fake_ws("foo"), fake_ws("bar") ] | unique_by(.name)
+'
+
+
+
+

Sort workspaces in reverse alphanumeric order

+
+
+
#!/bin/sh
+i3-msg -t subscribe -m '["workspace", "output"]' | {
+    i3-msg -t get_workspaces;
+    while read EVENT; do i3-msg -t get_workspaces; done;
+} | jq --unbuffered -c 'sort_by(.name) | reverse'
+
+
+
+

Append "foo" to the name of each workspace

+
+
+
#!/bin/sh
+i3-msg -t subscribe -m '["workspace", "output"]' | {
+    i3-msg -t get_workspaces;
+    while read EVENT; do i3-msg -t get_workspaces; done;
+} | jq --unbuffered -c '[ .[] | .name |= . + " foo" ]'
+
+
+
+
+
+

+ + + diff --git a/docs/i3bar.html b/docs/i3bar.html new file mode 100644 index 0000000..1b8a40e --- /dev/null +++ b/docs/i3bar.html @@ -0,0 +1,159 @@ + + + + + + +i3: i3bar(1) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

NAME

+
+

i3bar - xcb-based status- and workspace-bar

+
+
+
+

SYNOPSIS

+
+

i3bar [-b bar_id] [-s sock_path] [-t] [-h] [-v] [-V]

+
+
+
+

WARNING

+
+

i3bar will automatically be invoked by i3 for every bar configuration block.

+

Starting it manually is usually not what you want to do.

+

You have been warned!

+
+
+
+

OPTIONS

+
+
+
+-s, --socket sock_path +
+
+

+Overwrites the path to the i3 IPC socket. +

+
+
+-b, --bar_id bar_id +
+
+

+Specifies the bar ID for which to get the configuration from i3. By default, +i3bar will use the first bar block as configured in i3. +

+
+
+-t, --transparency +
+
+

+Enable transparency (RGBA colors) +

+
+
+-h, --help +
+
+

+Display a short help-message and exit +

+
+
+-v, --version +
+
+

+Display version number and exit. +

+
+
+-V +
+
+

+Be verbose. +

+
+
+
+
+
+

DESCRIPTION

+
+

i3bar displays a bar at the bottom (or top) of your monitor(s) containing +workspace switching buttons and a statusline generated by i3status(1) or +similar. It is automatically invoked (and configured through) i3.

+

i3bar supports using a JSON protocol for setting the status line, see +https://i3wm.org/docs/i3bar-protocol.html

+

Since i3 4.23, i3bar supports another JSON protocol for setting workspace +buttons. See https://i3wm.org/docs/i3bar-workspace-protocol.html.

+
+
+
+

ENVIRONMENT

+
+
+

I3SOCK

+

Used as a fallback for the i3 IPC socket path if neither the commandline +contains an argument nor the I3_SOCKET_PATH property is set on the X11 root +window.

+
+
+
+
+

EXAMPLES

+
+

Nothing to see here, move along. As stated above, you should not run i3bar manually.

+

Instead, see the i3 documentation, especially the User’s Guide.

+
+
+
+

SEE ALSO

+
+

i3status(1), j4status(1) or conky(1) for programs generating a statusline.

+

dzen2(1) or xmobar(1) for similar programs to i3bar.

+
+
+
+

AUTHORS

+
+

Axel Wagner and contributors

+
+
+
+

+ + + diff --git a/docs/ipc.html b/docs/ipc.html new file mode 100644 index 0000000..3648813 --- /dev/null +++ b/docs/ipc.html @@ -0,0 +1,2246 @@ + + + + + + +i3: IPC interface (interprocess communication) + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document describes how to interface with i3 from a separate process. This +is useful for example to remote-control i3 (to write test cases for example) or +to get various information like the current workspaces to implement an external +workspace bar.

+

The method of choice for IPC in our case is a unix socket because it has very +little overhead on both sides and is usually available without headaches in +most languages. +By default i3 will set the path of the IPC socket based on:

+
    +
  1. +

    +The ipc-socket configuration directive if it is used +

    +
  2. +
  3. +

    +The I3SOCK environmental variable if it is set +

    +
  4. +
  5. +

    +$XDG_RUNTIME_DIR/i3/ipc-socket.%p if the directory is available where %p + is the PID of i3 and XXXXXX is a string of random characters +

    +
  6. +
  7. +

    +/tmp/i3-%u.XXXXXX/ipc-socket.%p where %u is your UNIX username +

    +
  8. +
+

You can get the socketpath from i3 by executing i3 --get-socketpath, which +will print the path to the standard output (plus a newline) or by reading the +I3SOCK environmental variable.

+

All i3 utilities, like i3-msg and i3-input will determine the path of the +IPC socket frome the I3SOCK environmental variable if it is set or the +I3_SOCKET_PATH X11 property, stored on the X11 root window.

+
+ + + +
+
Warning
+
+
Use an existing library!
There are existing libraries for many languages. You can have a look at +[libraries] or search the web if your language of choice is not mentioned. +Usually, it is not necessary to implement low-level communication with i3 +directly.
+
+
+
+
+

Establishing a connection

+
+

To establish a connection, simply open the IPC socket. The following code +snippet illustrates this in Perl:

+
+
+
use IO::Socket::UNIX;
+chomp(my $path = qx(i3 --get-socketpath));
+my $sock = IO::Socket::UNIX->new(Peer => $path);
+
+
+
+
+

Sending messages to i3

+
+

To send a message to i3, you have to format it in the binary message format +which i3 expects. This format specifies a magic string in the beginning to +ensure the integrity of messages (to prevent follow-up errors). Following the +magic string comes the length of the payload of the message as a 32-bit +integer, and the type of the message as a 32-bit integer (the integers are not +converted, so they are in native byte order).

+

The magic string currently is "i3-ipc" and will only be changed when a change +in the IPC API is done which breaks compatibility (we hope that we don’t need +to do that).

+
+ + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1. Currently implemented message types
Type (numeric) Type (name) Reply type Purpose

0

RUN_COMMAND

COMMAND

Run the payload as an i3 command (like the commands you can bind to keys).

1

GET_WORKSPACES

WORKSPACES

Get the list of current workspaces.

2

SUBSCRIBE

SUBSCRIBE

Subscribe this IPC connection to the event types specified in the message payload. See [events].

3

GET_OUTPUTS

OUTPUTS

Get the list of current outputs.

4

GET_TREE

TREE

Get the i3 layout tree.

5

GET_MARKS

MARKS

Gets the names of all currently set marks.

6

GET_BAR_CONFIG

BAR_CONFIG

Gets the specified bar configuration or the names of all bar configurations if payload is empty.

7

GET_VERSION

VERSION

Gets the i3 version.

8

GET_BINDING_MODES

BINDING_MODES

Gets the names of all currently configured binding modes.

9

GET_CONFIG

CONFIG

Returns the last loaded i3 config.

10

SEND_TICK

TICK

Sends a tick event with the specified payload.

11

SYNC

SYNC

Sends an i3 sync event with the specified random value to the specified window.

12

GET_BINDING_STATE

BINDING_STATE

Request the current binding state, i.e. the currently active binding mode name.

+
+

So, a typical message could look like this:

+
+
+
"i3-ipc" <message length> <message type> <payload>
+
+

Or, as a hexdump:

+
+
+
00000000  69 33 2d 69 70 63 04 00  00 00 00 00 00 00 65 78  |i3-ipc........ex|
+00000010  69 74                                             |it|
+
+

To generate and send such a message, you could use the following code in Perl:

+
+
+
sub format_ipc_command {
+    my ($msg) = @_;
+    my $len;
+    # Get the real byte count (vs. amount of characters)
+    { use bytes; $len = length($msg); }
+    return "i3-ipc" . pack("LL", $len, 0) . $msg;
+}
+
+$sock->write(format_ipc_command("exit"));
+
+
+
+
+

Receiving replies from i3

+
+

Each message sent to i3 will cause exactly one reply to be sent in return. The +order of the sent replies will always correspond to the order of the sent +requests. The only exception to this is [events], which (once subscribed to) +may be sent at any time (though never in the middle of another event or reply).

+

It is generally safe to send several messages to i3 without first waiting for a +reply for each one (pipelining) — though, note that depending on the language / +network library you use, writing to the socket without also reading from it may +cause a deadlock due to the socket buffers getting full.

+

The reply format is identical to the normal message format. There also is +the magic string, then the message length, then the message type and the +payload.

+

The payload of replies from i3 usually consists of a simple string (the length +of the string is the message_length, so you can consider them length-prefixed), +which in turn contain the JSON serialization of a data structure. For example, +the GET_WORKSPACES message returns an array of workspaces (each workspace is a +map with certain attributes).

+

Replies currently have a 1:1 correspondence to messages, with the message type +of the reply corresponding to the message type of the message which caused the +reply to be sent.

+

The following reply types are implemented:

+
+
+COMMAND (0) +
+
+

+ Confirmation/Error code for the RUN_COMMAND message. +

+
+
+WORKSPACES (1) +
+
+

+ Reply to the GET_WORKSPACES message. +

+
+
+SUBSCRIBE (2) +
+
+

+ Confirmation/Error code for the SUBSCRIBE message. +

+
+
+OUTPUTS (3) +
+
+

+ Reply to the GET_OUTPUTS message. +

+
+
+TREE (4) +
+
+

+ Reply to the GET_TREE message. +

+
+
+MARKS (5) +
+
+

+ Reply to the GET_MARKS message. +

+
+
+BAR_CONFIG (6) +
+
+

+ Reply to the GET_BAR_CONFIG message. +

+
+
+VERSION (7) +
+
+

+ Reply to the GET_VERSION message. +

+
+
+BINDING_MODES (8) +
+
+

+ Reply to the GET_BINDING_MODES message. +

+
+
+GET_CONFIG (9) +
+
+

+ Reply to the GET_CONFIG message. +

+
+
+TICK (10) +
+
+

+ Reply to the SEND_TICK message. +

+
+
+SYNC (11) +
+
+

+ Reply to the SYNC message. +

+
+
+GET_BINDING_STATE (12) +
+
+

+ Reply to the GET_BINDING_STATE message. +

+
+
+
+
+
+

Messages and replies

+
+
+

RUN_COMMAND / COMMAND

+

Run the payload as an i3 +command (like the commands you can bind to keys).

+

Message:

+

The message payload is the string containing the command to execute. There is +no JSON encoding or trailing newline.

+

Reply:

+

The reply consists of a list of serialized maps for each command that was +parsed. Each has the property success (bool) and may also include a +human-readable error message in the property error (string).

+
+ + + +
+
Note
+
When sending the restart command, you will get a singular reply once the +restart completed. All IPC connection states (e.g. subscriptions) will reset and +all but one socket will be closed. Libraries must be able to cope with this by +aligning their internal states. It is also recommended that libraries close +the last remaining socket(one which replied to restart command) to achieve +the full reset.
+
+
+ + + +
+
Note
+
It is easiest to always send the restart command alone: due to i3’s +state reset, the reply messages of preceding commands are lost, and following +commands will not be executed.
+
+
+ + + +
+
Note
+
When processing the exit command, i3 will immediately exit without +sending a reply. Expect the socket to be shut down.
+
+

Example:

+
+
+
[{ "success": true }]
+
+

When the specified command cannot be parsed, success will be false and +parse_error will be true:

+

Example:

+
+
+
[{ "success": false, "parse_error": true }]
+
+
+
+

GET_WORKSPACES / WORKSPACES

+

Get the list of current workspaces.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of a serialized list of workspaces. Each workspace has the +following properties:

+
+
+id (integer) +
+
+

+ The internal ID (actually a C pointer value) of this container. Do not + make any assumptions about it. You can use it to (re-)identify and + address containers when talking to i3. +

+
+
+num (integer) +
+
+

+ The logical number of the workspace. Corresponds to the command + to switch to this workspace. For named workspaces, this will be -1. +

+
+
+name (string) +
+
+

+ The name of this workspace if changed by the user, otherwise defaults + to the string representation of the num field). Encoded in UTF-8. +

+
+
+visible (boolean) +
+
+

+ Whether this workspace is currently visible on an output (multiple + workspaces can be visible at the same time). +

+
+
+focused (boolean) +
+
+

+ Whether this workspace currently has the focus (only one workspace + can have the focus at the same time). +

+
+
+urgent (boolean) +
+
+

+ Whether a window on this workspace has the "urgent" flag set. +

+
+
+rect (map) +
+
+

+ The rectangle of this workspace (equals the rect of the output it + is on), consists of x, y, width, height. +

+
+
+output (string) +
+
+

+ The video output this workspace is on (LVDS1, VGA1, …). +

+
+
+

Example:

+
+
+
[
+ {
+  "num": 0,
+  "name": "1",
+  "visible": true,
+  "focused": true,
+  "urgent": false,
+  "rect": {
+   "x": 0,
+   "y": 0,
+   "width": 1280,
+   "height": 800
+  },
+  "output": "LVDS1"
+ },
+ {
+  "num": 1,
+  "name": "2",
+  "visible": false,
+  "focused": false,
+  "urgent": false,
+  "rect": {
+   "x": 0,
+   "y": 0,
+   "width": 1280,
+   "height": 800
+  },
+  "output": "LVDS1"
+ }
+]
+
+
+
+

SUBSCRIBE

+

Subscribe this IPC connection to the event types specified in the message +payload. See [events].

+

Message:

+

A JSON-encoded array of event types to subscribe to.

+

Reply:

+

The reply consists of a single serialized map. The only property is +success (bool), indicating whether the subscription was successful (the +default) or whether a JSON parse error occurred.

+

Example:

+
+
+
{ "success": true }
+
+
+
+

GET_OUTPUTS / OUTPUTS

+

Get the list of current outputs.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of a serialized list of outputs. Each output has the +following properties:

+
+
+name (string) +
+
+

+ The name of this output (as seen in xrandr(1)). Encoded in UTF-8. +

+
+
+active (boolean) +
+
+

+ Whether this output is currently active (has a valid mode). +

+
+
+primary (boolean) +
+
+

+ Whether this output is currently the primary output. +

+
+
+current_workspace (string or null) +
+
+

+ The name of the current workspace that is visible on this output. null if + the output is not active. +

+
+
+rect (map) +
+
+

+ The rectangle of this output (equals the rect of the output it + is on), consists of x, y, width, height. +

+
+
+

Example:

+
+
+
[
+ {
+  "name": "LVDS1",
+  "active": true,
+  "current_workspace": "4",
+  "rect": {
+   "x": 0,
+   "y": 0,
+   "width": 1280,
+   "height": 800
+  }
+ },
+ {
+  "name": "VGA1",
+  "active": true,
+  "current_workspace": "1",
+  "rect": {
+   "x": 1280,
+   "y": 0,
+   "width": 1280,
+   "height": 1024
+  }
+ }
+]
+
+
+
+

GET_TREE / TREE

+

Get the i3 layout tree.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of a serialized tree. Each node in the tree (representing +one container) has at least the properties listed below. While the nodes might +have more properties, please do not use any properties which are not documented +here. They are not yet finalized and will probably change!

+
+
+id (integer) +
+
+

+ The internal ID (actually a C pointer value) of this container. Do not + make any assumptions about it. You can use it to (re-)identify and + address containers when talking to i3. +

+
+
+name (string) +
+
+

+ The internal name of this container. For all containers which are part + of the tree structure down to the workspace contents, this is set to a + nice human-readable name of the container. + For containers that have an X11 window, the content is the title + (_NET_WM_NAME property) of that window. + For all other containers, the content is not defined (yet). +

+
+
+type (string) +
+
+

+ Type of this container. Can be one of "root", "output", "con", + "floating_con", "workspace" or "dockarea". +

+
+
+border (string) +
+
+

+ Can be either "normal", "none" or "pixel", depending on the + container’s border style. +

+
+
+current_border_width (integer) +
+
+

+ Number of pixels of the border width. +

+
+
+layout (string) +
+
+

+ Can be either "splith", "splitv", "stacked", "tabbed", "dockarea" or + "output". + Other values might be possible in the future, should we add new + layouts. +

+
+
+orientation (string) +
+
+

+ Can be either "none" (for non-split containers), "horizontal" or + "vertical". + THIS FIELD IS OBSOLETE. It is still present, but your code should not + use it. Instead, rely on the layout field. +

+
+
+percent (float or null) +
+
+

+ The percentage which this container takes in its parent. A value of + null means that the percent property does not make sense for this + container, for example for the root container. +

+
+
+rect (map) +
+
+

+ The absolute display coordinates for this container. Display + coordinates means that when you have two 1600x1200 monitors on a single + X11 Display (the standard way), the coordinates of the first window on + the second monitor are { "x": 1600, "y": 0, "width": 1600, "height": + 1200 }. +

+
+
+window_rect (map) +
+
+

+ The coordinates of the actual client window inside its container. + These coordinates are relative to the container and do not include the + window decoration (which is actually rendered on the parent container). + So, when using the default layout, you will have a 2 pixel border on + each side, making the window_rect { "x": 2, "y": 0, "width": 632, + "height": 366 } (for example). +

+
+
+deco_rect (map) +
+
+

+ The coordinates of the window decoration inside its container. These + coordinates are relative to the container and do not include the actual + client window. +

+
+
+actual_deco_rect (map) +
+
+

+ See deco_rect. i3 v4.22 changed the way title bars are rendered. Before + i3 v4.22, the deco_rect was always relative to the parent coordinates. + Starting with i3 v4.22, this remains true for tabbed/stacked containers + (actual_deco_rect is identical to deco_rect), but for normal-border leaf + containers within vertical/horizontal split containers, actual_deco_rect + is relative to the container itself. For more background, see + https://github.com/i3/i3/issues/1966 +

+
+
+geometry (map) +
+
+

+ The original geometry the window specified when i3 mapped it. Used when + switching a window to floating mode, for example. +

+
+
+window (integer or null) +
+
+

+ The X11 window ID of the actual client window inside this container. + This field is set to null for split containers or otherwise empty + containers. This ID corresponds to what xwininfo(1) and other + X11-related tools display (usually in hex). +

+
+
+window_properties (map) +
+
+

+ This optional field contains all available X11 window properties from the + following list: title, instance, class, window_role, machine + and transient_for. +

+
+
+window_type (string) +
+
+

+ The window type (_NET_WM_WINDOW_TYPE). Possible values are undefined, + unknown, normal, dialog, utility, toolbar, splash, menu, dropdown_menu, + popup_menu, tooltip and notification. +

+
+
+urgent (bool) +
+
+

+ Whether this container (window, split container, floating container or + workspace) has the urgency hint set, directly or indirectly. All parent + containers up until the workspace container will be marked urgent if they + have at least one urgent child. +

+
+
+marks (array of string) +
+
+

+ List of marks assigned to container +

+
+
+focused (bool) +
+
+

+ Whether this container is currently focused. +

+
+
+focus (array of integer) +
+
+

+ List of child node IDs (see nodes, floating_nodes and id) in focus + order. Traversing the tree by following the first entry in this array + will result in eventually reaching the one node with focused set to + true. +

+
+
+sticky (bool) +
+
+

+ Whether this window is "sticky". If it is also floating, this window will + be present on all workspaces on the same output. +

+
+
+fullscreen_mode (integer) +
+
+

+ Whether this container is in fullscreen state or not. + Possible values are + 0 (no fullscreen), + 1 (fullscreened on output) or + 2 (fullscreened globally). + Note that all workspaces are considered fullscreened on their respective output. +

+
+
+floating (string) +
+
+

+ Floating state of container. + Can be either "auto_on", "auto_off", "user_on" or "user_off" +

+
+
+nodes (array of node) +
+
+

+ The tiling (i.e. non-floating) child containers of this node. +

+
+
+floating_nodes (array of node) +
+
+

+ The floating child containers of this node. Only non-empty on nodes with + type workspace. +

+
+
+scratchpad_state (string) +
+
+

+ Whether the window is not in the scratchpad ("none"), freshly moved to + the scratchpad but not yet resized ("fresh") or moved to the scratchpad + and resized ("changed"). +

+
+
+

Please note that in the following example, I have left out some keys/values +which are not relevant for the type of the node. Otherwise, the example would +be by far too long (it already is quite long, despite showing only 1 window and +one dock window).

+

It is useful to have an overview of the structure before taking a look at the +JSON dump:

+
    +
  • +

    +root +

    +
      +
    • +

      +LVDS1 +

      +
        +
      • +

        +topdock +

        +
      • +
      • +

        +content +

        +
          +
        • +

          +workspace 1 +

          +
            +
          • +

            +window 1 +

            +
          • +
          +
        • +
        +
      • +
      • +

        +bottomdock +

        +
          +
        • +

          +dock window 1 +

          +
        • +
        +
      • +
      +
    • +
    • +

      +VGA1 +

      +
    • +
    +
  • +
+

Example:

+
+
+
{
+ "id": 6875648,
+ "name": "root",
+ "rect": {
+   "x": 0,
+   "y": 0,
+   "width": 1280,
+   "height": 800
+ },
+ "nodes": [
+
+   {
+    "id": 6878320,
+    "name": "LVDS1",
+    "layout": "output",
+    "rect": {
+      "x": 0,
+      "y": 0,
+      "width": 1280,
+      "height": 800
+    },
+    "nodes": [
+
+      {
+       "id": 6878784,
+       "name": "topdock",
+       "layout": "dockarea",
+       "orientation": "vertical",
+       "rect": {
+         "x": 0,
+         "y": 0,
+         "width": 1280,
+         "height": 0
+       }
+      },
+
+      {
+       "id": 6879344,
+       "name": "content",
+       "rect": {
+         "x": 0,
+         "y": 0,
+         "width": 1280,
+         "height": 782
+       },
+       "nodes": [
+
+         {
+          "id": 6880464,
+          "name": "1",
+          "orientation": "horizontal",
+          "rect": {
+            "x": 0,
+            "y": 0,
+            "width": 1280,
+            "height": 782
+          },
+          "window_properties": {
+            "class": "Evince",
+            "instance": "evince",
+            "title": "Properties",
+            "transient_for": 52428808
+          },
+          "floating_nodes": [],
+          "nodes": [
+
+            {
+             "id": 6929968,
+             "name": "#aa0000",
+             "border": "normal",
+             "percent": 1,
+             "rect": {
+               "x": 0,
+               "y": 18,
+               "width": 1280,
+               "height": 782
+             }
+            }
+
+          ]
+         }
+
+       ]
+      },
+
+      {
+       "id": 6880208,
+       "name": "bottomdock",
+       "layout": "dockarea",
+       "orientation": "vertical",
+       "rect": {
+         "x": 0,
+         "y": 782,
+         "width": 1280,
+         "height": 18
+       },
+       "nodes": [
+
+         {
+          "id": 6931312,
+          "name": "#00aa00",
+          "percent": 1,
+          "rect": {
+            "x": 0,
+            "y": 782,
+            "width": 1280,
+            "height": 18
+          }
+         }
+
+       ]
+      }
+    ]
+   }
+ ]
+}
+
+
+
+

GET_MARKS / MARKS

+

Gets the names of all currently set marks.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of a single array of strings for each container that has a +mark. A mark can only be set on one container, so the array is unique. +The order of that array is undefined.

+

If no window has a mark the response will be the empty array [].

+
+
+

GET_BAR_CONFIG / BAR_CONFIG

+

Gets the specified bar configuration or the names of all bar configurations if payload is empty.

+

Message:

+

No payload, or the ID of the bar whose configuration to retrieve.

+

Reply:

+

This can be used by third-party workspace bars (especially i3bar, but others +are free to implement compatible alternatives) to get the bar block +configuration from i3.

+

Depending on the input, the reply is either:

+
+
+empty input +
+
+

+ An array of configured bar IDs +

+
+
+Bar ID +
+
+

+ A JSON map containing the configuration for the specified bar. +

+
+
+

Each bar configuration has the following properties:

+
+
+id (string) +
+
+

+ The ID for this bar. Included in case you request multiple + configurations and want to differentiate the different replies. +

+
+
+mode (string) +
+
+

+ Either dock (the bar sets the dock window type) or hide (the bar + does not show unless a specific key is pressed). +

+
+
+position (string) +
+
+

+ Either bottom or top at the moment. +

+
+
+status_command (string) +
+
+

+ Command which will be run to generate a statusline. Each line on stdout + of this command will be displayed in the bar. At the moment, no + formatting is supported. +

+
+
+font (string) +
+
+

+ The font to use for text on the bar. +

+
+
+workspace_buttons (boolean) +
+
+

+ Display workspace buttons or not? Defaults to true. +

+
+
+binding_mode_indicator (boolean) +
+
+

+ Display the mode indicator or not? Defaults to true. +

+
+
+verbose (boolean) +
+
+

+ Should the bar enable verbose output for debugging? Defaults to false. +

+
+
+colors (map) +
+
+

+ Contains key/value pairs of colors. Each value is a color code in hex, + formatted #rrggbb (like in HTML). +

+
+
+

The following colors can be configured at the moment:

+
+
+background +
+
+

+ Background color of the bar. +

+
+
+statusline +
+
+

+ Text color to be used for the statusline. +

+
+
+separator +
+
+

+ Text color to be used for the separator. +

+
+
+focused_background +
+
+

+ Background color of the bar on the currently focused monitor output. +

+
+
+focused_statusline +
+
+

+ Text color to be used for the statusline on the currently focused + monitor output. +

+
+
+focused_separator +
+
+

+ Text color to be used for the separator on the currently focused + monitor output. +

+
+
+focused_workspace_text/focused_workspace_bg/focused_workspace_border +
+
+

+ Text/background/border color for a workspace button when the workspace + has focus. +

+
+
+active_workspace_text/active_workspace_bg/active_workspace_border +
+
+

+ Text/background/border color for a workspace button when the workspace + is active (visible) on some output, but the focus is on another one. + You can only tell this apart from the focused workspace when you are + using multiple monitors. +

+
+
+inactive_workspace_text/inactive_workspace_bg/inactive_workspace_border +
+
+

+ Text/background/border color for a workspace button when the workspace + does not have focus and is not active (visible) on any output. This + will be the case for most workspaces. +

+
+
+urgent_workspace_text/urgent_workspace_bg/urgent_workspace_border +
+
+

+ Text/background/border color for workspaces which contain at least one + window with the urgency hint set. +

+
+
+binding_mode_text/binding_mode_bg/binding_mode_border +
+
+

+ Text/background/border color for the binding mode indicator. +

+
+
+

Example of configured bars:

+
+
+
["bar-bxuqzf"]
+
+

Example of bar configuration:

+
+
+
{
+ "id": "bar-bxuqzf",
+ "mode": "dock",
+ "position": "bottom",
+ "status_command": "i3status",
+ "font": "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1",
+ "workspace_buttons": true,
+ "binding_mode_indicator": true,
+ "verbose": false,
+ "colors": {
+   "background": "#c0c0c0",
+   "statusline": "#00ff00",
+   "focused_workspace_text": "#ffffff",
+   "focused_workspace_bg": "#000000"
+ }
+}
+
+
+
+

GET_VERSION / VERSION

+

Gets the i3 version.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of a single JSON dictionary with the following keys:

+
+
+major (integer) +
+
+

+ The major version of i3, such as 4. +

+
+
+minor (integer) +
+
+

+ The minor version of i3, such as 2. Changes in the IPC interface (new + features) will only occur with new minor (or major) releases. However, + bugfixes might be introduced in patch releases, too. +

+
+
+patch (integer) +
+
+

+ The patch version of i3, such as 1 (when the complete version is + 4.2.1). For versions such as 4.2, patch will be set to 0. +

+
+
+human_readable (string) +
+
+

+ A human-readable version of i3 containing the precise git version, + build date and branch name. When you need to display the i3 version to + your users, use the human-readable version whenever possible (since + this is what i3 --version displays, too). +

+
+
+loaded_config_file_name (string) +
+
+

+ The current config path. +

+
+
+

Example:

+
+
+
{
+   "human_readable" : "4.2-169-gf80b877 (2012-08-05, branch \"next\")",
+   "loaded_config_file_name" : "/home/hwangcc23/.i3/config",
+   "minor" : 2,
+   "patch" : 0,
+   "major" : 4
+}
+
+
+
+

GET_BINDING_MODES / BINDING_MODES

+

Gets the names of all currently configured binding modes.

+

Message:

+

No payload.

+

Reply:

+

The reply consists of an array of all currently configured binding modes.

+

Example:

+
+
+
["default", "resize"]
+
+
+
+

GET_CONFIG / CONFIG

+

Returns the last loaded i3 config.

+

Message:

+

No payload.

+

Reply:

+

The config reply is a map which contains the following fields:

+
+
+config (string) +
+
+

+ The top-level config file contents that i3 has loaded most recently. + This field is kept for backwards compatibility. See included_configs + instead. +

+
+
+included_configs (array of maps) +
+
+

+ i3 adds one entry to this array for each config file it loads, in + order. The first entry’s raw_contents are identical to the config + field. +

+
+
+

Each included_configs entry contains the following fields

+
+
+path (string) +
+
+

+ Absolute path name to the config file that i3 loaded. +

+
+
+raw_contents (string) +
+
+

+ The raw contents of the file as i3 read them. +

+
+
+variable_replaced_contents (string) +
+
+

+ The contents of the file after i3 replaced all variables. This is useful + for debugging variable replacement. +

+
+
+

Example:

+
+
+
{
+  "config": "include font.cfg\n",
+  "included_configs": [
+    {
+      "path": "/home/michael/configfiles/i3/config",
+      "raw_contents": "include font.cfg\n",
+      "variable_replaced_contents": "include font.cfg\n"
+    },
+    {
+      "path": "/home/michael/configfiles/i3/font.cfg",
+      "raw_contents": "set $font pango:monospace 8\nfont $font",
+      "variable_replaced_contents": "set pango:monospace 8 pango:monospace 8\nfont pango:monospace 8\n"
+    }
+  ],
+}
+
+
+
+

SEND_TICK / TICK

+

Sends a tick event with the specified payload.

+

Message:

+

The payload of the tick event to send to IPC event listeners.

+

Reply:

+

The reply is a map containing the "success" member. After the reply was +received, the tick event has been written to all IPC connections which subscribe +to tick events. UNIX sockets are usually buffered, but you can be certain that +once you receive the tick event you just triggered, you must have received all +events generated prior to the SEND_TICK message (happened-before relation).

+

Example:

+
+
+
{ "success": true }
+
+
+
+

SYNC

+

Sends an i3 sync event with the specified random value to the specified window.

+

Message:

+

A JSON-encoded map with the properties "rnd" and "window" (both integer).

+

Reply:

+

The reply is a map containing the "success" member. After the reply was +received, the i3 sync message was +responded to.

+

Example:

+
+
+
{ "success": true }
+
+
+
+

GET_BINDING_STATE

+

Request the current binding state, i.e. the currently active binding mode name.

+

Message:

+

No payload.

+

Reply:

+

The binding_state reply is a map which currently only contains the "name" +member, which is the name of the currently active binding mode as a string.

+

Example:

+
+
+
{ "name": "default" }
+
+
+
+
+
+

Events

+
+

To get informed when certain things happen in i3, clients can subscribe to +events. Events consist of a name (like "workspace") and an event reply type +(like I3_IPC_EVENT_WORKSPACE). Events sent by i3 follow a format similar to +replies but with the highest bit of the message type set to 1 to indicate an +event reply instead of a normal reply. Note that event types and reply types +do not follow the same enumeration scheme (e.g. event type 0 corresponds to the +workspace event however reply type 0 corresponds to the COMMAND reply).

+

Caveat: As soon as you subscribe to an event, it is not guaranteed any longer +that the requests to i3 are processed in order. This means, the following +situation can happen: You send a GET_WORKSPACES request but you receive a +"workspace" event before receiving the reply to GET_WORKSPACES. If your +program does not want to cope which such kinds of race conditions (an +event based library may not have a problem here), I suggest you create a +separate connection to receive events.

+

If an event message needs to be sent and the socket is not writeable (write +returns EAGAIN, happens when the socket doesn’t have enough buffer space for +writing new data) then i3 uses a queue system to store outgoing messages for +each client. This is combined with a timer: if the message queue for a client is +not empty and no data where successfully written in the past 10 seconds, the +connection is killed. Practically, this means that your client should try to +always read events from the socket to avoid having its connection closed.

+
+

Subscribing to events

+

By sending a message of type SUBSCRIBE with a JSON-encoded array as payload +you can register to an event.

+

Example:

+
+
+
type: SUBSCRIBE
+payload: [ "workspace", "output" ]
+
+
+
+

Available events

+

The numbers in parenthesis is the event type (keep in mind that you need to +strip the highest bit first).

+
+
+workspace (0) +
+
+

+ Sent when the user switches to a different workspace, when a new + workspace is initialized or when a workspace is removed (because the + last client vanished). +

+
+
+output (1) +
+
+

+ Sent when RandR issues a change notification (of either screens, + outputs, CRTCs or output properties). +

+
+
+mode (2) +
+
+

+ Sent whenever i3 changes its binding mode. +

+
+
+window (3) +
+
+

+ Sent when a client’s window is successfully reparented (that is when i3 + has finished fitting it into a container), when a window received input + focus or when certain properties of the window have changed. +

+
+
+barconfig_update (4) +
+
+

+ Sent when the hidden_state or mode field in the barconfig of any bar + instance was updated and when the config is reloaded. +

+
+
+binding (5) +
+
+

+ Sent when a configured command binding is triggered with the keyboard or + mouse +

+
+
+shutdown (6) +
+
+

+ Sent when the ipc shuts down because of a restart or exit by user command +

+
+
+tick (7) +
+
+

+ Sent when the ipc client subscribes to the tick event (with "first": + true) or when any ipc client sends a SEND_TICK message (with "first": + false). +

+
+
+

Example:

+
+
+
# the appropriate 4 bytes read from the socket are stored in $input
+
+# unpack a 32-bit unsigned integer
+my $message_type = unpack("L", $input);
+
+# check if the highest bit is 1
+my $is_event = (($message_type >> 31) == 1);
+
+# use the other bits
+my $event_type = ($message_type & 0x7F);
+
+if ($is_event) {
+  say "Received event of type $event_type";
+}
+
+
+
+

workspace event

+

This event consists of a single serialized map containing a property +change (string) which indicates the type of the change.

+
    +
  • +

    +empty – the workspace has become empty +

    +
  • +
  • +

    +focus – the workspace has received input focus +

    +
  • +
  • +

    +init – the workspace has been created +

    +
  • +
  • +

    +move – the workspace has been moved to a different output +

    +
  • +
  • +

    +reload – i3 config has been reloaded +

    +
  • +
  • +

    +rename – the workspace’s name has changed +

    +
  • +
  • +

    +restored – the workspace’s layout has changed to a previously saved layout +

    +
  • +
  • +

    +urgent – the workspace has become urgent or lost its urgent status +

    +
  • +
+

A current (object) property will be present with the affected workspace +whenever the type of event affects a workspace (otherwise, it will be null).

+

When the change is "focus", an old (object) property will be present with the +previous workspace. When the first switch occurs (when i3 focuses the +workspace visible at the beginning) there is no previous workspace, and the +old property will be set to null. Also note that if the previous is empty +it will get destroyed when switching, but will still be present in the "old" +property.

+

Example:

+
+
+
{
+ "change": "focus",
+ "current": {
+  "id": 28489712,
+  "type": "workspace",
+  ...
+ }
+ "old": {
+  "id": 28489715,
+  "type": "workspace",
+  ...
+ }
+}
+
+
+
+

output event

+

This event consists of a single serialized map containing a property +change (string) which indicates the type of the change (currently only +"unspecified").

+

Example:

+
+
+
{ "change": "unspecified" }
+
+
+
+

mode event

+

This event consists of a single serialized map containing a property +change (string) which holds the name of current mode in use. The name +is the same as specified in config when creating a mode. The default +mode is simply named default. It contains a second property, pango_markup, which +defines whether pango markup shall be used for displaying this mode.

+

Example:

+
+
+
{
+  "change": "default",
+  "pango_markup": true
+}
+
+
+
+

window event

+

This event consists of a single serialized map containing a property +change (string) which indicates the type of the change

+
    +
  • +

    +new – the window has become managed by i3 +

    +
  • +
  • +

    +close – the window has closed +

    +
  • +
  • +

    +focus – the window has received input focus +

    +
  • +
  • +

    +title – the window’s title has changed +

    +
  • +
  • +

    +fullscreen_mode – the window has entered or exited fullscreen mode +

    +
  • +
  • +

    +move – the window has changed its position in the tree +

    +
  • +
  • +

    +floating – the window has transitioned to or from floating +

    +
  • +
  • +

    +urgent – the window has become urgent or lost its urgent status +

    +
  • +
  • +

    +mark – a mark has been added to or removed from the window +

    +
  • +
+

Additionally a container (object) field will be present, which consists +of the window’s parent container. Be aware that for the "new" event, the +container will hold the initial name of the newly reparented window (e.g. +if you run urxvt with a shell that changes the title, you will still at +this point get the window title as "urxvt").

+

Example:

+
+
+
{
+ "change": "new",
+ "container": {
+  "id": 35569536,
+  "type": "con",
+  ...
+ }
+}
+
+
+
+

barconfig_update event

+

This event consists of a single serialized map reporting on options from the +barconfig of the specified bar_id that were updated in i3. This event is the +same as a GET_BAR_CONFIG reply for the bar with the given id.

+
+
+

binding event

+

This event consists of a single serialized map reporting on the details of a +binding that ran a command because of user input. The change (string) field +indicates what sort of binding event was triggered (right now it will always be +"run" but may be expanded in the future).

+

The mode (string) field contains the name of the mode the binding was run in.

+

The binding (object) field contains details about the binding that was run:

+
+
+command (string) +
+
+

+ The i3 command that is configured to run for this binding. +

+
+
+event_state_mask (array of strings) +
+
+

+ The group and modifier keys that were configured with this binding. +

+
+
+input_code (integer) +
+
+

+ If the binding was configured with bindcode, this will be the key code + that was given for the binding. If the binding is a mouse binding, it will be + the number of the mouse button that was pressed. Otherwise it will be 0. +

+
+
+symbol (string or null) +
+
+

+ If this is a keyboard binding that was configured with bindsym, this + field will contain the given symbol. Otherwise it will be null. +

+
+
+input_type (string) +
+
+

+ This will be "keyboard" or "mouse" depending on whether or not this was + a keyboard or a mouse binding. +

+
+
+

Example:

+
+
+
{
+ "change": "run",
+ "binding": {
+  "command": "nop",
+  "event_state_mask": [
+    "shift",
+    "ctrl"
+  ],
+  "input_code": 0,
+  "symbol": "t",
+  "input_type": "keyboard"
+ }
+}
+
+
+
+

shutdown event

+

This event is triggered when the connection to the ipc is about to shutdown +because of a user action such as a restart or exit command. The change +(string) field indicates why the ipc is shutting down. It can be either +"restart" or "exit".

+

Example:

+
+
+
{
+ "change": "restart"
+}
+
+
+
+

tick event

+

This event is triggered by a subscription to tick events or by a SEND_TICK +message.

+

Example (upon subscription):

+
+
+
{
+ "first": true,
+ "payload": ""
+}
+
+

Example (upon SEND_TICK with a payload of arbitrary string):

+
+
+
{
+ "first": false,
+ "payload": "arbitrary string"
+}
+
+
+
+
+
+

See also (existing libraries)

+
+

For some languages, libraries are available (so you don’t have to implement +all this on your own). This list names some (if you wrote one, please let me +know):

+
+
+C +
+
+
+
+
+C++ +
+
+ +
+
+Go +
+
+ +
+
+JavaScript +
+
+ +
+
+Lua +
+
+ +
+
+Perl +
+
+ +
+
+Python +
+
+ +
+
+Ruby +
+
+ +
+
+Rust +
+
+ +
+
+OCaml +
+
+ +
+
+
+
+
+

Appendix A: Detecting byte order in memory-safe languages

+
+

Some programming languages such as Go don’t offer a way to serialize data in the +native byte order of the machine they’re running on without resorting to tricks +involving the unsafe package.

+

The following technique can be used (and will not be broken by changes to i3) to +detect the byte order i3 is using:

+
    +
  1. +

    +The byte order dependent fields of an IPC message are message type and + payload length. +

    +
      +
    • +

      +The message type RUN_COMMAND (0) is the same in big and little endian, so + we can use it in either byte order to elicit a reply from i3. +

      +
    • +
    • +

      +The payload length 65536 + 256 (0x00 01 01 00) is the same in big and + little endian, and also small enough to not worry about memory allocations + of that size. We must use payloads of length 65536 + 256 in every message + we send, so that i3 will be able to read the entire message regardless of + the byte order it uses. +

      +
    • +
    +
  2. +
  3. +

    +Send a big endian encoded message of type SUBSCRIBE (2) with payload [] + followed by 65536 + 256 - 2 SPACE (ASCII 0x20) bytes. +

    +
      +
    • +

      +If i3 is running in big endian, this message is treated as a noop, + resulting in a SUBSCRIBE reply with payload {"success":true} +
      [A small payload is important: that way, we circumvent dealing + with UNIX domain socket buffer sizes, whose size depends on the + implementation/operating system. Exhausting such a buffer results in an i3 + deadlock unless you concurrently read and write, which — depending on the + programming language — makes the technique much more complicated.]
      . +

      +
    • +
    • +

      +If i3 is running in little endian, this message is read in its entirety due + to the byte order independent payload length, then + silently + discarded due to the unknown message type. +

      +
    • +
    +
  4. +
  5. +

    +Send a byte order independent message, i.e. type RUN_COMMAND (0) with + payload nop byte order detection. padding:, padded to 65536 + 256 bytes + with a (ASCII 0x61) bytes. i3 will reply to this message with a reply of + type COMMAND (0). +

    +
      +
    • +

      +The human-readable prefix is in there to not confuse readers of the i3 log. +

      +
    • +
    • +

      +This messages serves as a synchronization primitive so that we know whether + i3 discarded the SUBSCRIBE message or didn’t answer it yet. +

      +
    • +
    +
  6. +
  7. +

    +Receive a message header from i3, decoding the message type as big endian. +

    +
      +
    • +

      +If the message’s reply type is COMMAND (0), i3 is running in little + endian (because the SUBSCRIBE message was discarded). Decode the message + payload length as little endian, receive the message payload. +

      +
    • +
    • +

      +If the message’s reply type is anything else, i3 is running in big endian + (because our big endian encoded SUBSCRIBE message was answered). Decode + the message payload length in big endian, receive the message + payload. Then, receive the pending COMMAND message reply in big endian. +

      +
    • +
    +
  8. +
  9. +

    +From here on out, send/receive all messages using the detected byte order. +

    +
  10. +
+

Find an example implementation of this technique in +https://github.com/i3/go-i3/blob/master/byteorder.go

+
+
+
+

+ + + diff --git a/docs/keyboard-layer1.png b/docs/keyboard-layer1.png new file mode 100644 index 0000000000000000000000000000000000000000..52ffae0da423a9b5f0403c77dba9cb9cd2dbc4d1 GIT binary patch literal 55821 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 ouB|LYgM)2LlmuVT56(O`atum) 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�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�^!L?RiOt75+m*D zmisA26Y^+ERA~czDY8J9CAVfdlMJl1!%dG$Pq(SbDAgY1l5r)}#3Ey{d1)EKG!!=M z&$NGk+Z$&ac*LZ!pw|AE_VHal*m%>fw^SlGH@DS+*hh9zQCe+nZ5`vrqiEC6oJ0aN zzPveQkooQo3~IZM*)&*{sn}B$K$JjVxPJ0!5d#i>Mxe zrLLxmUSmMlgG9Ua6bh%kgTtfGLyd9K=*m@Qk9?@CgwHCnde>0RW!uvi?FT$Tdvz6B z?S%}d8%gt*9&8&oo7Os?Wo!fWM@XC+-;N0iCc%Ty+Dv!R>bhOnOIvS*pICXTxkA<# z2X)T3%qN`GCG&XVa z_r-&oUltX4PW3%)@b4Avdc>h}`U0cuvwME(2Sr6AI8|d6%gFcb+ef@hEa`dh-{oJd zkifQKUy*QgU8GIuJ_Gnzds1f>2Zn^CI}FunTr2>+-dbp-IqKo&_NLpoH)e;fC8dpx z4P107%ZfmUkx`mtLmL4>;qw<$bBbhPiRx}%Xz<@A`UI?5;gitNQ$SI=L$xrhWb%iE zmz=u831K^wDgSv+PKVo0tzf34c#G80jzoO_?5O7KFGnT7bkER`Zxz90=^BcPOCRT)YVY7tmO*;jmaq~A1%NI znGrVDp&BE+)n9I=*E?%#j%*3vZOCc71=`@5a|=Bh6I3`d5rJH?l=utu06K3^KS3UAYp1%ob9OgaAsE4 zCKM5Aw=&K@)6>L8M+g`i0Q2tc9L3-1UbYvsp0oRR6M z#3j3RAO4w}JACkg}zkJkU5`p0_*|K*OmFlK?J0FN>VA`SfEL+~vQzdkb;8Cej?2&Yh3A-3$$p+hNl zU`v!ExY$fYyP7&WF6R6m21#}q{*uq1KZCfHwIdqD#jZrIQ5=vZnkgFs*u#PX z5hR58leaXOdY^z!0T;t*@wjUk_0J3`$VZq0uGW*po0PhS;jm`uAFlJrqX;q zwsV5bl-G_|cqS7iuM)MCO5RR!*-%Zu$mJ8hQGb}+*?s|QL9g_w9sP{m{ zgrr{=#jk?W0N-orCE7zXKsg{e;Ox2$hX2Omq&}Q!FJHa-1v~oH))XbCCv)W?;o;$; zw(9%us+6lietPXZwhs;_Qyfyl2Z>+;8Ox>rMpWkS5<7bKN{CpK>IG+RZ`w)_ts>?P zR|l$t30pC$I?Ut1ZYO{wI+unxg~z}dp=WA{I~D>}gGJioUSuR4c6n~BGlbP^Np_NE ztLzdL{F)-JZf?3SVe75;Zi=u6e{uJXWi6Fb@=H?2YwhWv6ZqJm5X@ca6GJeyrM~=p?=Loc`rHw%Y zTCJK}c+n$CKRq_DsG@LGBm$yK2I)N;^*1T^Q{1*yHq_TeT<9MO?VrJw4W+|={|Qz9 zpSni;l}Eahaui=?&E;X8IQ=(Hfx!Nu-xl}N({Dc*>EDEr9LIpyeLZZG$8O$RZDjsG zKi1r;;N;{iF&J6|x8U=bKCumsq?Q|wj+$UFo|b_1SaMrSAfI$AP9?=THgv zZ&m)@|Gt}L0K5b&GG04$cE_}%| zRMXO;g1#^MWe|{QUe-zFerzL^u+3;6H9O0w_*QtoPa=9n|9;Q`fQ1K%pTA zLWJH*NJzl)yx9i~CJKFH^`2SVwpiPDhcCrRpWoU90b+3|Fj zfRxk|G_jblLWB1UZ%Tsj^aHjA03Ko{<;|N|sn^zUjk2mzQqpqyU=j+ZxKAA&V)X3w zQXreG%Wgw~NP(>#FRWp>xZr?_(bt!VJ{8&_6^T&OQ2eVmcJAm>JM1Ty3pULZlr#zZ z@N;4UzM2FlX-J{KM@5|=iZtfFtF z{5a&w&!iv2!)eYG{pjvTkzb=&*nNQH9pUZ7b~b@UO3_$~#qrgI3wI?vcLJ?3&|76s z&&hyib^1_t**G}1s*4}pzICgW{uCjYFdnx*xOv-7Vx$6AE|?k#;gsvr^T&{9`xshI z9~`6v1!*NIEp707NK?Z5uSZm;sk93qD>q}qTEd-!gH&KXpf{(i!#?P>vA)RHIRQhH z@-{M9r_Li+IB+P)E*&6-p=xVK%WAKhpM7}XJqk2BgCRN7KUdJ?AvPlYmw&~yx&m!4WZNV_Y@-HXuS;@y|V-nx!%C~1!tz5j*x3{ z;H^Kwh`_h&B`;u0)Vu+R%tV_Rvsc*Kd`wEA=OBGWy}&O&g|V+y3?oF3ilISQozSQ} z#tmH*3R6+QAozO`psrC79-JYt8aL)fE}U9EH8DD>WNDevtw^t$f+~r+pRx{rBR2gL z`1q6yB($#POVjiyR&xwaRHIWK^|X{6vzAvTBmAQuQ&NXVn)@}jU((3$SNgVCLz60q(EB1hwN$z zTR|%I6EJY02?w=?eXW6bn%Psl*%e*OCOf#3^AZ``c2`pmhtu~N}!OX8SEb)KSzj~>xfekOlyI!BbhC)5Z)8Igo7UK*rAREGO&459{ru~Gc=y{E@Ci07th=_mXMZjcpo zGzATw^yP*)6Ar;JVxeOUTewJJRBio~(Vbi*q5in{3lN7RV-H62?o9JTJeEnhn*d+{ zmWkuZei8GaFOk{wg=dFNCpDuU)p!J_9q|MDpPT%CWu-G&emmR`Rp8oEZFcV31$$+2 z&;@e>*I=Bb7Dx@4fgf}^F=`}g*?elU*+CCeKrncuKo}u7OW^1hcpZ-Fy*_x;vhtYR zvpvK-go%Yk0Njw+*Nx|$2_X6~h%u;cTA5yVyj{eR+6aBm4P@!}?`5;@&6l&t3F&Fk zlrsZ*n4<=Q=i=7zgKepfChQ=2A`c1#vZl%gRO2YKoJRbGwb=zODD)RRHEI6J1S^wQ z`0?ysBdq6VoW=A}D$qt=j7tx1i4n1QQB?Ht%aQg26-sa@wL@2Tzwb@+Vi&>z|0+7tnRBw)m>;bmpqRXyXW4ZGNY7K!ptR_>7F_qSjYRIZj zyXMG&F%uBKO$O=)HP)C5(D@sMlOcQ3mZGl^$s}u{uflsn#xQ(2wqYt+b#8usdE!-H z@7vEAoLRa>Jm@gtob*T23J^?(6<<~wQ?q^pNw5tYLwHJ%9FSDD;}=^Cq7GV4ynYMR zA%d)(qqIrHZEj>YAO-sPV^dOzz#vXeqCQ%+v*?h}4xWl7B?6@oc8Ib!m%xZ+>Xqbc z4ZEW=X;QQJQfRt(uID-94|si1#k5c12|+u zZ(Lb2|Hlk8&?QL!K8e5MWmV4mS)N^#ja&&uZ!EzxB z6FND>-GAn@h^a5YXyLQb1;Wxh7RS5x%E-ttKHFV>MmL(q+VRj58^8b*VjA_o?;V|; zBi-(me{`q=!K5Mg+G$i{)U~?Am+_T|0lV9FnQM6XQjg_57*;=}!+i}QLxKlG^6cJ9 z^!Z^?QFkF7B0->W+l>NtpO*X3$344u--fjVHVPdtaXQMapzw+QfR~pSBveaB2L}(& zeZsj~7chgC`dMCH2z2?R=co2FGAcPZ2!lo=ly{iCO#|V+mculuBOx)OJD%&-t%Sl_>Jk(~l6Nd3YjZEgzi3pM!%b;#IG~yWtmvV5`A&9bv{n zx*;3^>I)g!UWN;p)MVedzNIm3MP~~vDP(Yj=;T7B4=s#1Kio;)mkZ~GYPT13MPg1Z zYtTFb>HM*fi7RvocSBywD5Q4fZ+$-N=U+2{| zW{?Ji+=7PK5xr}P{3;j15D2{et^woz{hIh@R(-v_2`JXtk*CE)M8fxw*|lQ`2c@7E zbG%@*2;FJRmM!*Rv3tIMw*p%Umf9S68}CXXC$2X^!YbUpyA z*4676xKii*CebB#96|>n;zEpgnV~FHm4t?ou@?RN2nGYduT_8k{E#p+ zp`UnZ+a-+s_=o}3l)h1d48?dErbGPSzLg|AFPPs@j|w!zhXYfvA3gdI8p8vW0<;c| z$l>ijS8zvxy}f-Bk}7}|qYununY&{4P|sAZ66PoPEYz9q^kr%uA#Cp$xlDR)@c0H- z0TMIX*hd_f`e%1Ci4x+O;+1w`Ko9?ji5pY_Qa%-oS*>G`#2b=ieFw>PXtuC@ zv$B=Le76$19%;$l4VlV1L~{aQC-JA3RoJdu6c!|(xVZhW>$N=oGnqAXM0nrF3v>|| z;KzU8)ur>BanppsHA2w(@#88AB|$HPR}W$myAQSf=g`ncB;6bEiGaTN^zB<5afbqt zNstmTK{eOQb{>Q%F;=CaGJ+|z7lnllGwxQ+No26SM%=Xn2w_kc--5&m#1{ZM0Urz3 zOfc~Av+QgYs1O9+hUJp5M*`EG(&@j3U?SXS;C?fAT?b=k3K&7~|1hQ~R%~XB7QSHB z^IC{-e=J~}?Gu`b@^5UKmFd|Rv-c6Mh`T#D4<8o9d^feh2KK|+c_31}rLFA)Iwzb! zrP(fdIl1;n6%F7RXBHQ=R~z<-b_V$x4xMx{y!njw?j^${U@>P&JmUxh9Z&nRF+F>avW(egT)L2y+N`hj1kX za;OG8IJoB_vuM^4ScQ96=9lV33jiquI4=Vt@hT6*-dC!9aYPWe)!g`k@xy&WD^KB4{ zXFpKOG(-3#Mw4NAA>5mi&()0K+n_tU9Ez7~LQw0WP&9|o;gfHX4a(r35jQm9dtro; z(%bk`F930uxETa3RyB$laj3vdxKFJ{p&qR?e=D${#vyv&-F-qkyNL>FSQz`+d}K(l zZyA`D#gqPo*7UxqDFm<91iHZ(crZu|IBpMfb5nqO&K$f2OifH~A`cUWRj^*Z2r0tE z2`eGtslYKNy8FZf(MVEgzc8xZ3{?YkTPC~SQrbCNnei-E z>6aJ*-;k7ceUVyEbpa3JJA_tos9T^s-Ws|bF#!S{X7_;uLGTB|7}}rns`rqPP#CTx zfQh1M|MgPYWI2C~6*A(O96?FMk>$DcyaskiFnFC0y~tnSwh+vtyhHg?QdE2gJ3ZHo z%z8}*q2fJE6E3~$_fVT~jjxj|Xvs18m=_{0zK@bG*J{uCMpg@cfHFxfKO&M~~${F-c;tCI#*)?_zvEUvMi$u?A zY{3h-$uP~B`jF2+}XaB^6onY@B*J3^! zMdHemze@wuXbj{~^#3RND;KDJ^P|`cYMY?iAXX5p4)(c#hxSzLBT6bSM0z=J!iik*t?xCQTri0YNwKANUtiotb&`{p=SFMxW=h1k z>RxohntnKgxhX!Ju<4>Jf&Fi~Coe~)%kvu3M=kPyJ|yg|nND~Mwe%7R2QE!5@w~da z`rY-&xxHNLwfcspRT?I)OVeziMpJM$355fMcC0AN{~k~51egw1ziaTnIQj z-d*$npfc^sUvMbhpJ29rwJx+g&h9G!2F5$2z z=&@_D&$wPk*qKY=CY*Kn+Yiu@GV}>v07+QqrSVq8Iif(STcYycb*`^}*^ayyBE7=JDDP8P!2l3yAb%B>o4Hz*0T3*oM0m2Z8Lhw+u4wPCpPRSG;)zAjGmc>Gu0KdF3lS--kdN z|2fm!{jUB?lv!lD&CWz^2*E_Jg-@@ls+vZtgDaD^;NqC=xb0*!;n_jk0-BUrT~!LV z6y#1w?!y@ZHCm*)ZLB@>1DM@q+=-G2Efw-$KhALJ@^IYgvu6np;bdP$6S`W>kF%3+ zr{IcqgTLa|`g|vP55o0FKwb=4z+Sd%!u?}al|5W|cBSZ^Qt+p1$i%15oUt09tDeDs zI)Y3?V4uNKqswgmq9KDZAzV~KO@bbdJa1K}F2awh2`2+)FfCt5gHk}#Y%P-rdL1oY z-RTR+s5QHYi^rm)qccAU-p2ujw)Fw=GJ9H688-`H(5DGGxUj7+@K-p8s=_Rfs_{~( zsOn!})b~Ju$8q}5AflDF$DA9E^BItH=uc4ek9_D<{`ZQuLYx8wQvq%#B8~@|Q{oak zEF$jc3n3mD&x?Fy((Fy#@A2HQg2e}Vd~1oL1)*u77bc8apooZm2$y8t#}{(MG(Rz4 z72JudUjR&y1QU1-j1BWELAHZa9tKcdWVL;@`2 zcH$~SP#c63h3VL}Ak0$(xRTmQhgR0pTTu>tpiw04e=-l`y=^hCY=H?YLdr}dD{&fq zv~UA?h3uklrV^*B9C?jD23z1iSBkI z#*Z+<@oJ&5%WPXTm%C9;LH-&>U9e@{lus)E*m7_cDBso+ed}Az(;pqHU@4( zOIE|TF2TUFH-J4RMl@q5tUiv7k2in-n30>I9Dw7RBPmw%3lKd7vX`)G;08tGpEdaj zfOJTPTG^L^K?o2O1bonTzh4kfJ#*i(J!3c4h8RA$*?a3#d;cJVgfN?EWcuFs(aA~) ze^JGZ53R;aHLovd!C?bM+;O zZiBF)B1TEba-6}cL`~150tJd*_dPxqgRhl6dQ9@t)Jo)u@|OUV|RU7dptiAcPKMNbw(C6?7l78Sg7N$cYiZZYHZ;@K{Fi z=@>uF_-BQAtYI^R5%ve>TAt!#(x{G{4fPY;tP?~2`wFhbLF>Zd{dcX~Xcqs~2uA(} znhLJBIH{O{<3v05D*eVjXx!BQSdp|>*`A!Wu!4&!*v>d zy9}T?oDPv?uF{wxV1IzC7y0>{k}&iDHwiJ>fU6IEA-G^$+VczzzuD>%TeB$%TaTOQ zUILF}L&6XHSqWY`lmWOI{OZ-K_iqpcDLR)#`eGFT+PDo$U%x-0rq(1HPGB?Nu!2^m zGxg|Skmk&FP=rK1w~7(B%mH+%(gxpvo3Sb>gg2x66jpZcnZsDtd+|?QXMUD0blVVt zi<}vABL09Z)0f|v^|=bN4L}mp1quutjI=02cmabNI$pxHkCKu`#ep4AR|7ONjY>(tCQ(h!uvl0JPEL6A=ewA=>@(`=@h_Fq?`t zaK&1x%1kmV3YjvcC_~DSkdRQuWGM5uuJ+#V`}=*z@%{JxvG;L= z=XvhuzOU=N&U2k>tuyKGhcI#(lH=xSZtiWH+g5_ri||GM`F1kYO(u74l-e+`n9bV4?aV}r?%te0nO;pf3HM= zom=FeJHpijKRI@U_0;v%-=XZNLn)02{)Tcl=RbGbTM=M~+77wrUj1QWYCA5!;e7Nq z{h#kH_f6Xd(ED)@H#Z^o?Zus_##}r+YO1UIgA>rdpbJP&w%n>@Ek#L53H!*pWf_`| z9>avuiK%-_zB6x^Wn};TXT9UXf%qOI)cjMElgdv{7Cy#L&WGBWZW*(M%4^PFmFZ)~jyFHcqvji5eyZ8`u28sju`Tw4(f*JRJivc&}e;zh& zF%S%PmNJkyHEITSQD$hF>F#HxH_Sy z+Pp&Ei&p9ah0S2^=vt>ON!?0Xk5e*|8)8>9sv{;SvEX!j8HwMqWc zl^fEwKUd}E3TjAod^A7{yIz z;qMiqxG zqvBZ~TlAXjHEAvqU^%Jtb!sB7Cb3vtf>Z7I@!qVQ^3!Oqpufm^=El{lJ0V-g5lHlY zJZcY4-PRk}jZEj@$yCYbIIlIuIHf$tV~=*wG4UM7UgeJhJc#3hhJXl^`Sn=W$fX_} z6y+3DjSd}Dq%lY_8>--1=;x2jW&0^FR&DjZVY^9vipE-v<*1V9!i5qATNL#!--}V- zam|ZTSy>sHj!?vU34Oso(_4mMT>u7MwWjP+cpN9$N?gqMSYLh~tW%~fOJ|RX%3>7? zxS`ZLuD|!IeaWY1b$tby#p#N_bCL#j=JHXU6L6WOXkeqYsB&1i^7j3t?i*X%Xs^6x zNv6b8+B1ha*I#Zr+RI+#d+hOzu*+)#lZ@SR>$nXMjJRKkJ}bz3FVK-@2w)KMn*4ek z^6+8Zf=(uoDRD>(2vrsZ0}oW)0mMfD2L~wa7MZ!E4B{ecC=mR9IQ<3(5g@d5*LP>l#Lo!_!X{@s4j?{A|cwm$<3#ah@JW-RH#f z>UN#At=ijOgR8_M<`nBuj3(xGDX-gTc{#L0-f|tyHi8|HRKg7f z*v!q{|z(@RBX1#RF1ZHMRoi*?TpeU zUl(SsiS$cW(;_3bhp%cRZU2(PyKC-@#e1nXD`8QU$6Yd#zjp@}f5QHt+tA+T0W3+P zd!nUDW`V#Z4)sdMj#;aQ;;{L36D5Ai2_`%HD8D*l5R9h0*>_)Z;{GLmvTX2zGu?3$ zlkH%I@=ebJ|1gyELONK!Jnty#tWoL=t^3lSuQv?EK0uw!fi9Xf1!3xZ4B|g{Fch%b z=;*Vg;?uomSBp}x_AY7Cv^6>D*FB{xOLwTNYZdi7So2MP_02~3#65(0Fl?c3E*@1Zp!=3G9{o-qIj_CFsk!{u+|}Qosm&8(A0uPtE=2f^md2Ls@|s^+3dND~Ip& zMjWDo%kPFPnxszpfVqGYkn^z7Of4j()wQ+6v=RMHXyG4KZE>=YqnXy&T0bA)MmJMr z#Z4;{qceCvHi5DHqYA@jCXTeo39~>E^URY^o3&C{Ud&SKou!^L&%P#q)8Iw+_&FV} z&lMS}x80tVsrEK3=NFzZuD12Jay)#3*fDn2BF*{){F*;{6ehUBV1?TZ^9M10jY7dm zvPcThHhNArJ_GCX?bkX7coCl>c-lw&@n&$z0LbSvj}jm5J6y+L4KxIsauCmg$?E_5 zRSsDy0kBZ|fxOF#&KVJQc2wyJbEOfYY=E*e9?>^ ze?tOojqDXmw)6GwlEdunBiX978y;W!(&FaPct=TO+w)cB6PawnO8v82+`B|7Z@s?p z9~Xcldn&8kwk-9?vXsliF}=?&bK?b{?=W65(<#h1vhH3f+ha1*2;hEzaxuzn+}^yKmE@MVcB2m07&v%9zK z6Kq%uOFD+mjs8d+so(BQUuS-AU^RTG3{Em+JENW<&1}4eRZD#zy!7af0CGa&*Z1*I z+h^EYHG*q@9V{<6_^eOQVgxx`Rp=d}t8S*=pr#M>TBz0(qSY;jU={!rmh=h|mqo!J zw#NHlwXlVk0pW+C*L;0&Guv7tE?Y~5<#v@sg-4uoA%C1m~HF-Q)huRTdM&@)FACl3IXCqYJ0 zMWRa`H}2?IqKt+W`jL7^8vAHn;MNlO3@efl)0;i{W30St2t@(44pjjB9&k&12I;{$ zzKtUQLH;H>OCUhO`TtH(5EWVwIqI}Cafi=c#`=B_MKR1_i30)-mecS9SwxwOn#l1U zQ4Y2MoJaSFZtdFBXm}W%ux`9Pg_5(GClEG5XinZogXfw1hyfmIEs`xlT0smaIhTlI zD+MnMIv;_f0G1QEW}xNGK1)DJ$&JRA0JDrZz60#rsd{=S(acTzmP6)`M^`Rdizp?e zM!sGl5$kfaTynqdu*cM@?LFy=ovj?fn|ptqGg?~nLbhJ`oDFlMFdOUmk9M7*y?zr% zmkN;*#(N0f(Is*l$;>Y7O116kv+y(7kKW~Rw=UR`Z4-C3`uD~ILIAY))-9qfKNgOe z^)ByOw6^R+gP3AFC|Ou3_Jt=9(Gep8QuyzZ762(Po}6nCi20Cf$+_kk?* z>eZ{2;F9Ak-?VMpakMKyCQzL*#?3hMDVGwO6~K{-V8s=vDWY4*%noLy`rgEO9s;j-8x^Jg^oPu>qoIo8$Qi z8iykM9Ei{8-w?JJB1}_sW%91xR?%)(BmPjo;R24&ZPGH6rL3W^dEA*kZO>9zQ~m8{ zyYdxXmsnXVBx$PYPh?qxRWmQyxUOz@&D6Bx)dQ6VzQ60zBiDdOkOWVo&M{QT+odn) zmA(KJ1C05>*g2B^MOnb14Xsr`^u+ET{y43zoOIGGJVDWe(TR$z>i^)}-Mi2XSbjtAug_+blK^N81nHk<&!86@n8mkr><^&aS#xV-{43{aIn4Os`91T zu549m%A3m$hquU2`?{-Ye%^KXIlIqAThnzN_6~czVs+?GCU41SaVjcPShKA}ZzieK zOW`rSc+TMIhTf@|IMK2~@F&_0 z+PfqqH&Y9_6>UtXc5N|nDRV#3cxz$0^*9Bx->HYJRM`sN-8=0jZ*hKoK3~>6LBr0J z;q+0o_d&D%9&x&HQ^RwcCxhgiGJ2G*GJ_>ng_Ya<`6F0`Lw-BdJ=1}^Vm}ci954Z7 zQnBX#OA){$wBSJ~vox)XV^bMBI^S*V`sjTNx$ihyp^PBr7`HfN$=xLUiSA#d8GN%y zFGXd`7r%wGgiMEYPW;?gsw2_6)<{byL@qxgEIbExfcKQcOT0{nhBu^&YJ(KJe9=jf;kG!evm3n+xqGO$&y zP^xq}|6yogMfIIJttI=B#FD*7-gt`)^|lnmZ8f;!``x5|;ENUi!EJuSk2Sc2S!ei7 zrM?ye6u*V8vfY9yx>@(pzXAm_CUcY^$~`$;G#wQtaruU4pBVEkdam6sdimE(tMa0G zMb^D#*2n8&j_lbZU%9?$IcJ`CDw8t8r|o$zn?p1w{Qs~m>W$bq_H3@ZE`>hF>e^XIs^9C2p9h zsJUtU-R^jE1%)7wP*{|Wf1WEgR}vaj#12Db9mL)|4O9x&M1f#+5oXJw5rE@L9B)6r zO`UGg-t)zO#TPxw^~8S*j26M~s$S5wgL0z@N0N1etyr&{A!x_h_7hpN^&fVm(H}** z%aGK8F-NVpX<%?r5#nd~nu27gD!GC58cE|EQ3TDXxnic5;3XrYT=y|5CdSg*`WU2Y zhdsx)W3_FU^azEx2Fnk@LMh)GJ;+-)2)FFlBMeBWyMRDh@yn_pR)aPz>a_tmj?BuU zo6Miy)o{~S#pVG^Ca&sD79aP)ZSOc*4^@b)?YyO2I+~jC(^h3nzSpdXBYIZ9-q186 zwIqmtlv>SaNA&O26Fge2^iJ`HfupgKi5G7U(ukyWiPDei%AEZ0TfgG{4W;u;&8vln zoxJYuH9G<7CF!_9`L;nTZUk}e9e9IkfF6F%&Ju|WqPP&4l6tF+u5IrfD&Ma>>6E>o zAt)3$-cvcqQZl$W9?=&PUiFk+IzZXEGR5*rj(+kMpJ&Q#ha1@*rGD9`eKd}7&z|ar z_+c@NKYaT+KTEBS^j~*vvZQ_Q@EY@R;ZfW82n}c5i616%ak)JjKiEo_Y$IaNs%H$C z&E8QliGH-`!EQw7Mw7Yw$gYaO{rxRReVficSl4Ep{^uz7uDmaST^}Kjk)Q zi|J}^Sl8*lPI|>QcB$>Bd6Hs*OrEAMpMRSi_u%6z=~az4ms5GEz1p-E=Id?u-?`v> zTV7YLmijLqF4!`- zK~zm9uldK=@F(%o%LR{1dMSnrGw$Z7Ts|7X@=T#|!#anbg&j)?66Le}Rv9YneC)w9 zJ?ZwzJfj9(x19BA3v){^#D!SwtNoonF4EAD*u708y6DYj_`g9r9&W(`vN9^J{DEnj zHE3P#z&e5{!zQhv`X1lkJ0R47iQyH9SNeK;D-ml5CpmYzl#b4nJ0w^s{>eAl==6pc=qg>LeKaay5bJ)Pa2V!!LLii zZZ-vtU3ye^HDGlR`6v7iP9broPR=jSmCtIs7NFSAUUI-m)A6(XeMX)=8AH!^Ed81| zyWjbyUh<7Ehm#}u*guFc6uiq(WNxz^qILFf1V)p#q1Rm^}Dz6MhcN$6J@^% z)2GxU<6aq98ECRMpdQqXK=GIYPg?jOiM5GNUN7ZXYw4%UJjlxt5@FdEpxkDh8J)mp ztEaA+k-7gw(RsDF^BZEbqTe*JJ#q*U^`(ic&{A$r64}3TpQ$c)j761JrE*(&_u*uX zx_g`SFaPOe8y2~_Onu`@)zHb%7ZqYjGg>Y=tK4YPcOUw?HPk4>@1lm2L12K$kCbIm z{IpZB;&<=NhF0e`yk*jpRt4^(Y%6KJHj1BhT1M^WuPw~zU#og{t92oK=F+W?NB^jA zYo`*`xD@R??4TZ&bWYPfdwG#E@}|y+Vvast?_8imZeB~5?xvUF0<m7%luGVW=>H}>3 zV-rhS5u+FM0>ziwmXCebNhsJg())^IzekT}+XZ#O?_F%hzUj*vAqFEmdi-+xPDW_; zRAlh(wY%w@SMDHt|CaXKQymif`^q@hnhP7OFo|@f-{Ae4QgEh2M^fBJ5vfgctnBQM zjQxN(zhl_~ZxAptPuEHk_U{pf6-Iu)>($YzhMS(yE)l~Na5gN@o>fPfhkCCMJugE1e7TA=u<$E*{D5fIvi+FgcEA&0hhS5uX&ae9L^^&o>^sal!hta81^g{mFe5Uk7^H!+&*T zG974l%_x+PTesCkM^@{Yl&K4l2ek?!tPL(Qm5zSQ1sZlZsJRy z$o?NKu~K5gNt-SSEws-2Jm0TuG*g`EO;s@VL);`UIwDNPD!L*^RgLvUvN6A1biU*4 z?`8qhmbXs#64lOnNv7~=tL-+KJGtbcKdZZN-cCf}%O!u$EQP8GX?+9TKpP9Xk&57@ z`bu7FmqY4Vn=C&p&TieGH2(P4CEGe9%IJx2+eBV+^$ovR^;@N6=zg|U(PI^%f~Gs3 zdP1s=$G7kS@ccOTld?} zW-Zj$x{Cxx_bq}$>FrgD_!pAKo(sJo+t`G?strL_4$3MZAXuPn2%5Jn}K-8 zhv4h{5`Ya5h%xoxHvAvhCHPZ1xry^32l1Rq_K#|cbl<@TA(kkh2qc|700PIb&3;5b zf)d0^dEdnePo$?X#>wBK1f&K8f8t~73L|VFMOb!3?1#>|?cw(fM?eOKSj(fNYi3XE z1m2xORC0~!6 z(XZifmW=ya@MVTo4_c_i)E^swu!lGW1qB<$>D?|v$nw6laQu^va0kA5 z;n5RI6F;_RSk;wxGVA>2O*!AA9)0wKaA2VQVE7>;h2M*pd9QTs7t?Q)aW>a3IIE-^ zP3y3UTK(7kaH~(#t;x|Px4aX1AF!xCZ621}5>S>m@Aq+$&v9O*ChdIB`_X&F!Sl=1 z)iN&8V~6ImUcK`VR#|%&f%Y-W@nd;SXnZJhr$_S)ZK|1&cZ$&Lj!D_BN`IicKkeQG zS9~V*Z`rccThTVRqi;O7vDx2YJX7qT;ysx@|H3Y{ci(Wv#RQIJkuxlte;;2G-KML} z*EX@S)mB1Ep}kPo%||3*NNHbfQ-jIxxpvv|=&{CytVd1$!46Kb4-)5D9Ok1PZcZ%4 zlu+SMg~W3c8NIvd8%@S~dyfE`6^gy}zOIhI?kw3;Xx!J=ABeMkM0MI;8B`7i#ny}S zWo)88#e?ibR09fBlj)a^j=AEjEcgr^!J*vT{Ul-gaFz}?y@o6O;SAAvzK8Z4?)3}} zhxFVwt8)Yg?a9nhlaXwxiHLaNkS-(aeJxo3OV`k5)GqC!s+#bRhKN`)H?n3*bi{kh z7Ib29_R1J`#J)(d7ZhspI${1+B{Ryj*X;YW_-^jX;=q!#iJPtrPGk+H(1)bc2cB8T6$bool8e~`+d zu9O$a5NZ6<9^p1+P@t|KT@`ZU{K$l9J2zj><#ySCd;Twj<@r+rGc6WIJPRHV>@*dx z_yRPU+o=lY$S|IYMn z;+qyY%II(ha^3nap>6t8!jnSg;OaoB)@v2+er^6*$@Uy=#z$Hjv{t?qYe=@;=M`X= z$)pszP}%y9KYeqySGjUpp85~t%wsf_E1gvjqW7C=`K~jq&#I05Sn_c-Rv>l3?8%b$ zACqA!*JlrDC;PwiGoRtyZekp!GMAbDL4{j*&5cU)7(FJVlQeBXMsAmw^km;gUodr= zzLgWf5W1vW_AwGIT7zG~ zPs}qib_s94k>PEW6RSsOmF!eGbiB$IoXRjE?Mc$ zPnc$}^C{P7*y%PQ@##~Rwn}5m#En?{VBMQJe&EE-wAvMG?5l0(9QZR_E8tqdy7&7Z z#j^gcHO3o+e3rH@aen8UDe^d3-G8z`+~=agOhl_}xpP>vx;|%+*S?Osj5k??uAsjU zXAtEAhfHx*^b!92sy7k*m5iHrCz4K+!K1I`X!ms3aZBEgW)UF`YT*lM>|>hssR5a1 zMW&^GL|P>lyC4r?=!jfI@Q;7l*Q;$^0y^ULoHf4-vys|n5WS?SqF4W0-ragUB-8y?a$C8>tYjbED`_33Pqx#`9Y5Yk=r7EC za4d26_sjXHK9(KH)bCzkg%*RC>~|abU0Ia_{T&=`il>uxZYtHCqo==eL#eet%C@hT zUaP~3{>wq+Rx6v$b5KY15@;+vqz2m%(*Yf*JV=mbyaIUeCSjm z>AU`nMfc~U8>0n5ane7e!d zID;ppaX!QHiF2*VANRW|w@vG--dhg~O&_x?no8K8=N4bGg_my1$!g?D?d#X)=JQny z%rB0KAP2qwc!DoTz)G2+uVsmv5){kJ2;#)X4#pwG(;Wk7$=GQ-n&=O=mkGJ(*NYoU z76#^5uLZ>4)911>-}cd;{^I?B8uK75Wm0>4s=WMUb9ggf7W@629GQOS zn`$fWq2J&s1QH&ZP;+i1QaI2LZCem2gxt4r-4isG|8u_LD1&-)Ax2XLZcu>|gWz@~ zLxn?VsaZ=xu5(X$6oc~LWw!o_p2(Re168l(A5W!IQx@v$4E$z)A+mOP@#xu$mi*z_ zkJx)kvNcL>T*$C_l?l85J!`4b%`ck{{{JrD#3!ig}hHW22{4~V(iY%4Kn(7PEYBhJcTna$OB77~MFWl+ey{B$L*BOL(lYi_<_7#&$(#p+Dny{ zIS55CIxQa^yYFe~<+5RY&ZR$l_E|@#-8?!~$Y1#8x^x|@{$gc=TASXog!0TjsXV@= zUtN9%{`XaD&+8t1RFIQuGxTS)BJW1&lgPqj{sj~FS5zu|6l!s|+m7d>d=X z;N|Hs-}LyiUN_Cs8ePew7M@-cA*0t$n)kE2{L(CP*;a0!e0OJKdOE9nXJCtw2*d09 z>Pg1*Kh5tvd%WZDR^3}!q9JYlda{D5jv~3o^@><4san5hjz{D<_XsAR+W7MaMXhLM zG+$dUe}qq8LOx%nZV6AraB_^t!?uu2O)HJo3wsZ;C(TEGq19tvwW;5Hya0unfA#8$ zBYF?!)$&>53ntgDzDqmEfTsc@)u{33q^JD{V&;}@?rOBXUROW=#|1zP&yvclN{eaT zo4kDByt2+lO}k~knx;cT$r_=W%NZIE;#42-aAvPOXWec)a?8abD|5`p_cp7zPW8Ku z<)5ghs54k|d-F0y-xP|y_+9qIB&zdv&rx*&t>^2FIs!bIB7h#sTUTJPM&j_h-MX^v3Fi~h1WbYL+JW_Uyr;7!xJMGnH@t<=JqE!iztY2%J?5=5T4>1 zb~jkPHm-AR$j9{5%DarL!MiVet469zl9Tr;Gyh;=>xe_XLE-df*T5NjH3KJ`^}e?0 zG5eyTQg+k^h+nB^Z#(ttL#TQE=T&~*r;6Ss@h?W!EM8v|tFvM%Wv;s5Y^{=#nHh5> zHOeL0IxD>^>-)^n;mAmL&9>#&uhTmx3Tv|l-rvaVIGAopl}Ww$!&1M{a@hUm>r>yG z)q>+sz_+H;zzP57346WGjAx@11Oq}gR%4z`dHW+3KHmL@aQapMRD@t!+==yJeaMvBaU&^UrHEa=F?AGg?)8xCe?s{ z5Ux51&E+oYNw;p@(ypbxb51E#^FK!ID^>0*;LBKJ1bxTmB!22-?jR6&{`~p&p7SoL zHn2pJ1$8a=y0YUpaFR-epuFaS_rGcDM&;8F#J)YW$o@BrJ)wSY8#`FY1nhHOx$JiQ zx?%MHFp6#OzT)@1d(`^Bj90y4pZ)RUS2L#Z|BfAbp8l&>t#UcvaB^XxQo`9ceyVdNXVh8r_QcScjTlaX{`_q>zsY=L z)D6)`p56i$enUynblg?S zJC?ipLgl}wiHG$c9T|rO`SC0Ii*U-#kjJgLQ_BrVDm>f@e5^N<2i123yeTG=G614N zUjk|iaqCdL{)V`1R0A8$uO|xw3`zUQC7A#G0i~dz9xStmP;)5W`tSg*05#Ct5kp6E zi>0Ktqdfvq8kt#?;5*BLOi0ZA0pD3L>xqJ>a{$w`A4z`g#^S)#&`Tc0;C`GR{q*4z zr%eXT90cG9vaX(3)SyRAY=*&!%iAZ|kNJ83@Ne&9dN^PCAFjq{m|}Vwa_!CmIHPDo z+>~7VK)-q33}hlv$h$0}2SDj18Xk+>C&Z|bO|-#IVC@|i*o_b^7-{{Xv3=Uf=_Y_Y z@*OcNxI-o^h_U$6?x3$Ja|;WQGIugx&;W_X%}Nfw+P)y9y+Kct!l=Mu3(Ugccls{z zGa4xvue%wXBMPw5qA@MZ>f(zN+!!{3%OoS>9+j+RV`7pAdj

V(1P4dJ+awr!fZc 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 ROga9up6xIzb>^a9{tX$%z6}5X literal 0 HcmV?d00001 diff --git a/docs/layout-saving-1.png b/docs/layout-saving-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a49f042a7dca7387da1490f8f078b6c04a3144e3 GIT binary patch literal 14799 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 literal 0 HcmV?d00001 diff --git a/docs/layout-saving.html b/docs/layout-saving.html new file mode 100644 index 0000000..329caa1 --- /dev/null +++ b/docs/layout-saving.html @@ -0,0 +1,306 @@ + + + + + + +i3: Layout saving in i3 + + + + + + + +

+

i3 - improved tiling WM

+ +
+
+ +
+
+

Layout saving/restoring is a feature that was introduced in i3 v4.8.

+

Layout saving/restoring allows you to load a JSON layout file so that you can +have a base layout to start working with after powering on your computer. +Dynamic use-cases also come to mind: if you frequently (but not always!) need a +grid layout of terminals with ping/traceroute commands to diagnose network +issues, you can easily automate opening these windows in just the right layout.

+
+
+
+

Saving the layout

+
+

You can save the layout of either a single workspace or an entire output (e.g. +LVDS1). Of course, you can repeat this step multiple times if you want to +save/restore multiple workspaces/outputs.

+

i3-save-tree(1) is a tool to save the layout. It will print a JSON +representation of i3’s internal layout data structures to stdout. Typically, +you may want to take a quick look at the output, then save it to a file and +tweak it a little bit:

+
+
+
i3-save-tree --workspace 1 > ~/.i3/workspace-1.json
+
+

Please note that the output of i3-save-tree(1) is NOT useful until you +manually modify it — you need to tell i3 how to match/distinguish windows (for +example based on their WM_CLASS, title, etc.). By default, all the different +window properties are included in the output, but commented out. This is partly +to avoid relying on heuristics and partly to make you aware how i3 works so +that you can easily solve layout restoring problems.

+

How to modify the file manually is described in [EditingLayoutFiles].

+
+
+
+

Restoring the layout

+
+

After restoring the example layout from [EditingLayoutFiles], i3 will open +placeholder windows for all the windows that were specified in the layout file. +You can recognize the placeholder windows by the watch symbol +
[Depending on the font you are using, a placeholder symbol may show up +instead of the watch symbol.]
in the center of the window, and by the swallow +criteria specification at the top of the window:

+

+ +Restored layout + +

+

When an application opens a window that matches the specified swallow criteria, +it will be placed in the corresponding placeholder window. We say it gets +swallowed by the placeholder container, hence the term.

+

Note: Swallowing windows into unsatisfied placeholder windows takes precedence +over +assignment +rules. For example, if you assign all Emacs windows to workspace 1 in your i3 +configuration file, but there is a placeholder window on workspace 2 which +matches Emacs as well, your newly started Emacs window will end up in the +placeholder window on workspace 2.

+

The placeholder windows are just regular windows, so feel free to move them +around or close them, for example.

+
+

append_layout command

+

The append_layout command is used to load a layout file into i3. It accepts a +path (relative to i3’s current working directory or absolute) to a JSON file.

+

Syntax:

+
+
+
append_layout <path>
+
+

Examples:

+
+
+
# From a terminal or script:
+i3-msg "workspace 1; append_layout /home/michael/.i3/workspace-1.json"
+
+# In your i3 configuration file, you can autostart i3-msg like this:
+# (Note that those lines will quickly become long, so typically you would store
+#  them in a script with proper indentation.)
+exec --no-startup-id "i3-msg 'workspace 1; append_layout /home/michael/.i3/workspace-1.json'"
+
+
+
+
+
+

Editing layout files

+
+
+

Anatomy of a layout file

+

Here is an example layout file that we’ll discuss:

+
+
+
{
+    // splitv split container with 2 children
+    "layout": "splitv",
+    "percent": 0.4,
+    "type": "con",
+    "nodes": [
+        {
+            "border": "none",
+            "name": "irssi",
+            "percent": 0.5,
+            "type": "con",
+            "swallows": [
+                {
+                    "class": "^URxvt$",
+                    "instance": "^irssi$"
+                }
+            ]
+        },
+        {
+            // stacked split container with 2 children
+            "layout": "stacked",
+            "percent": 0.5,
+            "type": "con",
+            "nodes": [
+                {
+                    "name": "notmuch",
+                    "percent": 0.5,
+                    "type": "con",
+                    "swallows": [
+                        {
+                            "class": "^Emacs$",
+                            "instance": "^notmuch$"
+                        }
+                    ]
+                },
+                {
+                    "name": "midna: ~",
+                    "percent": 0.5,
+                    "type": "con"
+                }
+            ]
+        }
+    ]
+}
+
+{
+    // stacked split container with 1 children
+    "layout": "stacked",
+    "percent": 0.6,
+    "type": "con",
+    "nodes": [
+        {
+            "name": "chrome",
+            "type": "con",
+            "swallows": [
+                {
+                    "class": "^Google-chrome$"
+                }
+            ]
+        }
+    ]
+}
+
+

In this layout, the screen is divided into two columns. In the left column, +which covers 40% of the screen, there is a terminal emulator running irssi on +the top, and a stacked split container with an Emacs window and a terminal +emulator on the bottom. In the right column, there is a stacked container with +a Chrome window:

+

+ +Restored layout + +

+

The structure of this JSON file looks a lot like the TREE reply, see +https://build.i3wm.org/docs/ipc.html#_tree_reply for documentation on that. Some +properties are excluded because they are not relevant when restoring a layout.

+

Most importantly, look at the "swallows" section of each window. This is where +you need to be more or less specific. As an example, remember the section about +the Emacs window:

+
+
+
"swallows": [
+    {
+        "class": "^Emacs$",
+        "instance": "^notmuch$"
+    }
+]
+
+

Here you can see that i3 will require both the class and the instance to match. +Therefore, if you just start Emacs via dmenu, it will not get swallowed by that +container. Only if you start Emacs with the proper instance name (emacs24 +--name notmuch), it will get swallowed.

+

You can match on "class", "instance", "window_role", "title" and "machine". All +values are case-sensitive regular expressions (PCRE). Use xprop(1) and click +into a window to see its properties:

+
+
+
$ xprop
+WM_WINDOW_ROLE(STRING) = "gimp-toolbox-color-dialog"
+WM_CLASS(STRING) = "gimp-2.8", "Gimp-2.8"
+_NET_WM_NAME(UTF8_STRING) = "Change Foreground Color"
+
+

The first part of WM_CLASS is the "instance" (gimp-2.8 in this case), the +second part is the "class" (Gimp-2.8 in this case). "title" matches against +_NET_WM_NAME and "window_role" matches against WM_WINDOW_ROLE.

+

In general, you should try to be as specific as possible in your swallow +criteria. Try to use criteria that match one window and only one window, to +have a reliable startup procedure.

+

If you specify multiple swallow criteria, the placeholder will be replaced by +the window which matches any of the criteria. As an example:

+
+
+
// Matches either Emacs or Gvim, whichever one is started first.
+"swallows": [
+    {"class": "^Emacs$"},
+    {"class": "^Gvim$"}
+]
+
+
+
+

JSON standard non-compliance

+

A layout file as generated by i3-save-tree(1) is not strictly valid JSON:

+
    +
  1. +

    +Layout files contain multiple “JSON texts” at the top level. The JSON + standard doesn’t prohibit this, but in practice most JSON parsers only + allow precisely one “text” per document/file, and will mark multiple texts + as invalid JSON. +

    +
  2. +
  3. +

    +Layout files contain comments which are not allowed by the JSON standard, + but are understood by many parsers. +

    +
  4. +
+

Both of these deviations from the norm are to make manual editing by humans +easier. In case you are writing a more elaborate tool for manipulating these +layouts, you can either use a JSON parser that supports these deviations (for +example libyajl), transform the layout file to a JSON-conforming file, or +submit a patch +to make i3-save-tree(1) optionally output standard-conforming JSON.

+
+
+
+
+

Troubleshooting

+
+
+

Restoring a vertically split workspace

+

When using i3-save-tree with the --workspace switch, only the contents of +the workspace will be dumped. This means that properties of the workspace +itself will be lost.

+

This is relevant for, e.g., a vertically split container as the base container of +a workspace. Since the split mode is a property of the workspace, it will not be +stored. In this case, you will have to manually wrap your layout in such a +container:

+
+
+
// vim:ts=4:sw=4:et
+{
+    // this is a manually added container to restore the vertical split
+    "layout": "splitv",
+    "percent": 0.5,
+    "type": "con",
+    "nodes": [
+
+        // the dumped workspace layout goes here
+
+    ]
+}
+
+
+
+
+
+

+ + + diff --git a/docs/logo-30.png b/docs/logo-30.png new file mode 100644 index 0000000000000000000000000000000000000000..207b88886036187b6db78f551d49099f5309cff2 GIT binary patch literal 2751 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 literal 0 HcmV?d00001 diff --git a/docs/multi-monitor.html b/docs/multi-monitor.html new file mode 100644 index 0000000..5572d7f --- /dev/null +++ b/docs/multi-monitor.html @@ -0,0 +1,106 @@ + + + + + + +i3: The multi-monitor situation + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

Please upgrade your nVidia driver to version 302.17 or newer and i3 will just +work. This document is kept around for historic reasons only.

+
+
+
+

The quick fix

+
+

If you are using the nVidia binary graphics driver (also known as blob) +before version 302.17, you need to use the --force-xinerama flag (in your +.xsession) when starting i3, like so:

+
+
Example:
+
+
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1
+
+

…or use force_xinerama yes in your configuration file.

+
+
+
+

The explanation

+
+

Starting with version 3.ε, i3 uses the RandR (Rotate and Resize) API instead +of Xinerama. The reason for this, is that RandR provides more information +about your outputs and connected screens than Xinerama does. To be specific, +the code which handled on-the-fly screen reconfiguration (meaning without +restarting the X server) was a very messy heuristic and most of the time did +not work correctly — that is just not possible with the little information +Xinerama offers (just a list of screen resolutions, no identifiers for the +screens or any additional information). Xinerama simply was not designed +for dynamic configuration.

+

So RandR came along, as a more powerful alternative (RandR 1.2 to be specific). +It offers all of Xinerama’s possibilities and lots more. Using the RandR API +made our code much more robust and clean. Also, you can now reliably assign +workspaces to output names instead of some rather unreliable screen identifier +(position inside the list of screens, which could change, and so on…).

+

As RandR has been around for about three years as of this writing, it seemed +like a very good idea to us, and it still is a very good one. What we did not +expect, however, was the nVidia binary driver. It still does not support RandR +(as of March 2010), even though nVidia has announced that it will support RandR +eventually. What does this mean for you, if you are stuck with the binary +driver for some reason (say the free drivers don’t work with your card)? First +of all, you are stuck with TwinView and cannot use xrandr. While this ruins +the user experience, the more grave problem is that the nVidia driver not only +does not support dynamic configuration using RandR, it also does not expose +correct multi-monitor information via the RandR API. So, in some setups, i3 +will not find any screens; in others, it will find one large screen which +actually contains both of your physical screens (but it will not know that +these are two screens).

+

For this very reason, we decided to implement the following workaround: As +long as the nVidia driver does not support RandR, an option called +--force-xinerama is available in i3 (alternatively, you can use the +force_xinerama configuration file directive). This option gets the list of +screens once when starting, and never updates it. As the nVidia driver cannot +do dynamic configuration anyways, this is not a big deal.

+

Also note that your output names are not descriptive (like HDMI1) when using +Xinerama, instead they are counted up, starting at 0: xinerama-0, xinerama-1, …

+
+
+
+

See also

+
+

For more information on how to use multi-monitor setups, see the i3 User’s +Guide.

+
+
+
+

+ + + diff --git a/docs/refcard.html b/docs/refcard.html new file mode 100644 index 0000000..0e3a412 --- /dev/null +++ b/docs/refcard.html @@ -0,0 +1,198 @@ + + + + + i3 Reference Card + + + + +
+
+ +

i3 Reference Card

+ https://i3wm.org/docs/userguide.html +

+ Throughout this guide, the i3 logo will be used to refer to the configured modifier. + This is the key (Mod1) by default, + with super/ (Mod4) being a popular alternative. +

+
+ + +
+

Basics

+ + + + + + + +
+ + open new terminal +
+ j + focus left + +
+ k + focus down + +
+ l + focus up + +
+ ; + focus right +
+ + toggle focus mode +
+
+ +
+

Moving windows

+ + + + + +
+ + j + move window left +
+ + k + move window down +
+ + l + move window up +
+ + ; + move window right +
+
+ +
+ +
+

Modifying windows

+ + + + + +
+ f + toggle fullscreen +
+ v + split a window vertically +
+ h + split a window horizontally +
+ r + resize mode +
+

Look at the “Resizing containers / windows” section of the user guide.

+
+ +
+

Changing the container layout

+ + + + +
+ e + default + +
+ s + stacking + +
+ w + tabbed +
+
+ +
+

Floating

+ + + +
+ + + toggle floating +
+ + drag floating +
+
+ + +
+

Using workspaces

+ + + +
+ 0-9 + switch to another workspace +
+ + 0-9 + move a window to another workspace +
+
+ +
+ +
+

Opening applications / Closing windows

+ + + +
+ d + open application launcher (dmenu) +
+ + q + kill a window +
+
+ +
+

Restart / Exit

+ + + + +
+ + c + reload the configuration file +
+ + r + restart i3 inplace + +
+ + e + exit i3 + +
+ + + + +

+ Permission is granted to copy, distribute and/or modify this document provided + the copyright notice and this permission notice are preserved on all copies. +

+
+ diff --git a/docs/refcard_style.css b/docs/refcard_style.css new file mode 100644 index 0000000..361cac6 --- /dev/null +++ b/docs/refcard_style.css @@ -0,0 +1,45 @@ +/* Generated by Font Squirrel (http://www.fontsquirrel.com) on April 12, 2012 */ + + + +@font-face { + /* This declaration targets Internet Explorer */ + font-family: 'LinuxLibertine'; + src: url('linlibertine_r-webfont.eot'); +} + +@font-face { + /* This declaration targets everything else */ + font-family: 'LinuxLibertine'; + src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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AGUAcgAgAFQAZQByAG0AcwAgAG8AZgAgAGYAbwBsAGwAbwB3AGkAbgBnACAARgByAGUAZQAgAFMAbwBmAHQAdwBhAHIAZQAgAEwAaQBjAGUAbgBzAGUAcwA6AAoARwBQAEwAIAAoAEcAZQBuAGUAcgBhAGwAIABQAHUAYgBsAGkAYwAgAEwAaQBjAGUAbgBzAGUAKQAgAHcAaQB0AGgAIABmAG8AbgB0AC0AZQB4AGMAZQBwAHQAaQBvAG4AIABhAG4AZAAgAE8ARgBMACAAKABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUAKQAuAAoAQwByAGUAYQB0AGUAZAAgAHcAaQB0AGgAIABGAG8AbgB0AEYAbwByAGcAZQAgACgAaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGYAbwByAGcAZQAuAHMAZgAuAG4AZQB0ACkACgBTAGUAcAB0ACAAMgAwADAAMwAsACAAMgAwADAANAAsACAAMgAwADAANQAsACAAMgAwADAANgAsACAAMgAwADAANwAsACAAMgAwADAAOAAsACAAMgAwADAAOQAsACAAMgAwADEAMAAsACAAMgAwADEAMQBMAGkAbgB1AHgAIABMAGkAYgBlAHIAdABpAG4AZQBSAGUAZwB1AGwAYQByAHcAZQBiAGYAbwBuAHQATABpAG4AdQB4ACAATABpAGIAZQByAHQAaQBuAGUAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAA1AC4AMQAuADMAIABMAGkAbgBMAGkAYgBlAHIAdABpAG4AZQBUAGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAHEAdQBpAHIAcgBlAGwAIABHAGUAbgBlAHIAYQB0AG8AcgAuAAAAAgAAAAAAAP8PAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERALIAswESARMBFAEVARYBFwd1bmkwMEEwB3VuaTAwQUQHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMTAHdW5pMjAxMQpmaWd1cmVkYXNoB3VuaTIwMkYHdW5pMjA1Rgd1bmlFMDAwB3VuaUUxMzgHdW5pRTE4OAd1bmlFMTg5AAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALAEIEWwAytEsAUgRbIEZwIrsAMrRAGwBiBFsAMrRLAHIEWyBmQCK7EDRnYrRLAIIEW6AAZ//wACK7EDRnYrRFmwFCsAAA==) format('truetype'), url('linlibertine_r-webfont.svg#LinuxLibertineRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + /* This declaration targets Internet Explorer */ + font-family: 'LinuxBiolinumKeyboard'; + src: url('linbiolinum_k-webfont.eot'); +} + +@font-face { + /* This declaration targets everything else */ + font-family: 'LinuxBiolinumKeyboard'; + src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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AAEAAAC7BQEAEwAAAAAAAgABAAIAFgAAAQACEgAAAAAAAAAIAGYAAwABBAkAAAIuAAAAAwABBAkAAQAuAi4AAwABBAkAAgAOAlwAAwABBAkAAwAOAmoAAwABBAkABAA+AngAAwABBAkABQAcArYAAwABBAkABgAYAtIAAwABBAkAyABuAuoATABpAG4AdQB4ACAATABpAGIAZQByAHQAaQBuAGUAIABiAHkAIABQAGgAaQBsAGkAcABwACAASAAuACAAUABvAGwAbAAsAAoATwBwAGUAbgAgAEYAbwBuAHQAIAB1AG4AZABlAHIAIABUAGUAcgBtAHMAIABvAGYAIABmAG8AbABsAG8AdwBpAG4AZwAgAEYAcgBlAGUAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlAHMAOgAKAEcAUABMACAAKABHAGUAbgBlAHIAYQBsACAAUAB1AGIAbABpAGMAIABMAGkAYwBlAG4AcwBlACkAIAB3AGkAdABoACAAZgBvAG4AdAAtAGUAeABjAGUAcAB0AGkAbwBuACAAYQBuAGQAIABPAEYATAAgACgATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACkALgAKAEMAcgBlAGEAdABlAGQAIAB3AGkAdABoACAARgBvAG4AdABGAG8AcgBnAGUAIAAoAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABmAG8AcgBnAGUALgBzAGYALgBuAGUAdAApAAoAUwBlAHAAdAAgADIAMAAwADMALAAgADIAMAAwADQALAAgADIAMAAwADUALAAgADIAMAAwADYALAAgADIAMAAwADcALAAgADIAMAAwADgALAAgADIAMAAwADkALAAgADIAMAAxADAALAAgADIAMAAxADEATABpAG4AdQB4ACAAQgBpAG8AbABpAG4AdQBtACAASwBlAHkAYgBvAGEAcgBkAFIAZQBnAHUAbABhAHIAdwBlAGIAZgBvAG4AdABMAGkAbgB1AHgAIABCAGkAbwBsAGkAbgB1AG0AIABLAGUAeQBiAG8AYQByAGQAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAwAC4ANgAuADEAIABMAGkAbgBCAGkAbwBsAGkAbgB1AG0ASwBUAGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAHEAdQBpAHIAcgBlAGwAIABHAGUAbgBlAHIAYQB0AG8AcgAuAAAAAgAAAAAAAP8PAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAC7AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERALIAswESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgHdW5pMDBBMAd1bmkwMEFEB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDEwB3VuaTIwMTEKZmlndXJlZGFzaAd1bmkyMDJGB3VuaTIwNUYHdW5pRTAwMAd1bmlFMTMxB3VuaUUxMzIHdW5pRTEzMwd1bmlFMTM0B3VuaUUxMzUHdW5pRTEzOAd1bmlFMTM5B3VuaUUxM0EHdW5pRTEzQwd1bmlFMTNEB3VuaUUxNjgHdW5pRTE2RQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxN0EHdW5pRTE3Qgd1bmlFMTdDB3VuaUUxN0QHdW5pRTE3RQd1bmlFMTdGB3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE4QQd1bmlFMThCB3VuaUUxOEMHdW5pRTE4RQd1bmlFMTkwB3VuaUUxOTEHdW5pRTE5Mgd1bmlFMTkzB3VuaUUxOTQHdW5pRTE5NQd1bmlFMTk2B3VuaUUxOTgHdW5pRTE5OQd1bmlFMTlBB3VuaUUxOUIHdW5pRTFBMAd1bmlFMUExB3VuaUUxQTIHdW5pRTFBMwd1bmlFMUE0B3VuaUUxQTUHdW5pRTFBNgd1bmlFMUE3B3VuaUUxQTgHdW5pRTFBOQd1bmlFMUFBB3VuaUUxQUIHdW5pRTFBQwd1bmlFMUFEB3VuaUUxQUUAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALABIEWwAytEsAIgRbIBFAIrsAMrRAGwAyBFsAMrRLAEIEWyAxACK7EDRnYrRLAFIEW6AAN//wACK7EDRnYrRFmwFCsAAA==) format('truetype'), url('linbiolinum_k-webfont.svg#LinuxBiolinumKeyboardRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + /* This declaration targets Internet Explorer */ + font-family: 'LinuxBiolinum'; + src: url('linbiolinum_r-webfont.eot'); +} + +@font-face { + /* This declaration targets everything else */ + font-family: 'LinuxBiolinum'; + src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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) format('truetype'), url('linbiolinum_r-webfont.svg#LinuxBiolinumRegular') format('svg'); + font-weight: normal; + font-style: normal; +} diff --git a/docs/single_terminal.png b/docs/single_terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe918cd2089f16a3b72b9291f655b57b0adefbf GIT binary patch literal 3382 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 B=(_*_ literal 0 HcmV?d00001 diff --git a/docs/testsuite.html b/docs/testsuite.html new file mode 100644 index 0000000..b24e811 --- /dev/null +++ b/docs/testsuite.html @@ -0,0 +1,757 @@ + + + + + + +i3: i3 testsuite + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document explains how the i3 testsuite works, how to use it and extend it. +It is targeted at developers who haven’t necessarily done testing before, +or have not used Perl for testing before. In general, the testsuite is not of +interest for end users.

+
+
+
+

Introduction

+
+

The i3 testsuite is a collection of files which contain testcases for various +i3 features. Some of them test if a certain workflow works correctly (moving +windows, focus behaviour, …). Others are regression tests and contain code +which previously made i3 crash or lead to unexpected behaviour. They then check +if i3 still runs (meaning it did not crash) and if it handled everything +correctly.

+

The goal of having these tests is to automatically find problems and to +automatically get a feel for whether a change in the source code breaks any +existing feature. After every modification of the i3 sourcecode, the developer +should run the full testsuite. If one of the tests fails, the corresponding +problem should be fixed (or, in some cases, the testcase has to be modified). +For every bugreport, a testcase should be written to test the correct +behaviour. Initially, it will fail, but after fixing the bug, it will pass. +This ensures (or increases the chance) that bugs which have been fixed once +will never be found again.

+

Also, when implementing a new feature, a testcase might be a good way to be +able to easily test if the feature is working correctly. Many developers will +test manually if everything works. Having a testcase not only helps you with +that, but it will also be useful for every future change.

+
+
+
+

Relevant documentation

+
+

Apart from this document, you should also have a look at:

+
    +
  1. +

    +The "Modern Perl" book: + https://i3wm.org/downloads/modern_perl_a4.pdf +

    +
  2. +
  3. +

    +The latest Perl documentation of the "i3test" (general testcase setup) and + "i3test::Test" (additional test instructions) modules: + https://build.i3wm.org/docs/lib-i3test.html respectively + https://build.i3wm.org/docs/lib-i3test-test.html +

    +
  4. +
  5. +

    +The latest documentation on i3’s IPC interface: + https://build.i3wm.org/docs/ipc.html +

    +
  6. +
+
+
+
+

Implementation

+
+

For several reasons, the i3 testsuite has been implemented in Perl:

+
    +
  1. +

    +Perl has a long tradition of testing. Every popular/bigger Perl module which + you can find on CPAN will not only come with documentation, but also with + tests. Therefore, the available infrastructure for tests is comprehensive. + See for example the excellent http://search.cpan.org/perldoc?Test::More + and the referenced http://search.cpan.org/perldoc?Test::Tutorial. +

    +
  2. +
  3. +

    +Perl is widely available and has a well-working package infrastructure. +

    +
  4. +
  5. +

    +The author is familiar with Perl :). +

    +
  6. +
  7. +

    +It is a good idea to use a different language for the tests than the + implementation itself. +

    +
  8. +
+

Please do not start programming language flamewars at this point.

+
+

Installing the dependencies

+

As usual with Perl programs, the testsuite ships with a Makefile.PL. +This file specifies which Perl modules the testsuite depends on and can be used +to install all of them.

+

Perl modules are distributed via CPAN, and there is the official, standard CPAN +client, simply called cpan. It comes with every Perl installation and can be +used to install the testsuite. Many users prefer to use the more modern +cpanminus instead, though (because it asks no questions and just works):

+

The tests additionally require Xephyr(1) to run a nested X server. Install +xserver-xephyr on Debian or xorg-server-xephyr on Arch Linux.

+
+
Installing testsuite dependencies using cpanminus
+
+
# Install testsuite system-level dependencies. Xvfb is optional but recommended.
+$ sudo apt-get install xcb-proto cpanminus xvfb xserver-xephyr
+# Install dependencies in ~/perl5 local library
+$ cpanm --local-lib=~/perl5 local::lib App::cpanminus Module::Install
+# Activate the local library
+$ eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
+$ cd ~/i3/testcases/
+$ cpanm .
+$ cd ~/i3/AnyEvent-I3
+$ cpanm .
+
+
+
+

Mechanisms

+
+

Script: complete-run

+

The testcases are run by a script called complete-run.pl. It runs all +testcases by default, but you can be more specific and let it only run one or +more testcases. Also, it takes care of starting up a separate instance of i3 +with an appropriate configuration file and creates a folder for each run +containing the appropriate i3 logfile for each testcase. The latest folder can +always be found under the symlink latest/. Unless told differently, it will +run the tests on a separate X server instance (using Xephyr).

+

Xephyr will open a window where you can inspect the running test. By default, +tests are run under Xvfb.

+
+
Example invocation of complete-run.pl
+
+
$ cd ~/i3
+
+$ mkdir -p build
+
+$ meson setup build
+$ cd build
+
+$ meson compile
+# output omitted because it is very long
+
+$ ./complete-run.pl
+# output omitted because it is very long
+All tests successful.
+Files=78, Tests=734, 27 wallclock secs ( 0.38 usr  0.48 sys + 17.65 cusr  3.21 csys = 21.72 CPU)
+Result: PASS
+
+$ ./complete-run.pl t/005-floating.t
+Running tests under Xvfb display :99
+Starting 1 Xephyr instances, starting at :100...
+
+Rough time estimate for this run: 9.65 seconds
+
+Writing logfile to 'testsuite-2024-05-01-21-33-45-4.23-28-g5834b7e8/complete-run.log'...
+[:100] i3/testcases/t/005-floating.t: finished
+completed 0 of 1 tests
+
+All tests successful.
+Files=1, Tests=13,  0 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
+Result: PASS
+
+The slowest tests are:
+        i3/testcases/t/005-floating.t with 0.07 seconds
+
+Test output:
+[:100] i3/testcases/t/005-floating.t: starting
+[:100] i3/testcases/t/005-floating.t: finished
+output for i3/testcases/t/005-floating.t:
+ok 1 - An object of class 'X11::XCB::Window' isa 'X11::XCB::Window'
+ok 2 - Window is mapped
+ok 3 - i3 raised the width to 75
+ok 4 - i3 raised the height to 50
+ok 5 - i3 did not map it to (0x0)
+ok 6 - An object of class 'X11::XCB::Window' isa 'X11::XCB::Window'
+ok 7 - i3 let the width at 80
+ok 8 - i3 let the height at 90
+ok 9 - i3 mapped it to x=20
+ok 10 - i3 mapped it to y=20
+ok 11 - An object of class 'X11::XCB::Window' isa 'X11::XCB::Window'
+ok 12 - i3 let the width at 80
+ok 13 - i3 let the height at 90
+1..13
+
+$ less latest/i3-log-for-005-floating.t
+
+

If your attempt to run the tests with a bare call to ./complete-run.pl fails, try this:

+
+
+
$ ./complete-run.pl --parallel=1 --keep-xserver-output
+
+

This will show the output of Xephyr, which is the X server implementation we +use for testing.

+
+
ninja command: ninja test
+

ninja test runs the i3 testsuite. +You can still use ./complete-run.pl to get the interactive progress output.

+
+
Example invocation of ninja test
+
+
$ cd ~/i3
+
+$ mkdir -p build
+
+$ meson setup build
+$ cd build
+
+$ ninja test
+[1/102] Generating config.h with a custom command
+[1/2] Running all tests.
+1/1 complete-run OK              34.39s
+
+Ok:                 1
+Expected Fail:      0
+Fail:               0
+Unexpected Pass:    0
+Skipped:            0
+Timeout:            0
+
+Full log written to i3/build/meson-logs/testlog.txt
+
+$ less latest/complete-run.log
+
+
+
+
+

Coverage testing

+

Coverage testing is possible with lcov, the front-end for GCC’s coverage +testing tool gcov. The testcases can generate a nice html report that tells +you which functions and lines were covered during a run of the tests. You can +use this tool to judge how effective your tests are.

+

To use test coverage tools, first compile with coverage enabled.

+
+
+
COVERAGE=1 make
+
+

Then run the tests with the --coverage-testing flag.

+
+
+
./complete-run.pl --coverage-testing
+
+

Then open latest/i3-coverage/index.html in your web browser.

+
+
+

IPC interface

+

The testsuite makes extensive use of the IPC (Inter-Process Communication) +interface which i3 provides. It is used for the startup process of i3, for +terminating it cleanly and (most importantly) for modifying and getting the +current state (layout tree).

+

See [https://i3wm.org/docs/ipc.html] for documentation on the IPC interface.

+
+
+

X11::XCB

+

In order to open new windows, change attributes, get events, etc., the +testsuite uses X11::XCB, a new (and quite specific to i3 at the moment) Perl +module which uses the XCB protocol description to generate Perl bindings to +X11. They work in a very similar way to libxcb (which i3 uses) and provide +relatively high-level interfaces (objects such as X11::XCB::Window) as well as +access to the low-level interface, which is very useful when testing a window +manager.

+
+
+
+

Filesystem structure

+

In the git root of i3, the testcases live in the folder testcases. This +folder contains the complete-run.pl and a base configuration file which will +be used for the tests. The different testcases (their file extension is .t, not +.pl) themselves can be found in the conventionally named subfolder t:

+
+
Filesystem structure
+
+
├── testcases
+│   ├── complete-run.pl
+│   ├── i3-test.config
+│   ├── lib
+│   │   ├── i3test.pm
+│   │   ├── SocketActivation.pm
+│   │   └── StartXDummy.pm
+│   ├── t
+│   │   ├── 00-load.t
+│   │   ├── 01-tile.t
+│   │   ├── 02-fullscreen.t
+│   │   ├── ...
+│   │   ├── omitted for brevity
+│   │   ├── ...
+│   │   └── 74-regress-focus-toggle.t
+
+
+
+
+
+

Anatomy of a testcase

+
+

Learning by example is definitely a good strategy when you are wondering how to +write a testcase. Let’s take t/11-goto.t as an easy example and go through it +step by step:

+
+
t/11-goto.t: Boilerplate
+
+
#!perl
+# vim:ts=4:sw=4:expandtab
+
+use i3test;
+use File::Temp;
+
+my $x = X11::XCB::Connection->new;
+
+

This is what we call boilerplate. It exists at the top of every test file (to +some extent). The first line is the shebang, which specifies that this file is +a Perl script. The second line contains VIM specific settings on how to +edit/format this file (use spaces instead of tabs, indent using 4 spaces). +Afterwards, the i3test module is used. This module contains i3 testsuite +specific functions which you are strongly encouraged to use. They make writing +testcases a lot easier and will make it easier for other people to read your +tests.

+

The next line uses the File::Temp module. This is specific to this testcase, +because it needs to generate a temporary name during the test. Many testcases +use only the i3test module.

+

The last line opens a connection to X11. You might or might not need this in +your testcase, depending on whether you are going to open windows (etc.) or +only use i3 commands.

+
+
t/11-goto.t: Setup
+
+
my $tmp = fresh_workspace;
+
+cmd 'split h';
+
+

The first line calls i3test’s fresh_workspace function which looks for a +currently unused workspace, switches to it, and returns its name. The variable +$tmp will end up having a value such as "/tmp/87kBVcHbA9". Note that this +is not (necessarily) a valid path, it’s just a random workspace name.

+

So, now that we are on a new workspace, we ensure that the workspace uses +horizontal orientation by issuing the split h command (see the i3 User’s +Guide for a list of commands). This is not strictly necessary, but good style. +In general, the cmd function executes the specified i3 command by using the +IPC interface and returns once i3 acknowledged the command.

+
+
t/11-goto.t: Setup
+
+
#####################################################################
+# Create two windows and make sure focus switching works
+#####################################################################
+
+my $top = open_window($x);
+my $mid = open_window($x);
+my $bottom = open_window($x);
+
+

In every major section of a testcase, you should put a comment like the one +above. This makes it immediately clear how the file is structured.

+

The open_window function opens a standard window, which will then be put into +tiling mode by i3. If you want a floating window, use the +open_floating_window function. These functions accept the same parameters as +X11::XCB::Window→new, see the i3test documentation at TODO.

+
+
t/11-goto.t: Helper function
+
+
#
+# Returns the input focus after sending the given command to i3 via IPC
+# and syncing with i3
+#
+sub focus_after {
+    my $msg = shift;
+
+    cmd $msg;
+    sync_with_i3 $x;
+    return $x->input_focus;
+}
+
+

This section defines a helper function which will be used over and over in this +testcase. If you have code which gets executed more than once or twice +(depending on the length of your test, use your best judgement), please put it +in a function. Tests should be short, concise and clear.

+

The focus_after function executes a command and returns the X11 focus after +the command was executed. The sync_with_i3 command makes sure that i3 could +push its state to X11. See [i3_sync] to learn how this works exactly.

+
+
t/11-goto.t: Test assumptions
+
+
$focus = $x->input_focus;
+is($focus, $bottom->id, "Latest window focused");
+
+$focus = focus_after('focus left');
+is($focus, $mid->id, "Middle window focused");
+
+

Now, we run the first two real tests. They use Test::More's is function, +which compares two values and prints the differences if they are not the same. +After the arguments, we supply a short comment to indicate what we are testing +here. This makes it vastly more easy for the developer to spot which testcase +is the problem in case one fails.

+

The first test checks that the most recently opened window is focused. +Afterwards, the command focus left is issued and it is verified that the +middle window now has focus.

+

Note that this is not a comprehensive test of the focus command — we would +have to test wrapping, focus when using a more complex layout, focusing the +parent/child containers, etc. But that is not the point of this testcase. +Instead, we just want to know if $x→input_focus corresponds with what we are +expecting. If not, something is completely wrong with the test environment and +this trivial test will fail.

+
+
t/11-goto.t: Test that the feature does not work (yet)
+
+
#####################################################################
+# Now goto a mark which does not exist
+#####################################################################
+
+my $random_mark = mktemp('mark.XXXXXX');
+
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);
+is($focus, $mid->id, "focus unchanged");
+
+

Syntax hint: The qq keyword is the interpolating quote operator. It lets you +chose a quote character (in this case the | character, a pipe). This makes +having double quotes in our string easy.

+

In this new major section, a random mark (mark is an identifier for a window, +see "VIM-like marks" in the i3 User’s Guide) will be generated. Afterwards, we +test that trying to focus that mark will not do anything. This is important: Do +not only test that using a feature has the expected outcome, but also test that +using it without properly initializing it does no harm. This command could for +example have changed focus anyways (a bug) or crash i3 (obviously a bug).

+
+
t/11-goto.t: Test that the feature does work
+
+
cmd "mark $random_mark";
+
+$focus = focus_after('focus left');
+is($focus, $top->id, "Top window focused");
+
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);
+is($focus, $mid->id, "goto worked");
+
+

Remember: Focus was on the middle window (we verified that earlier in "Test +assumptions"). We now mark the middle window with our randomly generated mark. +Afterwards, we switch focus away from the middle window to be able to tell if +focusing it via its mark will work. If the test works, the goto command seems +to be working.

+
+
t/11-goto.t: Test corner case
+
+
# check that we can specify multiple criteria
+
+$focus = focus_after('focus left');
+is($focus, $top->id, "Top window focused");
+
+$focus = focus_after(qq|[con_mark="$random_mark" con_mark="$random_mark"] focus|);
+is($focus, $mid->id, "goto worked");
+
+

Now we test the same feature, but specifying the mark twice in the command. +This should have no effect, but let’s be sure: test it and see if things go +wrong.

+
+
t/11-goto.t: Test second code path
+
+
#####################################################################
+# Check whether the focus command will switch to a different
+# workspace if necessary
+#####################################################################
+
+my $tmp2 = fresh_workspace;
+
+is(focused_ws(), $tmp2, 'tmp2 now focused');
+
+cmd qq|[con_mark="$random_mark"] focus|;
+
+is(focused_ws(), $tmp, 'tmp now focused');
+
+

This part of the test checks that focusing windows by mark works across +workspaces. It uses i3test’s focused_ws function to get the current +workspace.

+
+
t/11-goto.t: Test second code path
+
+
done_testing;
+
+

The end of every testcase has to contain the done_testing line. This tells +complete-run.pl that the test was finished successfully. If it does not +occur, the test might have crashed during execution — some of the reasons why +that could happen are bugs in the used modules, bugs in the testcase itself or +an i3 crash resulting in the testcase being unable to communicate with i3 via +IPC anymore.

+
+
+
+

Appendix A: The I3_SYNC protocol

+
+

Consider the following situation: You open two windows in your testcase, then +you use focus left and want to verify that the X11 focus has been updated +properly. Sounds simple, right? Let’s assume you use this straight-forward +implementation:

+
+
Racey focus testcase
+
+
my $left = open_window($x);
+my $right = open_window($x);
+cmd 'focus left';
+is($x->input_focus, $left->id, 'left window focused');
+
+

However, the test fails. Sometimes. Apparently, there is a race condition in +your test. If you think about it, this is because you are using two different +pieces of software: You tell i3 to update focus, i3 confirms that, and then you +ask X11 to give you the current focus. There is a certain time that the X11 +server needs to process the requests from i3. If the testcase’s request for the +input focus is processed before i3’s requests, the test will fail.

+
+
+Diagram of the race condition +
+
Figure 1. Diagram of the race condition
+
+

One way to "solve" this would be to add sleep 0.5; after the cmd call. +After 0.5 seconds it should be safe to assume that focus has been updated, +right?

+

In practice, this usually works. However, it has several problems:

+
    +
  1. +

    +This is obviously not a clean solution, but a workaround. Ugly. +

    +
  2. +
  3. +

    +On very slow machines, this might not work. Unlikely, but in different + situations (a delay to wait for i3 to startup) the necessary time is much + harder to guess, even for fast machines. +

    +
  4. +
  5. +

    +This wastes a lot of time. Usually, your computer is much faster than 0.5s + to update the status. However, sometimes, it might take 0.4s, so we can’t + make it sleep 0.1. +

    +
  6. +
+

To illustrate how grave the problem with wasting time actually is: Before +removing all sleeps from the testsuite, a typical run using 4 separate X +servers took around 50 seconds on my machine. After removing all the sleeps, +we achieved times of about 25 seconds. This is very significant and influences +the way you think about tests — the faster they are, the more likely you are +to check whether everything still works quite often (which you should).

+

What I am trying to say is: Delays adds up quickly and make the test suite +less robust.

+

The real solution for this problem is a mechanism which I call "the i3 sync +protocol". The idea is to send a request (which does not modify state) via X11 +to i3 which will then be answered, again via X11. Because this answer is +generated via an X11 request, it will be sent to the X11 server after all +previous requests. Thus, you can be sure that by the time you receive the reply, +all other events have been dealt with by i3 (and, more importantly, X11).

+
+
+Diagram of the i3 sync solution +
+
Figure 2. Diagram of the i3 sync solution
+
+
+

Implementation details

+

The client which wants to sync with i3 initiates the protocol by sending a +ClientMessage to the X11 root window:

+
+
Send ClientMessage
+
+
# Generate a ClientMessage, see xcb_client_message_t
+my $msg = pack "CCSLLLLLLL",
+    CLIENT_MESSAGE, # response_type
+    32,     # format
+    0,      # sequence
+    $root,  # destination window
+    $x->atom(name => 'I3_SYNC')->id,
+
+    $_sync_window->id,    # data[0]: our own window id
+    $myrnd, # data[1]: a random value to identify the request
+    0,
+    0,
+    0;
+
+# Send it to the root window -- since i3 uses the SubstructureRedirect
+# event mask, it will get the ClientMessage.
+$x->send_event(0, $root, EVENT_MASK_SUBSTRUCTURE_REDIRECT, $msg);
+
+

i3 will then reply with the same ClientMessage, sent to the window specified in +data[0]. In the reply, data[0] and data[1] are exactly the same as in the +request. You should use a random value in data[1] and check that you received +the same one when getting the reply.

+
+
+
+
+

Appendix B: The sync IPC command

+
+

The above I3_SYNC protocol allows to synchronise with i3. However, it is not +enough for tests that also involve i3bar: There might still be messages from +i3bar in-flight even after synchronising with i3. Thus, there also exists a sync +IPC command, that is however not meant to be used directly. Instead, i3bar uses +it for implementing the I3_SYNC protocol.

+

The intended usage works like this:

+
    +
  1. +

    +You send an I3_SYNC message to i3bar’s window. See [i3_sync]. +

    +
  2. +
  3. +

    +i3bar sends a SYNC IPC command to i3 with payload + {"window":your-window-here,"rnd":your-random-value}. +

    +
  4. +
  5. +

    +i3 reacts to this IPC command as if it received an I3_SYNC request via X11. +

    +
  6. +
+

This protocol is used, for example, in t/525-i3bar-mouse-bindings.t: A mouse +button press on i3bar is triggered. i3bar reacts to this by sending IPC commands +to i3.

+

The necessary synchronisation is achieved by sending an I3_SYNC event to i3bar: +Because i3bar reacts with a sync IPC command to i3, all previous IPC commands from +i3bar will be handled first. Because i3 reacts via X11, all previous X11 +requests from i3 will be handled by the X11 server first.

+

The actual test also has to sync with i3 first due to how X11 handling works. +For more details, refer to the documentation for XAllowEvents with mode +ReplayPointer.

+
+
+
+

Appendix C: Socket activation

+
+

Socket activation is a mechanism which was made popular by systemd, an init +replacement. It basically describes creating a listening socket before starting +a program. systemd will invoke the program only when an actual connection to +the socket is made, hence the term socket activation.

+

The interesting part of this (in the i3 context) is that you can very precisely +detect when the program is ready (finished its initialization).

+
+

Preparing the listening socket

+

complete-run.pl will create a listening UNIX socket which it will then pass +to i3. This socket will be used by i3 as an additional IPC socket, just like +the one it will create on its own. Passing the socket happens implicitly +because children will inherit the parent’s sockets when fork()ing and sockets +will continue to exist after an exec() call (unless CLOEXEC is set of course).

+

The only explicit things complete-run.pl has to do is setting the LISTEN_FDS +environment variable to the number of sockets which exist (1 in our case) and +setting the LISTEN_PID environment variable to the current process ID. Both +variables are necessary so that the program (i3) knows how many sockets it +should use and if the environment variable is actually intended for it. i3 will +then start looking for sockets at file descriptor 3 (since 0, 1 and 2 are used +for stdin, stdout and stderr, respectively).

+

The actual Perl code which sets up the socket, fork()s, makes sure the socket +has file descriptor 3 and sets up the environment variables follows (shortened +a bit):

+
+
Setup socket and environment
+
+
my $socket = IO::Socket::UNIX->new(
+    Listen => 1,
+    Local => $args{unix_socket_path},
+);
+
+my $pid = fork;
+if ($pid == 0) {
+    $ENV{LISTEN_PID} = $$;
+    $ENV{LISTEN_FDS} = 1;
+
+    # Only pass file descriptors 0 (stdin), 1 (stdout),
+    # 2 (stderr) and 3 (socket) to the child.
+    $^F = 3;
+
+    # If the socket does not use file descriptor 3 by chance
+    # already, we close fd 3 and dup2() the socket to 3.
+    if (fileno($socket) != 3) {
+        POSIX::close(3);
+        POSIX::dup2(fileno($socket), 3);
+    }
+
+    exec "/usr/bin/i3";
+}
+
+
+
+

Waiting for a reply

+

In the parent process, we want to know when i3 is ready to answer our IPC +requests and handle our windows. Therefore, after forking, we immediately close +the listening socket (i3 will handle this side of the socket) and connect to it +(remember, we are talking about a named UNIX socket) as a client. This connect +call will immediately succeed because the kernel buffers it. Then, we send a +request (of type GET_TREE, but that is not really relevant). Writing data to +the socket will also succeed immediately because, again, the kernel buffers it +(only up to a certain amount of data of course).

+

Afterwards, we just blockingly wait until we get an answer. In the child +process, i3 will setup the listening socket in its event loop. Immediately +after actually starting the event loop, it will notice a new client connecting +(the parent process) and handle its request. Since all initialization has been +completed successfully by the time the event loop is entered, we can now assume +that i3 is ready.

+
+
+

Timing and conclusion

+

A beautiful feature of this mechanism is that it does not depend on timing. It +does not matter when the child process gets CPU time or when the parent process +gets CPU time. On heavily loaded machines (or machines with multiple CPUs, +cores or unreliable schedulers), this makes waiting for i3 much more robust.

+

Before using socket activation, we typically used a sleep(1) and hoped that +i3 was initialized by that time. Of course, this breaks on some (slow) +computers and wastes a lot of time on faster computers. By using socket +activation, we decreased the total amount of time necessary to run all tests +(72 files at the time of writing) from > 100 seconds to 16 seconds. This makes +it significantly more attractive to run the test suite more often (or at all) +during development.

+

An alternative approach to using socket activation is polling for the existence +of the IPC socket and connecting to it. While this might be slightly easier to +implement, it wastes CPU time and is considerably uglier than this solution +:). After all, lib/SocketActivation.pm contains only 54 SLOC.

+
+
+
+
+

+ + + diff --git a/docs/tree-layout1.png b/docs/tree-layout1.png new file mode 100644 index 0000000000000000000000000000000000000000..ee69f1ab33f84ba594df749e45fabcaa97a4ce77 GIT binary patch literal 27856 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%0AAS)VcSGd^QdijL;;37`s8;(R8Kj}b^ko`vA$ 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 literal 0 HcmV?d00001 diff --git a/docs/tree-shot1.png b/docs/tree-shot1.png new file mode 100644 index 0000000000000000000000000000000000000000..3bbeae1c583cbbf411c5c2fb0ef823db9c63fff7 GIT binary patch literal 3665 zcmeHKX*e6$8jehQC8(v8nOeuzTHD&HNQ>H4DUG$Gv{OqAT5CxVnIY5=ZBZ3k%UFX% z5w(l-Dp6ZBF-n70#9C|Y;->dL_y7HIfA-Hg=lRZezUMse_nz-PU#im$>yrX!1ONcQ zNn0BWX8?dNleg{#19_uuv_d0q`XSuh_7)fno|ti*1^|R1wiaf$9(k`!jyzOu66<+5 z5?LBuYI;D9qC9Ngs{7}p4$?tUwLy;y)IU;-yOIQ*F2tp z#@Q2HyKf3oX+_>pK|3ZhtI99G)ZgV2uJuQMg+hW~MR)q#gKd9zjZ&M?(E(hKx$=Pp zKxH8i?i##2;MC|pd;1CnqUTi+_`!{mrhg$(itHI^7e67MR8Jcya$R2nv#NWG)I4>4 zbgW2Y<@If1iLe(N6ZjA3FmMuiLwkQQUENrHIn9SPqI!1ZurBnBk}W%9e6)l!G7vx( z&X|4A_5^Lw8*LsxgS5pb!(xL}_zw~^3^*$8D9@T$>3+3!t#+qnH|0V?E!d@^M&y&Y z?A1fhSuOB9zNs+wk6eO$3tP_UGUbwNUJv^GP=M615Q+28_477;IpL6be0b{ml)~ED z?rv_58!dB+VNOIY+qEi+U{!igh$K6ZJ@02zw9}KRgHP{=AAO`VCWR?>IvhVS_B4WrUP@2w zOwI;|LiO}5R}L}MQj^kTFRtn&Zu8>y65g+X0~7C0eyHUxT{}>!Xf;6p^?E^Gr>n5T zz4JD`-gsE3mvi0WluJCcTnYiNjLoHXDyM}NfPMFn!2Ly}ALj2mt`J@>Z`V9{$Xmi9s?rH@y2h2T*is{@A9c>TbYwkq_Xjn6IsSf~arQg@{(4 zQ;P>HT*wEI&v*kN3MkVo0QvFL&lmuZ!rPot$^7p29gzPYLy##(8`q|hKr9x^4t@PY zqBftnt5o_4kZ5i?3KB$mJZXC+;ba^`GMekGKzd;$sey)oY5iptzP8#zH>f zMwikI{fWRMNMg40Urm-FVQ-Y>$K8tw%#i%N9meKOtzR1*g}o3VGX4uIym(FbG&cH2 zC++UW7C(?A6bDSSQazqrb9r9|cE$(yt~T2dna{Ro20b$@2jmaRE~3>0oh*`LM;1$P zBWUX1#z{vlAY^jnFE5L0AQA(feP)vAGOOxq5zN(bFFcH$xk~+y9v<)zI1;in#G&N5 z^-spvu6HRFSv~Rsdf=$}*}_3pu+gGG&4sz2R?y2h$cKm88Fw&unZ1V?AZRtLr!Z@=TU1adCOZV@m58G=G%CBDO z7`r)mS(FbQS$MaT4cojry)%_?ya^SFWXOu|ZekseleNe#Urx1tls&b(!LpCTW96?h zdRiNHg_gAY7oEYAXZge#aSV=X2xn!YDT_^^P^?H|uhLfn)vOI;hFvntBb?2Lrbd@w z-u?9K@R)-(4hx@9!^(=tp9$!j`#c6(x*K7@{70g4ie)`XXD~L)gqo(c3J+Fu#ECui z)Ut#h1V_FfISE>tm%XsY+P%L>GD$gMuEv+3xSn~3$L1V)miM*npBDeBg}vL!I*0YdC*nWGMf@)E3CrYL z4L?>?Y23;JJubdq=~+2M&1KFJ8lZ@f-=+}nVgulhKkkWS+sD|Mlk$n%bI9@o2%|u9 zyN3XKTM>;_cH9eM4eM>A|5$GHyB zW3g_1n;&jvQw-?pS}IS}#TjOJxi=(;1|YS+5u*97SVy~bCO}P3x}HYW^&gvLngpx{ z=XBqa(1HqS>*M!+9t-7v?yD}HvzavxZ#4o1;jr{}P)>`B_s-i2(xs;IeE3jV-9l7P zc3#V<-W6GSf$LArbB%7uL5zKJ#Y}y!09C8^;EGD1eUR{#!WYE-8s8IqAXOz(qN+wp zgs5quBg%&}?rsK1?BhMMJ^@8pkm$U)f_t2StEj1u4iFUd8g0YR$2$&oeU*NiS5f}t z)sJcg8t=pvJ~Z9`-uH0dvHRbN@~vYq^su8f^8=?6_SfZVXM~@LUGQ~q6$rKop*CPUKEpJ%Vn){&t1^&!pfdBvi literal 0 HcmV?d00001 diff --git a/docs/tree-shot2.png b/docs/tree-shot2.png new file mode 100644 index 0000000000000000000000000000000000000000..f00326487a6eaa249d50d2f3438e601585f21c8f GIT binary patch literal 3383 zcmeH~`#03<9>>ksU|d2&$R?6YLyWV#xSMa22#pb$T*BBTA)*jUOv18+3L|$lnD&gz zxD%Sei5Mkm*e+!p%@%{g9)}EbzWobl?eoJ~t6!eySv$f4Kupczxng2+UmfjEo{#lgp6-s+ zZQUnH9C-ylAu%a6;b9$i#0^n&Pvc%mPbx93H#vb}ma>NgNXsmRbgp!lqvY(@>(Bcf zRkODKYkZRVuF>dY!me;j3Ij(dwn>tbACA=Y1vtGkwIO1Y6Yhos#=CMu}Zd^-VCEuEwf;x?V z;w9jY?WdJaydT$qTwuAz3_`)Q>N6`Es(_flQ4g+q=EF~mvp%of)dFnzw1W|J z07nuCg~fMPR#swiz5iUwrDm_m82r+8WUZm3>FK!tD4+9^Tvn@}-&$9B9W#~R{6H;@ zQduw#H_>^g?0G4M4Afs9^Xo5m2)2)_H|zL*Z9l%lsG`X`^~3HIEfZ=CTfcG?V`G@0 z#r!?Th}`H=*q+!)Gst~)L8?9nr>e9zU?f`n9Gz9%4wskilp@4c`PfXS;6vDycfY<} z9GD%7U?{_5gr^#gyLo_N#L(xe9p}QAMA%TcHkH$ z5Rw>!3N zJ4$2sWyIK(r`sOWT(}_bjvn~- z-64}_U}o8{nKWrha~r+WIf!mK@Qc(EP8Kjb9P!uv=x^mw4B<{{vsT^vA$KaR^V$=_ z0!7)4cRxB=)YoIxL;_UU@M$SkFrIfV=d?hsxm8``ZJy=|2ST9pc_sge_zHKWuz17p5zk!p@ zsLGfvrib#VYqRNvx|d z(sA#L7y$l40!}b1!2)o5Sw!{7zrOF)eg|2^WLVmwm& zon8dfUr?5~Lpi(2A5KKqt#97YO;DC!sbdO{<;_d5Gro<+ck}eusq{>ao;{?y_M|SB zw}gY{VYak@8Wj0?&6L&?O+MN?Ek~C_YDaK@APlnhzoLoUDOd01L)*EmX4y^&g6-tz z4C%zFv}9w|GV$knsVxNh|C%S+m@Z-eF#YQ5>-@hHDd@zz=B<5qew4zFyPU}V_e`Q_ zU1#~Y9+(7XfV*?uN{I^ez=JojBr25}FI-)%KX4421X7Z|GSr`*Jp^*s0GvVf{QP{= zXh%m!$xh4A1PZUk+vjp3-s^LqRq&}gX4N=7!5HI^{5K7Vc%5wBjT<(=z)!U8qVe)EI2iA!mcxIVdGpVKxa_1xpfl$#k!D^9Z`)?LL zl?B`V^mwe-ooGd?iKu@ZEbCmWbMc#hUEs`p$hu9;3wpun_1&y!v6eBOt1i`eD<|bs zN74PTL7Comy3ri)+j2!mjnt?HS$;PDX!X8&E(bF6I@u=5igKElc0zL_BWLYu_WoPusrjv$eS922yN^GIVGIg_JC!pHp9KAvfw z6nP#MM5o+xupzBWd=d{Wu;K{_YMi-%xJkUtQ4Kk2Nu))<%Kc>Ya*>LPBkrvJUNwkn zk0Q8)X6R~;Nw`=eKUofw__si-Bx){rgnNHqhngNp#6mon#ntNp@ZVshpIbjO@ptzG xsY5IAdtgu41QL2*hQJJ}C;y3n0XZ^4nI4R-I#1$@2lNvXb3E;0SBoXy`wy4GwW0t3 literal 0 HcmV?d00001 diff --git a/docs/tree-shot3.png b/docs/tree-shot3.png new file mode 100644 index 0000000000000000000000000000000000000000..fe4c11e156584f48ce8c74a11d7a3d41c6249594 GIT binary patch literal 4001 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 literal 0 HcmV?d00001 diff --git a/docs/two_columns.png b/docs/two_columns.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc8c40c9021a3cdf6a3728d8c48afe29db4f277 GIT binary patch literal 4624 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 xz{KSTCJj3}& literal 0 HcmV?d00001 diff --git a/docs/two_terminals.png b/docs/two_terminals.png new file mode 100644 index 0000000000000000000000000000000000000000..20b45acfa66534e8803b4cf454ba44b6d7aba9f0 GIT binary patch literal 4901 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 literal 0 HcmV?d00001 diff --git a/docs/userguide.html b/docs/userguide.html new file mode 100644 index 0000000..94e07ae --- /dev/null +++ b/docs/userguide.html @@ -0,0 +1,3800 @@ + + + + + + +i3: i3 User’s Guide + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

This document contains all the information you need to configure and use the i3 +window manager. If it does not you can contact us on +GitHub Discussions, IRC, or the mailing +list.

+
+
+
+

Default keybindings

+
+

For the "too long; didn’t read" people, here is an overview of the default +keybindings (click to see the full-size image):

+

Keys to use with $mod (Alt):

+

+ +Keys to use with $mod (Alt) + +

+

Keys to use with Shift+$mod:

+

+ +Keys to use with Shift+$mod + +

+

The red keys are the modifiers you need to press (by default), the blue keys +are your homerow.

+

Note that when starting i3 without a config file, i3-config-wizard will offer +you to create a config file in which the key positions (!) match what you see +in the image above, regardless of the keyboard layout you are using. If you +prefer to use a config file where the key letters match what you are seeing +above, just decline i3-config-wizard’s offer and base your config on +/etc/i3/config.

+
+
+
+

Using i3

+
+

Throughout this guide, the keyword $mod will be used to refer to the +configured modifier. This is the Alt key (Mod1) by default, with the Windows +key (Mod4) being a popular alternative that largely prevents conflicts with +application-defined shortcuts.

+
+

Opening terminals and moving around

+

One very basic operation is opening a new terminal. By default, the keybinding +for this is $mod+Enter, that is Alt+Enter (Mod1+Enter) in the default +configuration. By pressing $mod+Enter, a new terminal will be opened. It +will fill the whole space available on your screen.

+

+Single terminal +

+

If you now open another terminal, i3 will place it next to the current one, +splitting the screen size in half. Depending on your monitor, i3 will put the +created window beside the existing window (on wide displays) or below the +existing window (rotated displays).

+

+Two terminals +

+

To move the focus between the two terminals, you can use the arrow keys. For +convenience, the arrows are also available directly on the +keyboard’s home row underneath your +right hand:

+
+ +++ + + + + + + + + + + + + + + + + + +

$mod+j

left

$mod+k

down

$mod+l

up

$mod+;

right

+
+

Note that this differs by one key from the popular text editor vi, which was +developed on an +ADM-3A terminal and therefore uses hjkl instead of jkl; — i3’s default is +meant to require minimal finger movement, but some vi users change their i3 +config for consistency.

+

At the moment, your workspace is split (it contains two terminals) in a +specific direction (horizontal by default). Every window can be split +horizontally or vertically again, just like the workspace. The terminology is +"window" for a container that actually contains an X11 window (like a terminal +or browser) and "split container" for containers that consist of one or more +windows.

+

To split a window vertically, press $mod+v before you create the new window. +To split it horizontally, press $mod+h.

+
+
+

Changing the container layout

+

A split container can have one of the following layouts:

+
+
+splith/splitv +
+
+

+Windows are sized so that every window gets an equal amount of space in the +container. splith distributes the windows horizontally (windows are right next +to each other), splitv distributes them vertically (windows are on top of each +other). +

+
+
+stacking +
+
+

+Only the focused window in the container is displayed. You get a list of +windows at the top of the container. +

+
+
+tabbed +
+
+

+The same principle as stacking, but the list of windows at the top is only +a single line which is vertically split. +

+
+
+

To switch modes, press $mod+e for splith/splitv (it toggles), $mod+s for +stacking and $mod+w for tabbed.

+

+Container modes +

+
+
+

Toggling fullscreen mode for a window

+

To display a window in fullscreen mode or to go out of fullscreen mode again, +press $mod+f.

+

There is also a global fullscreen mode in i3 in which the client will span all +available outputs (the command is fullscreen toggle global).

+
+
+

Opening other applications

+

Aside from opening applications from a terminal, you can also use the handy +dmenu which is opened by pressing $mod+d by default. Just type the name +(or a part of it) of the application which you want to open. The corresponding +application has to be in your $PATH for this to work.

+

Additionally, if you have applications you open very frequently, you can +create a keybinding for starting the application directly. See the section +[configuring] for details.

+
+
+

Closing windows

+

If an application does not provide a mechanism for closing (most applications +provide a menu, the escape key or a shortcut like Control+w to close), you +can press $mod+Shift+q to kill a window. For applications which support +the WM_DELETE protocol, this will correctly close the application (saving +any modifications or doing other cleanup). If the application doesn’t support +the WM_DELETE protocol your X server will kill the window and the behaviour +depends on the application.

+
+
+

Using workspaces

+

Workspaces are an easy way to group a set of windows. By default, you are on +the first workspace, as the bar on the bottom left indicates. To switch to +another workspace, press $mod+num where num is the number of the workspace +you want to use. If the workspace does not exist yet, it will be created.

+

A common paradigm is to put the web browser on one workspace, communication +applications (mutt, irssi, …) on another one, and the ones with which you +work, on the third one. Of course, there is no need to follow this approach.

+

If you have multiple screens, a workspace will be created on each screen at +startup. If you open a new workspace, it will be bound to the screen you +created it on. When you switch to a workspace on another screen, i3 will set +focus to that screen.

+
+
+

Moving windows to workspaces

+

To move a window to another workspace, simply press $mod+Shift+num where +num is (like when switching workspaces) the number of the target workspace. +Similarly to switching workspaces, the target workspace will be created if +it does not yet exist.

+
+
+

Resizing

+

The easiest way to resize a container is by using the mouse: Grab the border +and move it to the wanted size.

+

You can also use [binding_modes] to define a mode for resizing via the +keyboard. To see an example for this, look at the +default config provided +by i3.

+
+
+

Restarting i3 inplace

+

To restart i3 in place (and thus get into a clean state if there is a bug, or +to upgrade to a newer version of i3) you can use $mod+Shift+r.

+
+
+

Exiting i3

+

To cleanly exit i3 without killing your X server, you can use $mod+Shift+e. +By default, a dialog will ask you to confirm if you really want to quit.

+
+
+

Floating

+

Floating mode is the opposite of tiling mode. The position and size of +a window are not managed automatically by i3, but manually by +you. Using this mode violates the tiling paradigm but can be useful +for some corner cases like "Save as" dialog windows, or toolbar +windows (GIMP or similar). Those windows usually set the appropriate +hint and are opened in floating mode by default.

+

You can toggle floating mode for a window by pressing $mod+Shift+Space. By +dragging the window’s titlebar with your mouse you can move the window +around. By grabbing the borders and moving them you can resize the window. You +can also do that by using the [floating_modifier]. Another way to resize +floating windows using the mouse is to right-click on the titlebar and drag.

+

For resizing floating windows with your keyboard, see the resizing binding mode +provided by the i3 default config.

+

Floating windows are always on top of tiling windows.

+
+
+

Moving tiling containers with the mouse

+

Since i3 4.21, it’s possible to drag tiling containers using the mouse. The +drag can be initiated either by dragging the window’s titlebar or by pressing +the [floating_modifier] and dragging the container while holding the +left-click button. See the [config_tiling_drag] option for configuring which +action triggers the tiling drag.

+

Once the drag is initiated and the cursor has left the original container, drop +indicators are created according to the position of the cursor relatively to +the target container. These indicators help you understand what the resulting +[tree] layout is going to be after you release the mouse button.

+

The possible drop positions are:

+
+
+Drop on container +
+
+

+ This happens when the mouse is relatively near the center of a container. + If the mouse is released, the result is exactly as if you had run the + move container to mark command. See [move_to_mark]. + If the swap modifier is pressed before initiating the drag (tiling_drag + swap_modifier set to Shift by default), the containers are swapped + instead. In that case, the result is exactly as if you had run the swap + container with mark command. See [swapping_containers]. +

+
+
+Drop as sibling +
+
+

+ This happens when the mouse is relatively near the edge of a container. If + the mouse is released, the dragged container will become a sibling of the + target container, placed left/right/up/down according to the position of + the indicator. + This might or might not create a new v-split or h-split according to the + previous layout of the target container. For example, if the target + container is in an h-split and you drop the dragged container below it, the + new layout will have to be a v-split. +

+
+
+Drop to parent +
+
+

+ This happens when the mouse is relatively near the edge of a container (but + even closer to the border in comparison to the sibling case above) and if + that edge is also the parent container’s edge. For example, if three + containers are in a horizontal layout then edges where this can happen is + the left edge of the left container, the right edge of the right container + and all bottom and top edges of all three containers. + If the mouse is released, the container is first dropped as a sibling to + the target container, like in the case above, and then is moved + directionally like with the move left|right|down|up command. See + [move_direction]. +

+
+
+

The color of the indicator matches the client.focused setting. See [client_colors].

+
+
+
+
+

Tree

+
+

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 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.

+
+

The tree consists of Containers

+

The building blocks of our tree are so-called Containers. A Container can +host a window (meaning an X11 window, one that you can actually see and use, +like a browser). Alternatively, it could contain one or more Containers. A +simple example is the workspace: When you start i3 with a single monitor, a +single workspace and you open two terminal windows, you will end up with a tree +like this:

+
+
+layout2 +
+
+
+
+shot4 +
+
Figure 1. Two terminals on standard workspace
+
+
+
+

Orientation and Split Containers

+

It is only natural to use so-called Split Containers in order to build a +layout when using a tree as data structure. In i3, every Container has an +orientation (horizontal, vertical or unspecified) and the orientation depends +on the layout the container is in (vertical for splitv and stacking, horizontal +for splith and tabbed). So, in our example with the workspace, the default +layout of the workspace Container is splith (most monitors are widescreen +nowadays). If you change the layout to splitv ($mod+v in the default config) +and then open two terminals, i3 will configure your windows like this:

+
+
+shot2 +
+
Figure 2. Vertical Workspace Orientation
+
+

An interesting new feature of i3 since version 4 is the ability to split anything: +Let’s assume you have two terminals on a workspace (with splith layout, that is +horizontal orientation), focus is on the right terminal. Now you want to open +another terminal window below the current one. If you would just open a new +terminal window, it would show up to the right due to the splith layout. +Instead, press $mod+v to split the container with the splitv layout (to +open a Horizontal Split Container, use $mod+h). Now you can open a new +terminal and it will open below the current one:

+
+
+Layout +
+
+
+
+shot +
+
Figure 3. Vertical Split Container
+
+
+

You probably guessed it already: There is no limit on how deep your hierarchy +of splits can be.

+
+
+

Focus parent

+

Let’s stay with our example from above. We have a terminal on the left and two +vertically split terminals on the right, focus is on the bottom right one. When +you open a new terminal, it will open below the current one.

+

So, how can you open a new terminal window to the right of the current one? +The solution is to use focus parent, which will focus the Parent Container of +the current Container. In default configuration, use $mod+a to navigate one +Container up the tree (you can repeat this multiple times until you get to the +Workspace Container). In this case, you would focus the Vertical Split Container +which is inside the horizontally oriented workspace. Thus, now new windows will be +opened to the right of the Vertical Split Container:

+
+
+shot3 +
+
Figure 4. Focus parent, then open new terminal
+
+
+
+

Implicit containers

+

In some cases, i3 needs to implicitly create a container to fulfill your +command.

+

One example is the following scenario: You start i3 with a single monitor and a +single workspace on which you open three terminal windows. All these terminal +windows are directly attached to one node inside i3’s layout tree, the +workspace node. By default, the workspace node’s orientation is horizontal.

+

Now you move one of these terminals down ($mod+Shift+k by default). The +workspace node’s orientation will be changed to vertical. The terminal window +you moved down is directly attached to the workspace and appears on the bottom +of the screen. A new (horizontal) container was created to accommodate the +other two terminal windows. You will notice this when switching to tabbed mode +(for example). You would end up having one tab with a representation of the split +container (e.g., "H[urxvt firefox]") and the other one being the terminal window +you moved down.

+
+
+
+
+

Configuring i3

+
+

This is where the real fun begins ;-). Most things are very dependent on your +ideal working environment so we can’t make reasonable defaults for them.

+

While not using a programming language for the configuration, i3 stays +quite flexible in regards to the things you usually want your window manager +to do.

+

For example, you can configure bindings to jump to specific windows, +you can set specific applications to start on specific workspaces, you can +automatically start applications, you can change the colors of i3, and you +can bind your keys to do useful things.

+

To change the configuration of i3, copy /etc/i3/config to ~/.i3/config +(or ~/.config/i3/config if you like the XDG directory scheme) and edit it +with a text editor.

+

On first start (and on all following starts, unless you have a configuration +file), i3 will offer you to create a configuration file. You can tell the +wizard to use either Alt (Mod1) or Windows (Mod4) as modifier in the config +file. Also, the created config file will use the key symbols of your current +keyboard layout. To start the wizard, use the command i3-config-wizard. +Please note that you must not have ~/.i3/config, otherwise the wizard will +exit.

+
+

Include directive

+

Since i3 v4.20, it is possible to include other configuration files from your i3 +configuration.

+

Syntax:

+
+
+
include <pattern>
+
+

i3 expands pattern using shell-like word expansion, specifically using the +wordexp(3) C standard library function.

+

Examples:

+
+
+
# Tilde expands to the user’s home directory:
+include ~/.config/i3/assignments.conf
+
+# Environment variables are expanded:
+include $HOME/.config/i3/assignments.conf
+
+# Wildcards are expanded:
+include ~/.config/i3/config.d/*.conf
+
+# Command substitution:
+include ~/.config/i3/`hostname`.conf
+
+# i3 loads each path only once, so including the i3 config will not result
+# in an endless loop, but in an error:
+include ~/.config/i3/config
+
+# i3 changes the working directory while parsing a config file
+# so that relative paths are interpreted relative to the directory
+# of the config file that contains the path:
+include assignments.conf
+
+

If a specified file cannot be read, for example because of a lack of file +permissions, or because of a dangling symlink, i3 will report an error and +continue processing your remaining configuration.

+

To list all loaded configuration files, run i3 --moreversion:

+
+
+
% i3 --moreversion
+Binary i3 version:  4.19.2-87-gfcae64f7+ © 2009 Michael Stapelberg and contributors
+Running i3 version: 4.19.2-87-gfcae64f7+ (pid 963940)
+Loaded i3 config:
+  /tmp/i3.cfg (main) (last modified: 2021-05-13T16:42:31 CEST, 463 seconds ago)
+  /tmp/included.cfg (included) (last modified: 2021-05-13T16:42:43 CEST, 451 seconds ago)
+  /tmp/another.cfg (included) (last modified: 2021-05-13T16:42:46 CEST, 448 seconds ago)
+
+

Variables are shared between all config files, but beware of the following limitation:

+
    +
  • +

    +You can define a variable and use it within an included file. +

    +
  • +
  • +

    +You cannot use (in the parent file) a variable that was defined within an included file. +

    +
  • +
+

This is a technical limitation: variable expansion happens in a separate stage +before parsing include directives.

+

Conceptually, included files can only add to the configuration, not undo the +effects of already-processed configuration. For example, you can only add new +key bindings, not overwrite or remove existing key bindings. This means:

+
    +
  • +

    +The include directive is suitable for organizing large configurations into + separate files, possibly selecting files based on conditionals. +

    +
  • +
  • +

    +The include directive is not suitable for expressing “use the default + configuration with the following changes”. For that case, we still recommend + copying and modifying the default config. +

    +
  • +
+
+ + + +
+
Note
+
+

Implementation-wise, i3 does not currently construct one big configuration from +all include directives. Instead, i3’s config file parser interprets all +configuration directives in its parse_file() function. When processing an +include configuration directive, the parser recursively calls parse_file().

+

This means the evaluation order of files forms a tree, or one could say i3 uses +depth-first traversal.

+
+
+
+
+

Comments

+

It is possible and recommended to use comments in your configuration file to +properly document your setup for later reference. Comments are started with +a # and can only be used at the beginning of a line:

+

Examples:

+
+
+
# This is a comment
+
+
+
+

Fonts

+

i3 has support for both X core fonts and FreeType fonts (through Pango) to +render window titles.

+

To generate an X core font description, you can use xfontsel(1). To see +special characters (Unicode), you need to use a font which supports the +ISO-10646 encoding.

+

A FreeType font description is composed by a font family, a style, a weight, +a variant, a stretch and a size. +FreeType fonts support right-to-left rendering and contain often more +Unicode glyphs than X core fonts.

+

If i3 cannot open the configured font, it will output an error in the logfile +and fall back to a working font.

+

Syntax:

+
+
+
font <X core font description>
+font pango:<family list> [<style options>] <size>
+
+

Examples:

+
+
+
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+font pango:DejaVu Sans Mono 10
+font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11
+font pango:Terminus 11px
+
+
+
+

Keyboard bindings

+

A keyboard binding makes i3 execute a command (see below) upon pressing a +specific key. i3 allows you to bind either on keycodes or on keysyms (you can +also mix your bindings, though i3 will not protect you from overlapping ones).

+
    +
  • +

    +A keysym (key symbol) is a description for a specific symbol, like "a" + or "b", but also more strange ones like "underscore" instead of "_". These + are the ones you use in Xmodmap to remap your keys. To get the current + mapping of your keys, use xmodmap -pke. To interactively enter a key and + see what keysym it is configured to, use xev. +

    +
  • +
  • +

    +Keycodes do not need to have a symbol assigned (handy for custom vendor + hotkeys on some notebooks) and they will not change their meaning as you + switch to a different keyboard layout (when using xmodmap). +

    +
  • +
+

My recommendation is: If you often switch keyboard layouts but you want to keep +your bindings in the same physical location on the keyboard, use keycodes. +If you don’t switch layouts, and want a clean and simple config file, use +keysyms.

+

Some tools (such as xdotool) might be unable to run upon a +KeyPress event, because the keyboard is still grabbed. For these +situations, the --release flag can be used, which will execute the command +after the keys have been released.

+

Syntax:

+
+
+
bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command
+bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command
+
+

Examples:

+
+
+
# Fullscreen
+bindsym $mod+f fullscreen toggle
+
+# Restart
+bindsym $mod+Shift+r restart
+
+# Notebook-specific hotkeys
+bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh
+
+# Simulate ctrl+v upon pressing $mod+x
+bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v
+
+# Take a screenshot upon pressing $mod+x (select an area)
+bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png
+
+

Available Modifiers:

+
+
+Mod1-Mod5, Shift, Control +
+
+

+Standard modifiers, see xmodmap(1) +

+
+
+Group1, Group2, Group3, Group4 +
+
+

+When using multiple keyboard layouts (e.g. with setxkbmap -layout us,ru), you +can specify in which XKB group (also called “layout”) a keybinding should be +active. By default, keybindings are translated in Group1 and are active in all +groups. If you want to override keybindings in one of your layouts, specify the +corresponding group. For backwards compatibility, the group “Mode_switch” is an +alias for Group2. +

+
+
+
+
+

Mouse bindings

+

A mouse binding makes i3 execute a command upon pressing a specific mouse +button in the scope of the clicked container (see [command_criteria]). You +can configure mouse bindings in a similar way to key bindings.

+

Syntax:

+
+
+
bindsym [--release] [--border] [--whole-window] [--exclude-titlebar] [<Modifiers>+]button<n> command
+
+

By default, the binding will only run when you click on the titlebar of the +window. If the --release flag is given, it will run when the mouse button +is released.

+

If the --whole-window flag is given, the binding will also run when any part +of the window is clicked, with the exception of the border. To have a bind run +when the border is clicked, specify the --border flag.

+

If the --exclude-titlebar flag is given, the titlebar will not be considered +for the keybinding.

+

Examples:

+
+
+
# The middle button over a titlebar kills the window
+bindsym --release button2 kill
+
+# The middle button and a modifier over any part of the window kills the window
+bindsym --whole-window $mod+button2 kill
+
+# The right button toggles floating
+bindsym button3 floating toggle
+bindsym $mod+button3 floating toggle
+
+# The side buttons move the window around
+bindsym button9 move left
+bindsym button8 move right
+
+
+
+

Binding modes

+

You can have multiple sets of bindings by using different binding modes. When +you switch to another binding mode, all bindings from the current mode are +released and only the bindings defined in the new mode are valid for as long as +you stay in that binding mode. The only predefined binding mode is default, +which is the mode i3 starts out with and to which all bindings not defined in a +specific binding mode belong.

+

Working with binding modes consists of two parts: defining a binding mode and +switching to it. For these purposes, there are one config directive and one +command, both of which are called mode. The directive is used to define the +bindings belonging to a certain binding mode, while the command will switch to +the specified mode.

+

It is recommended to use binding modes in combination with [variables] in +order to make maintenance easier. Below is an example of how to use a binding +mode.

+

Note that it is advisable to define bindings for switching back to the default +mode.

+

Note that it is possible to use [pango_markup] for binding modes, but you +need to enable it explicitly by passing the --pango_markup flag to the mode +definition.

+

Syntax:

+
+
+
# config directive
+mode [--pango_markup] <name>
+
+# command
+mode <name>
+
+

Example:

+
+
+
# Press $mod+o followed by either f, t, Escape or Return to launch firefox,
+# thunderbird or return to the default mode, respectively.
+set $mode_launcher Launch: [f]irefox [t]hunderbird
+bindsym $mod+o mode "$mode_launcher"
+
+mode "$mode_launcher" {
+    bindsym f exec firefox
+    bindsym t exec thunderbird
+
+    bindsym Escape mode "default"
+    bindsym Return mode "default"
+}
+
+
+
+

The floating modifier

+

To move floating windows with your mouse, you can either grab their titlebar +or configure the so-called floating modifier which you can then press and +click anywhere in the window itself to move it. The most common setup is to +use the same key you use for managing windows (Mod1 for example). Then +you can press Mod1, click into a window using your left mouse button, and drag +it to the position you want.

+

When holding the floating modifier, you can resize a floating window by +pressing the right mouse button on it and moving around while holding it. If +you hold the shift button as well, the resize will be proportional (the aspect +ratio will be preserved).

+

Syntax:

+
+
+
floating_modifier <Modifier>
+
+

Example:

+
+
+
floating_modifier Mod1
+
+
+
+

Constraining floating window size

+

The maximum and minimum dimensions of floating windows can be specified. If +either dimension of floating_maximum_size is specified as -1, that dimension +will be unconstrained with respect to its maximum value. If either dimension of +floating_maximum_size is undefined, or specified as 0, i3 will use a default +value to constrain the maximum size. floating_minimum_size is treated in a +manner analogous to floating_maximum_size.

+

Syntax:

+
+
+
floating_minimum_size <width> x <height>
+floating_maximum_size <width> x <height>
+
+

Example:

+
+
+
floating_minimum_size 75 x 50
+floating_maximum_size -1 x -1
+
+
+
+

Orientation for new workspaces

+

New workspaces get a reasonable default orientation: Wide-screen monitors +(anything wider than high) get horizontal orientation, rotated monitors +(anything higher than wide) get vertical orientation.

+

With the default_orientation configuration directive, you can override that +behavior.

+

Syntax:

+
+
+
default_orientation horizontal|vertical|auto
+
+

Example:

+
+
+
default_orientation vertical
+
+
+
+

Layout mode for new containers

+

This option determines in which mode new containers on workspace level will +start.

+

Syntax:

+
+
+
workspace_layout default|stacking|tabbed
+
+

Example:

+
+
+
workspace_layout tabbed
+
+
+
+

Window title alignment

+

This option determines the window title’s text alignment. +Default is left

+

Syntax:

+
+
+
title_align left|center|right
+
+
+
+

Default border style for new windows

+

This option determines which border style new windows will have. The default is +normal. Note that default_floating_border applies only to windows which are starting out as +floating windows, e.g., dialog windows, but not windows that are floated later on.

+

Setting border style to pixel eliminates title bars in split layouts. The border style +normal allows you to adjust edge border width while keeping your title bar.

+

The title bar is always visible in stacking and tabbed layouts, and this cannot be changed +through configuration.

+

Syntax:

+
+
+
default_border normal|none|pixel
+default_border normal|pixel <px>
+default_floating_border normal|none|pixel
+default_floating_border normal|pixel <px>
+
+

Please note that new_window and new_float have been deprecated in favor of the above options +and will be removed in a future release. We strongly recommend using the new options instead.

+

Example:

+
+
+
default_border pixel
+
+

The "normal" and "pixel" border styles support an optional border width in +pixels:

+

Example:

+
+
+
# The same as default_border none
+default_border pixel 0
+
+# A 3 px border
+default_border pixel 3
+
+
+
+

Hiding borders adjacent to the screen edges

+

You can hide container borders adjacent to the screen edges using +hide_edge_borders (the default is none). Hiding borders is useful if you are +using scrollbars, or do not want to waste even two pixels in displayspace.

+

The "smart" setting hides borders on workspaces with only one window visible, +but keeps them on workspaces with multiple windows visible.

+

The "smart_no_gaps" setting hides edge-specific borders of a container if the +container is the only container on its workspace and the gaps to the screen edge +are 0.

+

hide_edge_borders has replaced the old smart_borders syntax. Use the former +instead of the latter.

+

Syntax:

+
+
+
hide_edge_borders none|vertical|horizontal|both|smart|smart_no_gaps
+
+

Example:

+
+
+
hide_edge_borders vertical
+
+
+
+

Arbitrary commands for specific windows (for_window)

+

With the for_window directive, you can let i3 execute any command when it +encounters a specific window. This can be used to set windows to floating or to +change their border style, for example.

+

Syntax:

+
+
+
for_window <criteria> <command>
+
+

Examples:

+
+
+
# enable floating mode for all XTerm windows
+for_window [class="XTerm"] floating enable
+
+# Make all urxvts use a 1-pixel border:
+for_window [class="urxvt"] border pixel 1
+
+# A less useful, but rather funny example:
+# makes the window floating as soon as I change
+# directory to ~/work
+for_window [title="x200: ~/work"] floating enable
+
+

The valid criteria are the same as those for commands, see [command_criteria]. Only +commands can be executed at runtime, not config directives, see [list_of_commands].

+
+
+

Don’t focus window upon opening

+

When a new window appears, it will be focused. The no_focus directive allows preventing +this from happening and must be used in combination with [command_criteria].

+

Note that this does not apply to all cases, e.g., when feeding data into a running application +causing it to request being focused. To configure the behavior in such cases, refer to +[focus_on_window_activation].

+

no_focus will also be ignored for the first window on a workspace as there shouldn’t be +a reason to not focus the window in this case. This allows for better usability in +combination with workspace_layout.

+

Syntax:

+
+
+
no_focus <criteria>
+
+

Example:

+
+
+
no_focus [window_role="pop-up"]
+
+
+
+

Variables

+

As you learned in the section about keyboard bindings, you will have +to configure lots of bindings containing modifier keys. If you want to save +yourself some typing and be able to change the modifier you use later, +variables can be handy.

+

Syntax:

+
+
+
set $<name> <value>
+
+

Example:

+
+
+
set $m Mod1
+bindsym $m+Shift+r restart
+
+

Variables are directly replaced in the file when parsing. Variables expansion +is not recursive so it is not possible to define a variable with a value +containing another variable. There is no fancy handling and there are +absolutely no plans to change this. If you need a more dynamic configuration +you should create a little script which generates a configuration file and run +it before starting i3 (for example in your ~/.xsession file).

+

Also see [xresources] to learn how to create variables based on resources +loaded from the X resource database.

+
+
+

X resources

+

[variables] can also be created using a value configured in the X resource +database. This is useful, for example, to avoid configuring color values within +the i3 configuration. Instead, the values can be configured, once, in the X +resource database to achieve an easily maintainable, consistent color theme +across many X applications.

+

Defining a resource will load this resource from the resource database and +assign its value to the specified variable. This is done verbatim and the value +must therefore be in the format that i3 uses. A fallback must be specified in +case the resource cannot be loaded from the database.

+

Syntax:

+
+
+
set_from_resource $<name> <resource_name> <fallback>
+
+

Example:

+
+
+
# The ~/.Xresources should contain a line such as
+#     *color0: #121212
+# and must be loaded properly, e.g., by using
+#     xrdb ~/.Xresources
+# This value is picked up on by other applications (e.g., the URxvt terminal
+# emulator) and can be used in i3 like this:
+set_from_resource $black i3wm.color0 #000000
+
+
+
+

Automatically putting clients on specific workspaces

+

To automatically make a specific window show up on a specific workspace, you +can use an assignment. You can match windows by using any criteria, +see [command_criteria]. The difference between assign and +for_window <criteria> move to workspace is that the former will only be +executed when the application maps the window (mapping means actually displaying +it on the screen) but the latter will be executed whenever a window changes its +properties to something that matches the specified criteria.

+

Thus, it is recommended that you match on window classes (and instances, when +appropriate) instead of window titles whenever possible because some +applications first create their window, and then worry about setting the correct +title. Firefox with Vimperator comes to mind. The window 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 window, you’d need to have to +match on Firefox in this case. +Another known issue is with Spotify, which doesn’t set the class hints when +mapping the window, meaning you’ll have to use a for_window rule to assign +Spotify to a specific workspace. +Finally, using assign [tiling] and assign [floating] is not supported.

+

You can also assign a window to show up on a specific output. You can use RandR +names such as VGA1 or names relative to the output with the currently focused +workspace such as left and down.

+

Assignments are processed by i3 in the order in which they appear in the config +file. The first one which matches the window wins and later assignments are not +considered.

+

Syntax:

+
+
+
assign <criteria> [→] [workspace] [number] <workspace>
+assign <criteria> [→] output left|right|up|down|primary|nonprimary|<output>
+
+

Examples:

+
+
+
# Assign URxvt terminals to workspace 2
+assign [class="URxvt"] 2
+
+# Same thing, but more precise (exact match instead of substring)
+assign [class="^URxvt$"] 2
+
+# Same thing, but with a beautiful arrow :)
+assign [class="^URxvt$"] → 2
+
+# Assignment to a named workspace
+assign [class="^URxvt$"] → work
+
+# Assign to the workspace with number 2, regardless of name
+assign [class="^URxvt$"] → number 2
+
+# You can also specify a number + name. If the workspace with number 2 exists,
+# assign will skip the text part.
+assign [class="^URxvt$"] → number "2: work"
+
+# Start urxvt -name irssi
+assign [class="^URxvt$" instance="^irssi$"] → 3
+
+# Assign urxvt to the output right of the current one
+assign [class="^URxvt$"] → output right
+
+# Assign urxvt to the primary output
+assign [class="^URxvt$"] → output primary
+
+# Assign urxvt to the first non-primary output
+assign [class="^URxvt$"] → output nonprimary
+
+

Note that you might not have a primary output configured yet. To do so, run:

+
+
+
xrandr --output <output> --primary
+
+

Also, the arrow is not required, it just looks good :-). If you decide to +use it, it has to be a UTF-8 encoded arrow, not -> or something like that.

+

To get the class and instance, you can use xprop. After clicking on the +window, you will see the following output:

+

xprop:

+
+
+
WM_CLASS(STRING) = "irssi", "URxvt"
+
+

The first part of the WM_CLASS is the instance ("irssi" in this example), the +second part is the class ("URxvt" in this example).

+

Should you have any problems with assignments, make sure to check the i3 +logfile first (see https://i3wm.org/docs/debugging.html). It includes more +details about the matching process and the window’s actual class, instance and +title when starting up.

+

Note that if you want to start an application just once on a specific +workspace, but you don’t want to assign all instances of it permanently, you +can make use of i3’s startup-notification support (see [exec]) in your config +file in the following way:

+

Start iceweasel on workspace 3 (once):

+
+
+
# Start iceweasel on workspace 3, then switch back to workspace 1
+# (Being a command-line utility, i3-msg does not support startup notifications,
+#  hence the exec --no-startup-id.)
+# (Starting iceweasel with i3’s exec command is important in order to make i3
+#  create a startup notification context, without which the iceweasel window(s)
+#  cannot be matched onto the workspace on which the command was started.)
+exec --no-startup-id i3-msg 'workspace 3; exec iceweasel; workspace 1'
+
+
+
+

Automatically starting applications on i3 startup

+

By using the exec keyword outside a keybinding, you can configure +which commands will be performed by i3 on initial startup. exec +commands will not run when restarting i3, if you need a command to run +also when restarting i3 you should use the exec_always +keyword. These commands will be run in order.

+

See [command_chaining] for details on the special meaning of ; (semicolon) +and , (comma): they chain commands together in i3, so you need to use quoted +strings (as shown in [exec_quoting]) if they appear in your command.

+

Syntax:

+
+
+
exec [--no-startup-id] <command>
+exec_always [--no-startup-id] <command>
+
+

Examples:

+
+
+
exec chromium
+exec_always ~/my_script.sh
+
+# Execute the terminal emulator urxvt, which is not yet startup-notification aware.
+exec --no-startup-id urxvt
+
+

The flag --no-startup-id is explained in [exec].

+
+
+

Automatically putting workspaces on specific screens

+

If you assign clients to workspaces, it might be handy to put the +workspaces on specific screens. Also, the assignment of workspaces to screens +will determine which workspace i3 uses for a new screen when adding screens +or when starting (e.g., by default it will use 1 for the first screen, 2 for +the second screen and so on).

+

Syntax:

+
+
+
workspace <workspace> output <output1> [output2]…
+
+

The output is the name of the RandR output you attach your screen to. On a +laptop, you might have VGA1 and LVDS1 as output names. You can see the +available outputs by running xrandr --current.

+

If your X server supports RandR 1.5 or newer, i3 will use RandR monitor objects +instead of output objects. Run xrandr --listmonitors to see a list. Usually, +a monitor object contains exactly one output, and has the same name as the +output; but should that not be the case, you can specify the name of either the +monitor or the output in i3’s configuration. For example, the Dell UP2414Q uses +two scalers internally, so its output names might be “DP1” and “DP2”, but the +monitor name is “Dell UP2414Q”.

+

(Note that even if you specify the name of an output which doesn’t span the +entire monitor, i3 will still use the entire area of the containing monitor +rather than that of just the output’s.)

+

You can specify multiple outputs. The first available will be used.

+

If you use named workspaces, they must be quoted:

+

Examples:

+
+
+
workspace 1 output LVDS1
+workspace 2 output primary
+workspace 5 output VGA1 LVDS1
+workspace "2: vim" output VGA1
+
+
+
+

Changing colors

+

You can change all colors which i3 uses to draw the window decorations.

+

Syntax:

+
+
+
<colorclass> <border> <background> <text> <indicator> <child_border>
+
+

Where colorclass can be one of:

+
+
+client.focused +
+
+

+ A client which currently has the focus. +

+
+
+client.focused_inactive +
+
+

+ A client which is the focused one of its container, but it does not have + the focus at the moment. +

+
+
+client.focused_tab_title +
+
+

+ Tab or stack container title that is the parent of the focused container + but not directly focused. Defaults to focused_inactive if not specified and + does not use the indicator and child_border colors. +

+
+
+client.unfocused +
+
+

+ A client which is not the focused one of its container. +

+
+
+client.urgent +
+
+

+ A client which has its urgency hint activated. +

+
+
+client.placeholder +
+
+

+ Background and text color are used to draw placeholder window contents + (when restoring layouts). Border and indicator are ignored. +

+
+
+client.background +
+
+

+ Background color which will be used to paint the background of the + client window on top of which the client will be rendered. Only clients + which do not cover the whole area of this window expose the color. Note + that this colorclass only takes a single color. +

+
+
+

Colors are in HTML hex format (#rrggbb, optionally #rrggbbaa), see the following +example:

+

Examples (default colors):

+
+
+
# class                 border  backgr. text    indicator child_border
+client.focused          #4c7899 #285577 #ffffff #2e9ef4   #285577
+client.focused_inactive #333333 #5f676a #ffffff #484e50   #5f676a
+client.unfocused        #333333 #222222 #888888 #292d2e   #222222
+client.urgent           #2f343a #900000 #ffffff #900000   #900000
+client.placeholder      #000000 #0c0c0c #ffffff #000000   #0c0c0c
+
+client.background       #ffffff
+
+

Note that for the window decorations, the color around the child window is the +"child_border", and "border" color is only the two thin lines around the +titlebar.

+

The indicator color is used for indicating where a new window will be opened. +For horizontal split containers, the right border will be painted in indicator +color, for vertical split containers, the bottom border. This only applies to +single windows within a split container, which are otherwise indistinguishable +from single windows outside of a split container.

+
+
+

Interprocess communication

+

i3 uses Unix sockets to provide an IPC interface. This allows third-party +programs to get information from i3, such as the current workspaces +(to display a workspace bar), and to control i3.

+

By default, an IPC socket will be created in +$XDG_RUNTIME_DIR/i3/ipc-socket.%p if the directory is available, falling back +to /tmp/i3-%u.XXXXXX/ipc-socket.%p, where %u is your UNIX username, %p is +the PID of i3 and XXXXXX is a string of random characters from the portable +filename character set (see mkdtemp(3)).

+

You can override the default path through the environment-variable I3SOCK or +by specifying the ipc-socket directive. This is discouraged, though, since i3 +does the right thing by default. If you decide to change it, it is strongly +recommended to set this to a location in your home directory so that no other +user can create that directory.

+

Examples:

+
+
+
ipc-socket ~/.i3/i3-ipc.sock
+
+

You can then use the i3-msg application to perform any command listed in +[list_of_commands].

+
+
+

Focus follows mouse

+

By default, window focus follows your mouse movements as the mouse crosses +window borders. However, if you have a setup where your mouse usually is in your +way (like a touchpad on your laptop which you do not want to disable +completely), you might want to disable focus follows mouse and control focus +only by using your keyboard. The mouse will still be useful inside the +currently active window (for example to click on links in your browser window).

+

Syntax:

+
+
+
focus_follows_mouse yes|no
+
+

Example:

+
+
+
focus_follows_mouse no
+
+
+
+

Mouse warping

+

By default, when switching focus to a window on a different output (e.g. +focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on +LVDS-1), the mouse cursor is warped to the center of that window.

+

With the mouse_warping option, you can control when the mouse cursor should +be warped. none disables warping entirely, whereas output is the default +behavior described above.

+

Syntax:

+
+
+
mouse_warping output|none
+
+

Example:

+
+
+
mouse_warping none
+
+
+
+

Popups during fullscreen mode

+

When you are in fullscreen mode, some applications still open popup windows +(take Xpdf for example). This is because these applications might not be aware +that they are in fullscreen mode (they do not check the corresponding hint). +i3 supports four options for this situation:

+
    +
  1. +

    +smart: Display the popup if it belongs to the fullscreen application only. + This is the default and should be reasonable behavior for most users. +

    +
  2. +
  3. +

    +ignore: Just ignore the popup (don’t map it). This won’t interrupt you + while you are in fullscreen. However, some apps might react badly to this + (deadlock until you go out of fullscreen). +

    +
  4. +
  5. +

    +leave_fullscreen: Leave fullscreen mode. +

    +
  6. +
  7. +

    +all: Since i3 4.24: Display all floating windows regardless to which + application they belong to. +

    +
  8. +
+

Syntax:

+
+
+
popup_during_fullscreen smart|ignore|leave_fullscreen|all
+
+

Example:

+
+
+
popup_during_fullscreen smart
+
+
+
+

Focus wrapping

+

By default, when in a container with several windows or child containers, the +opposite window will be focused when trying to move the focus over the edge of +a container (and there are no other containers in that direction) — the focus +wraps.

+

If desired, you can disable this behavior by setting the focus_wrapping +configuration directive to the value no.

+

When enabled, focus wrapping does not occur by default if there is another +window or container in the specified direction, and focus will instead be set +on that window or container. This is the default behavior so you can navigate +to all your windows without having to use focus parent.

+

If you want the focus to always wrap and you are aware of using focus +parent to switch to different containers, you can instead set focus_wrapping +to the value force.

+

To restrict focus inside the current workspace set focus_wrapping to the +value workspace. You will need to use focus parent until a workspace is +selected to switch to a different workspace using the focus commands (the +workspace command will still work as expected).

+

Syntax:

+
+
+
focus_wrapping yes|no|force|workspace
+
+# Legacy syntax, equivalent to "focus_wrapping force"
+force_focus_wrapping yes
+
+

Examples:

+
+
+
# Disable focus wrapping
+focus_wrapping no
+
+# Force focus wrapping
+focus_wrapping force
+
+
+
+

Forcing Xinerama

+

As explained in-depth in https://i3wm.org/docs/multi-monitor.html, some X11 +video drivers (especially the nVidia binary driver) only provide support for +Xinerama instead of RandR. In such a situation, i3 must be told to use the +inferior Xinerama API explicitly and therefore don’t provide support for +reconfiguring your screens on the fly (they are read only once on startup and +that’s it).

+

For people who cannot modify their ~/.xsession to add the +--force-xinerama commandline parameter, a configuration option is provided:

+

Syntax:

+
+
+
force_xinerama yes|no
+
+

Example:

+
+
+
force_xinerama yes
+
+

Also note that your output names are not descriptive (like HDMI1) when using +Xinerama, instead they are counted up, starting at 0: xinerama-0, xinerama-1, …

+
+
+

Automatic back-and-forth when switching to the current workspace

+

This configuration directive enables automatic workspace back_and_forth (see +[back_and_forth]) when switching to the workspace that is currently focused.

+

For instance: Assume you are on workspace "1: www" and switch to "2: IM" using +mod+2 because somebody sent you a message. You don’t need to remember where you +came from now, you can just press $mod+2 again to switch back to "1: www".

+

Syntax:

+
+
+
workspace_auto_back_and_forth yes|no
+
+

Example:

+
+
+
workspace_auto_back_and_forth yes
+
+
+
+

Delaying urgency hint reset on workspace change

+

If an application on another workspace sets an urgency hint, switching to this +workspace might lead to immediate focus of the application, which also means the +window decoration color would be immediately reset to client.focused. This +might make it unnecessarily hard to tell which window originally raised the +event.

+

In order to prevent this, you can tell i3 to delay resetting the urgency state +by a certain time using the force_display_urgency_hint directive. Setting the +value to 0 disables this feature.

+

The default is 500ms.

+

Syntax:

+
+
+
force_display_urgency_hint <timeout> ms
+
+

Example:

+
+
+
force_display_urgency_hint 500 ms
+
+
+
+

Focus on window activation

+

If a window is activated, e.g., via google-chrome www.google.com, it may request +to take focus. Since this might not be preferable, different reactions can be configured.

+

Note that this might not affect windows that are being opened. To prevent new windows +from being focused, see [no_focus].

+

Syntax:

+
+
+
focus_on_window_activation smart|urgent|focus|none
+
+

The different modes will act as follows:

+
+
+smart +
+
+

+ This is the default behavior. If the window requesting focus is on an active + workspace, it will receive the focus. Otherwise, the urgency hint will be set. +

+
+
+urgent +
+
+

+ The window will always be marked urgent, but the focus will not be stolen. +

+
+
+focus +
+
+

+ The window will always be focused and not be marked urgent. +

+
+
+none +
+
+

+ The window will neither be focused, nor be marked urgent. +

+
+
+
+
+

Drawing marks on window decoration

+

If activated, marks (see [vim_like_marks]) on windows are drawn in their window +decoration. However, any mark starting with an underscore in its name (_) will +not be drawn even if this option is activated.

+

The default for this option is yes.

+

Syntax:

+
+
+
show_marks yes|no
+
+

Example:

+
+
+
show_marks yes
+
+
+
+

Line continuation

+

Config files support line continuation, meaning when you end a line in a +backslash character (\), the line-break will be ignored by the parser. This +feature can be used to create more readable configuration files. +Commented lines are not continued.

+

Examples:

+
+
+
bindsym Mod1+f \
+fullscreen toggle
+
+# this line is not continued \
+bindsym Mod1+F fullscreen toggle
+
+
+
+

Tiling drag

+

You can configure how to initiate the tiling drag feature (see [tiling_drag]).

+

The default is modifier.

+

Since i3 4.24, you can configure a modifier key which, when pressed, will swap +instead of moving containers when dropping directly onto another container. +Defaults to Shift. Note that you have to be pressing both the floating +modifer and the swap modifier before the drag is initiated.

+

Syntax:

+
+
+
tiling_drag off
+tiling_drag modifier|titlebar [modifier|titlebar]
+tiling_drag swap_modifier <modifier>
+
+

Examples:

+
+
+
# Only initiate a tiling drag when the modifier is held:
+tiling_drag modifier
+
+# Initiate a tiling drag on either titlebar click or held modifier:
+tiling_drag modifier titlebar
+
+# Disable tiling drag altogether
+tiling_drag off
+
+# Use Control to swap containers
+tiling_drag swap_modifier Control
+
+# Setting the swap_modifier to be the same key as the floating modifier will
+# always swap without the need to hold two keys
+floating_modifier Mod4
+tiling_drag swap_modifier Mod4
+
+
+
+

Gaps

+

Since i3 4.22, you can configure window gaps. +“Gaps” are added spacing between windows (or split containers) and to the screen edges:

+
+
+Screenshot of i3 with gaps enabled (10 px inner gaps, 20 px outer gaps) +
+
Figure 5. Gaps enabled (10 px inner gaps, 20 px outer gaps)
+
+

You can configure two different kind of gaps:

+
    +
  1. +

    +Inner gaps are space between two adjacent windows (or split containers). +

    +
  2. +
  3. +

    +Outer gaps are space along the screen edges. You can configure each side + (left, right, top, bottom) separately. +

    +
  4. +
+

If you are familiar with HTML and CSS, you can think of inner gaps as padding, +and of outer gaps as margin, applied to a <div> around your window or split +container.

+

Note that outer gaps are added to the inner gaps, meaning the total gap size +between a screen edge and a window (or split container) will be the sum of outer +and inner gaps.

+

You can define gaps either globally or per workspace using the following +syntax.

+

Syntax:

+
+
+
# Inner gaps for all windows: space between two adjacent windows (or split containers).
+gaps inner <gap_size>[px]
+
+# Outer gaps for all windows: space along the screen edges.
+gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
+
+# Inner and outer gaps for all windows on a specific workspace.
+# <ws> can be a workspace number or name.
+workspace <ws> gaps inner <gap_size>[px]
+workspace <ws> gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
+
+# Enabling “Smart Gaps” means no gaps will be shown when there is
+# precisely one window or split container on the workspace.
+#
+# inverse_outer only enables outer gaps when there is exactly one
+# window or split container on the workspace.
+smart_gaps on|off|inverse_outer
+
+

Outer gaps can be configured for each side individually with the top, left, +bottom and right directive. horizontal and vertical are shortcuts for +left/right and top/bottom, respectively.

+

Example:

+
+
+
# Configure 5px of space between windows and to the screen edges.
+gaps inner 5px
+
+# Configure an additional 5px of extra space to the screen edges,
+# for a total gap of 10px to the screen edges, and 5px between windows.
+gaps outer 5px
+
+# Overwrite gaps to 0, I need all the space I can get on workspace 3.
+workspace 3 gaps inner 0
+workspace 3 gaps outer 0
+
+# Only enable outer gaps when there is exactly one window or split container on the workspace.
+smart_gaps inverse_outer
+
+

Tip: Gaps can additionally be changed at runtime with the gaps command, see +[changing_gaps].

+

Tip: You can find an +example +configuration that uses modes to illustrate various gap configurations.

+
+
+
+
+

Configuring i3bar

+
+

The bar at the bottom of your monitor is drawn by a separate process called +i3bar. Having this part of "the i3 user interface" in a separate process has +several advantages:

+
    +
  1. +

    +It is a modular approach. If you don’t need a workspace bar at all, or if + you prefer a different one (dzen2, xmobar, maybe even gnome-panel?), you can + just remove the i3bar configuration and start your favorite bar instead. +

    +
  2. +
  3. +

    +It follows the UNIX philosophy of "Make each program do one thing well". + While i3 manages your windows well, i3bar is good at displaying a bar on + each monitor (unless you configure it otherwise). +

    +
  4. +
  5. +

    +It leads to two separate, clean codebases. If you want to understand i3, you + don’t need to bother with the details of i3bar and vice versa. +

    +
  6. +
+

That said, i3bar is configured in the same configuration file as i3. This is +because it is tightly coupled with i3 (in contrary to i3lock or i3status which +are useful for people using other window managers). Therefore, it makes no +sense to use a different configuration place when we already have a good +configuration infrastructure in place.

+

Configuring your workspace bar starts with opening a bar block. You can have +multiple bar blocks to use different settings for different outputs (monitors):

+

Example:

+
+
+
bar {
+    status_command i3status
+}
+
+
+

i3bar command

+

By default i3 will just pass i3bar and let your shell handle the execution, +searching your $PATH for a correct version. +If you have a different i3bar somewhere or the binary is not in your $PATH you can +tell i3 what to execute.

+

The specified command will be passed to sh -c, so you can use globbing and +have to have correct quoting etc.

+

Syntax:

+
+
+
i3bar_command <command>
+
+

Example:

+
+
+
bar {
+    i3bar_command /home/user/bin/i3bar
+}
+
+
+
+

Statusline command

+

i3bar can run a program and display every line of its stdout output on the +right hand side of the bar. This is useful to display system information like +your current IP address, battery status or date/time.

+

The specified command will be passed to sh -c, so you can use globbing and +have to have correct quoting etc. Note that for signal handling, depending on +your shell (users of dash(1) are known to be affected), you have to use the +shell’s exec command so that signals are passed to your program, not to the +shell.

+

Syntax:

+
+
+
status_command <command>
+
+

Example:

+
+
+
bar {
+    status_command i3status --config ~/.i3status.conf
+
+    # For dash(1) users who want signal handling to work:
+    status_command exec ~/.bin/my_status_command
+}
+
+
+
+

Workspace buttons command

+

Since i3 4.23, i3bar can run a program and use its stdout output to define +the workspace buttons displayed on the left hand side of the bar. With this +feature, you can, for example, rename the buttons of workspaces, hide specific +workspaces, always show a workspace button even if the workspace does not exist +or change the order of the buttons.

+

Also see [status_command] for the statusline option and +https://i3wm.org/docs/i3bar-workspace-protocol.html for the detailed protocol.

+

Syntax:

+
+
+
workspace_command <command>
+
+

Example:

+
+
+
bar {
+    workspace_command /path/to/script.sh
+}
+
+
+
+

Display mode

+

You can either have i3bar be visible permanently at one edge of the screen +(dock mode) or make it show up when you press your modifier key (hide mode). +It is also possible to force i3bar to always stay hidden (invisible +mode). The modifier key can be configured using the modifier option.

+

The mode option can be changed during runtime through the bar mode command. +On reload the mode will be reverted to its configured value.

+

The hide mode maximizes screen space that can be used for actual windows. When +the bar is hidden, i3bar sends the SIGSTOP and SIGCONT signals to the +status_command process in order to conserve battery power. This feature can +be disabled by the status_command process by setting the appropriate values +in its JSON header message.

+

Invisible mode allows to permanently maximize screen space, as the bar is never +shown. Thus, you can configure i3bar to not disturb you by popping up because +of an urgency hint or because the modifier key is pressed.

+

In order to control whether i3bar is hidden or shown in hide mode, there exists +the hidden_state option, which has no effect in dock mode or invisible mode. It +indicates the current hidden_state of the bar: (1) The bar acts like in normal +hide mode, it is hidden and is only unhidden in case of urgency hints or by +pressing the modifier key (hide state), or (2) it is drawn on top of the +currently visible workspace (show state).

+

Like the mode, the hidden_state can also be controlled through i3, this can be +done by using the bar hidden_state command.

+

The default mode is dock mode; in hide mode, the default modifier is Mod4 (usually +the windows key). The default value for the hidden_state is hide.

+

Syntax:

+
+
+
mode dock|hide|invisible
+hidden_state hide|show
+modifier <Modifier>|none
+
+

Example:

+
+
+
bar {
+    mode hide
+    hidden_state hide
+    modifier Mod1
+}
+
+

Available modifiers are Mod1-Mod5, Shift, Control (see xmodmap(1)). You can +also use "none" if you don’t want any modifier to trigger this behavior.

+
+
+

Mouse button commands

+

Specifies a command to run when a button was pressed on i3bar to override the +default behavior. This is useful, e.g., for disabling the scroll wheel action +or running scripts that implement custom behavior for these buttons.

+

A button is always named button<n>, where 1 to 5 are default buttons as follows and higher +numbers can be special buttons on devices offering more buttons:

+
+
+button1 +
+
+

+ Left mouse button. +

+
+
+button2 +
+
+

+ Middle mouse button. +

+
+
+button3 +
+
+

+ Right mouse button. +

+
+
+button4 +
+
+

+ Scroll wheel up. +

+
+
+button5 +
+
+

+ Scroll wheel down. +

+
+
+button6 +
+
+

+ Scroll wheel right. +

+
+
+button7 +
+
+

+ Scroll wheel left. +

+
+
+

Please note that the old wheel_up_cmd and wheel_down_cmd commands are deprecated +and will be removed in a future release. We strongly recommend using the more general +bindsym with button4 and button5 instead.

+

Syntax:

+
+
+
bindsym [--release] button<n> <command>
+
+

Example:

+
+
+
bar {
+    # disable clicking on workspace buttons
+    bindsym button1 nop
+    # Take a screenshot by right clicking on the bar
+    bindsym --release button3 exec --no-startup-id import /tmp/latest-screenshot.png
+    # execute custom script when scrolling downwards
+    bindsym button5 exec ~/.i3/scripts/custom_wheel_down
+}
+
+
+
+

Bar ID

+

Specifies the bar ID for the configured bar instance. If this option is missing, +the ID is set to bar-x, where x corresponds to the position of the embedding +bar block in the config file (bar-0, bar-1, …).

+

Syntax:

+
+
+
id <bar_id>
+
+

Example:

+
+
+
bar {
+    id bar-1
+}
+
+
+
+

Position

+

This option determines in which edge of the screen i3bar should show up.

+

The default is bottom.

+

Syntax:

+
+
+
position top|bottom
+
+

Example:

+
+
+
bar {
+    position top
+}
+
+
+
+

Output(s)

+

You can restrict i3bar to one or more outputs (monitors). The default is to +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.

+

These output names have a special meaning:

+
+
+primary +
+
+

+ Selects the output that is configured as primary in the X server. +

+
+
+nonprimary +
+
+

+ Selects every output that is not configured as primary in the X server. +

+
+
+

Syntax:

+
+
+
output primary|nonprimary|<output>
+
+

Example:

+
+
+
# big monitor: everything
+bar {
+    # 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
+    }
+}
+
+# show bar on the primary monitor and on HDMI2
+bar {
+    output primary
+    output HDMI2
+    status_command i3status
+}
+
+

Note that you might not have a primary output configured yet. To do so, run:

+
+
+
xrandr --output <output> --primary
+
+
+
+

Tray output

+

i3bar by default provides a system tray area where programs such as +NetworkManager, VLC, Pidgin, etc. can place little icons.

+

You can configure on which output (monitor) the icons should be displayed or +you can turn off the functionality entirely.

+

You can use multiple tray_output directives in your config to specify a list +of outputs on which you want the tray to appear. The first available output in +that list as defined by the order of the directives will be used for the tray +output.

+

Syntax:

+
+
+
tray_output none|primary|<output>
+
+

Example:

+
+
+
# disable system tray
+bar {
+    tray_output none
+}
+
+# show tray icons on the primary monitor
+bar {
+    tray_output primary
+}
+
+# show tray icons on the big monitor
+bar {
+    tray_output HDMI2
+}
+
+

Note that you might not have a primary output configured yet. To do so, run:

+
+
+
xrandr --output <output> --primary
+
+

Note that when you use multiple bar configuration blocks, either specify +tray_output primary in all of them or explicitly specify tray_output none +in bars which should not display the tray, otherwise the different instances +might race each other in trying to display tray icons.

+
+
+

Tray padding

+

The tray is shown on the right-hand side of the bar. By default, a padding of 2 +pixels is used for the upper, lower and right-hand side of the tray area and +between the individual icons.

+

Syntax:

+
+
+
tray_padding <px> [px]
+
+

Example:

+
+
+
# Obey Fitts's law
+tray_padding 0
+
+
+
+

Font

+

Specifies the font to be used in the bar. See [fonts].

+

Syntax:

+
+
+
font <font>
+
+

Example:

+
+
+
bar {
+    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+    font pango:DejaVu Sans Mono 10
+}
+
+
+
+

Custom separator symbol

+

Specifies a custom symbol to be used for the separator as opposed to the vertical, +one pixel thick separator.

+

Syntax:

+
+
+
separator_symbol <symbol>
+
+

Example:

+
+
+
bar {
+    separator_symbol ":|:"
+}
+
+
+
+

Workspace buttons

+

Specifies whether workspace buttons should be shown or not. This is useful if +you want to display a statusline-only bar containing additional information.

+

The default is to show workspace buttons.

+

Syntax:

+
+
+
workspace_buttons yes|no
+
+

Example:

+
+
+
bar {
+    workspace_buttons no
+}
+
+
+
+

Minimal width for workspace buttons

+

By default, the width a workspace button is determined by the width of the text +showing the workspace name. If the name is too short (say, one letter), then the +workspace button might look too small.

+

This option specifies the minimum width for workspace buttons. If the name of +a workspace is too short to cover the button, an additional padding is added on +both sides of the button so that the text is centered.

+

The default value of zero means that no additional padding is added.

+

The setting also applies to the current binding mode indicator.

+

Note that the specified pixels refer to logical pixels, which might translate +into more pixels on HiDPI displays.

+

Syntax:

+
+
+
workspace_min_width <px> [px]
+
+

Example:

+
+
+
bar {
+    workspace_min_width 40
+}
+
+
+
+

Strip workspace numbers/name

+

Specifies whether workspace numbers should be displayed within the workspace +buttons. This is useful if you want to have a named workspace that stays in +order on the bar according to its number without displaying the number prefix.

+

When strip_workspace_numbers is set to yes, any workspace that has a name of +the form "[n][:][NAME]" will display only the name. You could use this, for +instance, to display Roman numerals rather than digits by naming your +workspaces to "1:I", "2:II", "3:III", "4:IV", …

+

When strip_workspace_name is set to yes, any workspace that has a name of +the form "[n][:][NAME]" will display only the number.

+

The default is to display the full name within the workspace button. Be aware +that the colon in the workspace name is optional, so [n][NAME] will also +have the workspace name and number stripped correctly.

+

Syntax:

+
+
+
strip_workspace_numbers yes|no
+strip_workspace_name yes|no
+
+

Example:

+
+
+
bar {
+    strip_workspace_numbers yes
+}
+
+
+
+

Binding Mode indicator

+

Specifies whether the current binding mode indicator should be shown or not. +This is useful if you want to hide the workspace buttons but still be able +to see the current binding mode indicator. See [binding_modes] to learn what +modes are and how to use them.

+

The default is to show the mode indicator.

+

Syntax:

+
+
+
binding_mode_indicator yes|no
+
+

Example:

+
+
+
bar {
+    binding_mode_indicator no
+}
+
+
+
+

Colors

+

As with i3, colors are in HTML hex format (#rrggbb, optionally #rrggbbaa). The +following colors can be configured at the moment:

+
+
+background +
+
+

+ Background color of the bar. +

+
+
+statusline +
+
+

+ Text color to be used for the statusline. +

+
+
+separator +
+
+

+ Text color to be used for the separator. +

+
+
+focused_background +
+
+

+ Background color of the bar on the currently focused monitor output. If + not used, the color will be taken from background. +

+
+
+focused_statusline +
+
+

+ Text color to be used for the statusline on the currently focused + monitor output. If not used, the color will be taken from statusline. +

+
+
+focused_separator +
+
+

+ Text color to be used for the separator on the currently focused + monitor output. If not used, the color will be taken from separator. +

+
+
+focused_workspace +
+
+

+ Border, background and text color for a workspace button when the workspace + has focus. +

+
+
+active_workspace +
+
+

+ Border, background and text color for a workspace button when the workspace + is active (visible) on some output, but the focus is on another one. + You can only tell this apart from the focused workspace when you are + using multiple monitors. +

+
+
+inactive_workspace +
+
+

+ Border, background and text color for a workspace button when the workspace + does not have focus and is not active (visible) on any output. This + will be the case for most workspaces. +

+
+
+urgent_workspace +
+
+

+ Border, background and text color for a workspace button when the workspace + contains a window with the urgency hint set. +

+
+
+binding_mode +
+
+

+ Border, background and text color for the binding mode indicator. If not used, + the colors will be taken from urgent_workspace. +

+
+
+

Syntax:

+
+
+
colors {
+    background <color>
+    statusline <color>
+    separator <color>
+
+    <colorclass> <border> <background> <text>
+}
+
+

Example (default colors):

+
+
+
bar {
+    colors {
+        background #000000
+        statusline #ffffff
+        separator #666666
+
+        focused_workspace  #4c7899 #285577 #ffffff
+        active_workspace   #333333 #5f676a #ffffff
+        inactive_workspace #333333 #222222 #888888
+        urgent_workspace   #2f343a #900000 #ffffff
+        binding_mode       #2f343a #900000 #ffffff
+    }
+}
+
+
+
+

Transparency

+

i3bar can support transparency by passing the --transparency flag in the +configuration:

+

Syntax:

+
+
+
bar {
+    i3bar_command i3bar --transparency
+}
+
+

In the i3bar color configuration and i3bar status block color attribute you can +then use colors in the RGBA format, i.e. the last two (hexadecimal) digits +specify the opacity. For example, #00000000 will be completely transparent, +while #000000FF will be a fully opaque black (the same as #000000).

+

Please note that due to the way the tray specification works, enabling this +flag will cause all tray icons to have a transparent background.

+
+
+

Padding

+

To make i3bar higher (without increasing the font size), and/or add padding to +the left and right side of i3bar, you can use the padding directive:

+

Syntax:

+
+
+
bar {
+    # 2px left/right and 2px top/bottom padding
+    padding 2px
+
+    # 2px top/bottom padding, no left/right padding
+    padding 2px 0
+
+    # 2px top padding, no left/right padding, 4px bottom padding
+    padding 2px 0 4px
+
+    # four value syntax
+    padding top[px] right[px] bottom[px] left[px]
+}
+
+

Examples:

+
+
+
bar {
+    # 2px left/right and 2px top/bottom padding
+    padding 2px
+
+    # 2px top/bottom padding, no left/right padding
+    padding 2px 0
+
+    # 2px top padding, no left/right padding, 4px bottom padding
+    padding 2px 0 4px
+
+    # 2px top padding, 6px right padding, 4px bottom padding, 1px left padding
+    padding 2px 6px 4px 1px
+}
+
+

Note: As a convenience for users who migrate from i3-gaps to i3, the height +directive from i3-gaps is supported by i3, but should be changed to padding.

+
+
+
+
+

List of commands

+
+

Commands are what you bind to specific keypresses. You can also issue commands +at runtime without pressing a key by using the IPC interface. An easy way to +do this is to use the i3-msg utility:

+

Example:

+
+
+
# execute this on your shell to make the current container borderless
+i3-msg border none
+
+

Commands can be chained by using ; (a semicolon). So, to move a window to a +specific workspace and immediately switch to that workspace, you can configure +the following keybinding:

+

Example:

+
+
+
bindsym $mod+x move container to workspace 3; workspace 3
+
+

Furthermore, you can change the scope of a command - that is, which containers +should be affected by that command, by using various criteria. The criteria +are specified before any command in a pair of square brackets and are separated +by space.

+

When using multiple commands, separate them by using a , (a comma) instead of +a semicolon. Criteria apply only until the next semicolon, so if you use a +semicolon to separate commands, only the first one will be executed for the +matched window(s).

+

Example:

+
+
+
# if you want to kill all windows which have the class Firefox, use:
+bindsym $mod+x [class="Firefox"] kill
+
+# same thing, but case-insensitive
+bindsym $mod+x [class="(?i)firefox"] kill
+
+# kill only the About dialog from Firefox
+bindsym $mod+x [class="Firefox" window_role="About"] kill
+
+# kill all windows except for Firefox and Gnome Terminal.
+# case-insensitive and uses negative lookaheads, supported by PCRE
+bindsym $mod+x [class="^(?i)(?!firefox)(?!gnome-terminal).*"] kill
+
+# enable floating mode and move container to workspace 4
+for_window [class="^evil-app$"] floating enable, move container to workspace 4
+
+# enable window icons for all windows with extra horizontal padding of 1px
+for_window [all] title_window_icon padding 1px
+
+# move all floating windows to the scratchpad
+bindsym $mod+x [floating] move scratchpad
+
+

The criteria which are currently implemented are:

+
+
+all +
+
+

+ Matches all windows. This criterion requires no value. +

+
+
+class +
+
+

+ Compares the window class (the second part of WM_CLASS). Use the + special value __focused__ to match all windows having the same window + class as the currently focused window. +

+
+
+instance +
+
+

+ Compares the window instance (the first part of WM_CLASS). Use the + special value __focused__ to match all windows having the same window + instance as the currently focused window. +

+
+
+window_role +
+
+

+ Compares the window role (WM_WINDOW_ROLE). Use the special value + __focused__ to match all windows having the same window role as the + currently focused window. +

+
+
+window_type +
+
+

+ Compare the window type (_NET_WM_WINDOW_TYPE). Possible values are + normal, dialog, utility, toolbar, splash, menu, dropdown_menu, + popup_menu, tooltip and notification. +

+
+
+machine +
+
+

+ Compares the name of the machine the client window is running on + (WM_CLIENT_MACHINE). Usually, it is equal to the hostname of the local + machine, but it may differ if remote X11 apps are used. +

+
+
+id +
+
+

+ Compares the X11 window ID, which you can get via xwininfo for example. +

+
+
+title +
+
+

+ Compares the X11 window title (_NET_WM_NAME or WM_NAME as fallback). + Use the special value __focused__ to match all windows having the + same window title as the currently focused window. +

+
+
+urgent +
+
+

+ Compares the urgent state of the window. Can be "latest" or "oldest". + Matches the latest or oldest urgent window, respectively. + (The following aliases are also available: newest, last, recent, first) +

+
+
+workspace +
+
+

+ Compares the workspace name of the workspace the window belongs to. Use + the special value __focused__ to match all windows in the currently + focused workspace. +

+
+
+con_mark +
+
+

+ Compares the marks set for this container, see [vim_like_marks]. A + match is made if any of the container’s marks matches the specified + mark. +

+
+
+con_id +
+
+

+ Compares the i3-internal container ID, which you can get via the IPC + interface. Handy for scripting. Use the special value __focused__ + to match only the currently focused window. +

+
+
+floating +
+
+

+ Only matches floating windows. This criterion requires no value. +

+
+
+floating_from +
+
+

+ Like floating but this criterion takes two possible values: "auto" + and "user". With "auto", only windows that were automatically opened as + floating are matched. With "user", only windows that the user made + floating are matched. +

+
+
+tiling +
+
+

+ Only matches tiling windows. This criterion requires no value. +

+
+
+tiling_from +
+
+

+ Like tiling but this criterion takes two possible values: "auto" and + "user". With "auto", only windows that were automatically opened as + tiling are matched. With "user", only windows that the user made tiling + are matched. +

+
+
+

The criteria class, instance, role, title, workspace, machine and +mark are actually regular expressions (PCRE). See pcresyntax(3) or perldoc +perlre for information on how to use them.

+
+

Executing applications (exec)

+

What good is a window manager if you can’t actually start any applications? +The exec command starts an application by passing the command you specify to a +shell. This implies that you can use globbing (wildcards) and programs will be +searched in your $PATH.

+

See [command_chaining] for details on the special meaning of ; (semicolon) +and , (comma): they chain commands together in i3, so you need to use quoted +strings (as shown in [exec_quoting]) if they appear in your command.

+

Syntax:

+
+
+
exec [--no-startup-id] <command>
+
+

Example:

+
+
+
# Start the GIMP
+bindsym $mod+g exec gimp
+
+# Start the terminal emulator urxvt which is not yet startup-notification-aware
+bindsym $mod+Return exec --no-startup-id urxvt
+
+

The --no-startup-id parameter disables startup-notification support for this +particular exec command. With startup-notification, i3 can make sure that a +window appears on the workspace on which you used the exec command. Also, it +will change the X11 cursor to watch (a clock) while the application is +launching. So, if an application is not startup-notification aware (most GTK +and Qt using applications seem to be, though), you will end up with a watch +cursor for 60 seconds.

+

If the command to be executed contains a ; (semicolon) and/or a , (comma), +the entire command must be quoted. For example, to have a keybinding for the +shell command notify-send Hello, i3, you would add an entry to your +configuration file like this:

+

Example:

+
+
+
# Execute a command with a comma in it
+bindsym $mod+p exec "notify-send Hello, i3"
+
+

If however a command with a comma and/or semicolon itself requires quotes, you +must escape the internal quotation marks with double backslashes, like this:

+

Example:

+
+
+
# Execute a command with a comma, semicolon and internal quotes
+bindsym $mod+p exec "notify-send \\"Hello, i3; from $USER\\""
+
+
+
+

Splitting containers

+

The split command makes the current window a split container. Split containers +can contain multiple windows. Depending on the layout of the split container, +new windows get placed to the right of the current one (splith) or new windows +get placed below the current one (splitv).

+

If you apply this command to a split container with the same orientation, +nothing will happen. If you use a different orientation, the split container’s +orientation will be changed (if it does not have more than one window). +The toggle option will toggle the orientation of the split container if it +contains a single window. Otherwise it makes the current window a split +container with opposite orientation compared to the parent container. +Use layout toggle split to change the layout of any split container from +splitv to splith or vice-versa. You can also define a custom sequence of layouts +to cycle through with layout toggle, see [manipulating_layout].

+

Syntax:

+
+
+
split vertical|horizontal|toggle
+
+

Example:

+
+
+
bindsym $mod+v split vertical
+bindsym $mod+h split horizontal
+bindsym $mod+t split toggle
+
+
+
+

Manipulating layout

+

Use layout toggle split, layout stacking, layout tabbed, layout splitv +or layout splith to change the current container layout to splith/splitv, +stacking, tabbed layout, splitv or splith, respectively.

+

Specify up to four layouts after layout toggle to cycle through them. Every +time the command is executed, the layout specified after the currently active +one will be applied. If the currently active layout is not in the list, the +first layout in the list will be activated.

+

To make the current window (!) fullscreen, use fullscreen enable (or +fullscreen enable global for the global mode), to leave either fullscreen +mode use fullscreen disable, and to toggle between these two states use +fullscreen toggle (or fullscreen toggle global).

+

Likewise, to make the current window floating (or tiling again) use floating +enable respectively floating disable (or floating toggle):

+

Syntax:

+
+
+
layout default|tabbed|stacking|splitv|splith
+layout toggle [split|all]
+layout toggle [split|tabbed|stacking|splitv|splith] [split|tabbed|stacking|splitv|splith]…
+
+

Examples:

+
+
+
bindsym $mod+s layout stacking
+bindsym $mod+l layout toggle split
+bindsym $mod+w layout tabbed
+
+# Toggle between stacking/tabbed/split:
+bindsym $mod+x layout toggle
+
+# Toggle between stacking/tabbed/splith/splitv:
+bindsym $mod+x layout toggle all
+
+# Toggle between stacking/tabbed/splith:
+bindsym $mod+x layout toggle stacking tabbed splith
+
+# Toggle between splitv/tabbed
+bindsym $mod+x layout toggle splitv tabbed
+
+# Toggle between last split layout/tabbed/stacking
+bindsym $mod+x layout toggle split tabbed stacking
+
+# Toggle fullscreen
+bindsym $mod+f fullscreen toggle
+
+# Toggle floating/tiling
+bindsym $mod+t floating toggle
+
+
+
+

Focusing containers

+

To change focus, you can use the focus command. The following options are +available:

+
+
+<criteria> +
+
+

+ Sets focus to the container that matches the specified criteria. + See [command_criteria]. +

+
+
+workspace +
+
+

+ Sets focus to the workspace that contains the container that matches the + specified criteria. +

+
+
+left|right|up|down +
+
+

+ Sets focus to the nearest container in the given direction. +

+
+
+parent +
+
+

+ Sets focus to the parent container of the current container. +

+
+
+child +
+
+

+ The opposite of focus parent, sets the focus to the last focused + child container. +

+
+
+next|prev +
+
+

+ Automatically sets focus to the adjacent container. If sibling is + specified, the command will focus the exact sibling container, + including non-leaf containers like split containers. Otherwise, it is + an automatic version of focus left|right|up|down in the orientation + of the parent container. +

+
+
+floating +
+
+

+ Sets focus to the last focused floating container. +

+
+
+tiling +
+
+

+ Sets focus to the last focused tiling container. +

+
+
+mode_toggle +
+
+

+ Toggles between floating/tiling containers. +

+
+
+output +
+
+

+ Followed by a direction or an output name, this will focus the + corresponding output. +

+
+
+

Syntax:

+
+
+
<criteria> focus
+<criteria> focus workspace
+focus left|right|down|up
+focus parent|child|floating|tiling|mode_toggle
+focus next|prev [sibling]
+focus output left|right|down|up|current|primary|nonprimary|next|<output1> [output2]…
+
+

Examples:

+
+
+
# Focus firefox
+bindsym $mod+F1 [class="Firefox"] focus
+
+# Focus the workspace where firefox is, without necessarily focusing firefox
+# itself.
+bindsym $mod+x [class="Firefox"] focus workspace
+
+# Focus container on the left, bottom, top, right
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+
+# Focus parent container
+bindsym $mod+u focus parent
+
+# Focus last floating/tiling container
+bindsym $mod+g focus mode_toggle
+
+# Focus the next output (effectively toggles when you only have two outputs)
+bindsym $mod+x focus output next
+
+# Focus the output right to the current one
+bindsym $mod+x focus output right
+
+# Focus the big output
+bindsym $mod+x focus output HDMI-2
+
+# Focus the primary output
+bindsym $mod+x focus output primary
+
+# Cycle focus through non-primary outputs
+bindsym $mod+x focus output nonprimary
+
+# Cycle focus between outputs VGA1 and LVDS1 but not DVI0
+bindsym $mod+x focus output VGA1 LVDS1
+
+

Note that you might not have a primary output configured yet. To do so, run:

+
+
+
xrandr --output <output> --primary
+
+
+
+

Moving containers

+

Use the move command to move a container.

+

Syntax:

+
+
+
# Moves the container into the given direction.
+# The optional pixel argument specifies how far the
+# container should be moved if it is floating and
+# defaults to 10 pixels. The optional ppt argument
+# means "percentage points", and if specified it indicates
+# how many points the container should be moved if it is
+# floating rather than by a pixel value.
+move <left|right|down|up> [<amount> [px|ppt]]
+
+# Moves the container to the specified pos_x and pos_y
+# coordinates on the screen.
+move position <pos_x> [px|ppt] <pos_y> [px|ppt]
+
+# Moves the container to the center of the screen.
+# If 'absolute' is used, it is moved to the center of
+# all outputs.
+move [absolute] position center
+
+# Moves the container to the current position of the
+# mouse cursor. Only affects floating containers.
+move position mouse
+
+

Examples:

+
+
+
# Move container to the left, bottom, top, right
+bindsym $mod+j move left
+bindsym $mod+k move down
+bindsym $mod+l move up
+bindsym $mod+semicolon move right
+
+# Move container, but make floating containers
+# move more than the default
+bindsym $mod+j move left 20 px
+
+# Move floating container to the center of all outputs
+bindsym $mod+c move absolute position center
+
+# Move container to the current position of the cursor
+bindsym $mod+m move position mouse
+
+
+
+

Swapping containers

+

Two containers can be swapped (i.e., move to each other’s position) by using +the swap command. They will assume the position and geometry of the container +they are swapped with.

+

The first container to participate in the swapping can be selected through the +normal command criteria process with the focused window being the usual +fallback if no criteria are specified. The second container can be selected +using one of the following methods:

+
+
+id +
+
+

+The X11 window ID of a client window. +

+
+
+con_id +
+
+

+The i3 container ID of a container. +

+
+
+mark +
+
+

+A container with the specified mark, see [vim_like_marks]. +

+
+
+

Note that swapping does not work with all containers. Most notably, swapping +containers that have a parent-child relationship to one another does not work.

+

Syntax:

+
+
+
swap container with id|con_id|mark <arg>
+
+

Examples:

+
+
+
# Swaps the focused container with the container marked »swapee«.
+swap container with mark swapee
+
+# Swaps container marked »A« and »B«
+[con_mark="^A$"] swap container with mark B
+
+
+
+

Sticky floating windows

+

If you want a window to stick to the glass, i.e., have it stay on screen even +if you switch to another workspace, you can use the sticky command. For +example, this can be useful for notepads, a media player or a video chat +window.

+

Note that while any window can be made sticky through this command, it will +only take effect if the window is floating.

+

Syntax:

+
+
+
sticky enable|disable|toggle
+
+

Examples:

+
+
+
# make a terminal sticky that was started as a notepad
+for_window [instance=notepad] sticky enable
+
+
+
+

Changing (named) workspaces/moving to workspaces

+

To change to a specific workspace, use the workspace command, followed by the +number or name of the workspace. Pass the optional flag +--no-auto-back-and-forth to disable [workspace_auto_back_and_forth] for this +specific call only.

+

To move containers to specific workspaces, use move container to workspace.

+

You can also switch to the next and previous workspace with the commands +workspace next and workspace prev, which is handy, for example, if you have +workspace 1, 3, 4 and 9 and you want to cycle through them with a single key +combination. To restrict those to the current output, use workspace +next_on_output and workspace prev_on_output. Similarly, you can use move +container to workspace next, move container to workspace prev to move a +container to the next/previous workspace and move container to workspace current +(the last one makes sense only when used with criteria).

+

workspace next cycles through either numbered or named workspaces. But when it +reaches the last numbered/named workspace, it looks for named workspaces after +exhausting numbered ones and looks for numbered ones after exhausting named ones.

+

See [move_to_outputs] for how to move a container/workspace to a different +RandR output.

+

Workspace names are parsed as Pango +markup by i3bar.

+

To switch back to the previously focused workspace, use workspace +back_and_forth; likewise, you can move containers to the previously focused +workspace using move container to workspace back_and_forth.

+

Syntax:

+
+
+
workspace next|prev|next_on_output|prev_on_output
+workspace back_and_forth
+workspace [--no-auto-back-and-forth] <name>
+workspace [--no-auto-back-and-forth] number <name>
+
+move [--no-auto-back-and-forth] [window|container] [to] workspace <name>
+move [--no-auto-back-and-forth] [window|container] [to] workspace number <name>
+move [window|container] [to] workspace prev|next|current
+
+

Examples:

+
+
+
bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3:<span foreground="red">vim</span>
+...
+
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+...
+
+# switch between the current and the previously focused one
+bindsym $mod+b workspace back_and_forth
+bindsym $mod+Shift+b move container to workspace back_and_forth
+
+# move the whole workspace to the next output
+bindsym $mod+x move workspace to output right
+
+# move firefox to current workspace
+bindsym $mod+F1 [class="Firefox"] move workspace current
+
+
+

Named workspaces

+

Workspaces are identified by their name. So, instead of using numbers in the +workspace command, you can use an arbitrary name:

+

Example:

+
+
+
bindsym $mod+1 workspace mail
+...
+
+

If you want the workspace to have a number and a name, just prefix the +number, like this:

+

Example:

+
+
+
bindsym $mod+1 workspace 1: mail
+bindsym $mod+2 workspace 2: www
+...
+
+

Note that the workspace will really be named "1: mail". i3 treats workspace +names beginning with a number in a slightly special way. Normally, named +workspaces are ordered the way they appeared. When they start with a number, i3 +will order them numerically. Also, you will be able to use workspace number 1 +to switch to the workspace which begins with number 1, regardless of which name +it has. This is useful in case you are changing the workspace’s name +dynamically. To combine both commands you can use workspace number 1: mail to +specify a default name if there’s currently no workspace starting with a "1".

+
+
+

Renaming workspaces

+

You can rename workspaces. This might be useful to start with the default +numbered workspaces, do your work, and rename the workspaces afterwards to +reflect what’s actually on them. You can also omit the old name to rename +the currently focused workspace. This is handy if you want to use the +rename command with i3-input.

+

Syntax:

+
+
+
rename workspace <old_name> to <new_name>
+rename workspace to <new_name>
+
+

Examples:

+
+
+
i3-msg 'rename workspace 5 to 6'
+i3-msg 'rename workspace 1 to "1: www"'
+i3-msg 'rename workspace "1: www" to "10: www"'
+i3-msg 'rename workspace to "2: mail"'
+bindsym $mod+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
+
+

If you want to rename workspaces on demand while keeping the navigation stable, +you can use a setup like this:

+

Example:

+
+
+
bindsym $mod+1 workspace number "1: www"
+bindsym $mod+2 workspace number "2: mail"
+...
+
+

If a workspace does not exist, the command workspace number "1: mail" will +create workspace "1: mail".

+

If a workspace with number 1 already exists, the command will switch to this +workspace and ignore the text part. So even when the workspace has been renamed +"1: web", the above command will still switch to it. The command workspace 1 +will however create and move to a new workspace "1" alongside the existing +"1: mail" workspace.

+
+
+
+

Moving workspaces to a different screen

+

See [move_to_outputs] for how to move a container/workspace to a different +RandR output.

+
+
+

Moving containers/workspaces to RandR outputs

+

To move a container to another RandR output (addressed by names like LVDS1 or +VGA1) or to a RandR output identified by a specific direction (like left, +right, up or down), there are two commands:

+

Syntax:

+
+
+
move container to output left|right|down|up|current|primary|nonprimary|next|<output1> [output2]…
+move workspace to output left|right|down|up|current|primary|nonprimary|next|<output1> [output2]…
+
+

Examples:

+
+
+
# Move the current workspace to the next output
+# (effectively toggles when you only have two outputs)
+bindsym $mod+x move workspace to output next
+
+# Cycle this workspace between outputs VGA1 and LVDS1 but not DVI0
+bindsym $mod+x move workspace to output VGA1 LVDS1
+
+# Put this window on the presentation output.
+bindsym $mod+x move container to output VGA1
+
+# Put this window on the primary output.
+bindsym $mod+x move container to output primary
+
+

If you specify more than one output, the container/workspace is cycled through +them: If it is already in one of the outputs of the list, it will move to the +next output in the list. If it is in an output not in the list, it will move to +the first specified output. Non-existing outputs are skipped.

+

Note that you might not have a primary output configured yet. To do so, run:

+
+
+
xrandr --output <output> --primary
+
+
+
+

Moving containers/windows to marks

+

To move a container to another container with a specific mark (see [vim_like_marks]), +you can use the following command.

+

The window will be moved right after the marked container in the tree, i.e., it ends up +in the same position as if you had opened a new window when the marked container was +focused. If the mark is on a split container, the window will appear as a new child +after the currently focused child within that container.

+

Syntax:

+
+
+
move window|container to mark <mark>
+
+

Example:

+
+
+
for_window [instance="tabme"] move window to mark target
+
+
+
+

Resizing containers/windows

+

If you want to resize containers/windows using your keyboard, you can use the +resize command:

+

Syntax:

+
+
+
resize grow|shrink <direction> [<px> px [or <ppt> ppt]]
+resize set [width] <width> [px | ppt]
+resize set height <height> [px | ppt]
+resize set [width] <width> [px | ppt] [height] <height> [px | ppt]
+
+

Direction can either be one of up, down, left or right. Or you can be +less specific and use width or height, in which case i3 will take/give space +from all the other containers. The optional pixel argument specifies by how many +pixels a container should be grown or shrunk (the default is 10 pixels). The +optional ppt argument means "percentage points", and if specified it indicates +that a tiling container should be grown or shrunk by that many points, instead +of by the px value.

+

Note about resize set: a value of 0 for <width> or <height> means "do not +resize in this direction".

+

It is recommended to define bindings for resizing in a dedicated binding mode. +See [binding_modes] and the example in the i3 +default config for more +context.

+

Example:

+
+
+
for_window [class="urxvt"] resize set 640 480
+
+
+
+

Jumping to specific windows

+

Often when in a multi-monitor environment, you want to quickly jump to a +specific window. For example, while working on workspace 3 you might want to +jump to your mail client to email your boss that you’ve achieved some +important goal. Instead of figuring out how to navigate to your mail client, +it would be more convenient to have a shortcut. You can use the focus command +with criteria for that.

+

Syntax:

+
+
+
[class="class"] focus
+[title="title"] focus
+
+

Examples:

+
+
+
# Get me to the next open VIM instance
+bindsym $mod+a [class="urxvt" title="VIM"] focus
+
+
+
+

VIM-like marks (mark/goto)

+

This feature is like the jump feature: It allows you to directly jump to a +specific window (this means switching to the appropriate workspace and setting +focus to the windows). However, you can directly mark a specific window with +an arbitrary label and use it afterwards. You can unmark the label in the same +way, using the unmark command. If you don’t specify a label, unmark removes all +marks. You do not need to ensure that your windows have unique classes or +titles, and you do not need to change your configuration file.

+

As the command needs to include the label with which you want to mark the +window, you cannot simply bind it to a key. i3-input is a tool created +for this purpose: It lets you input a command and sends the command to i3. It +can also prefix this command and display a custom prompt for the input dialog.

+

The additional --toggle option will remove the mark if the window already has +this mark or add it otherwise. Note that you might need to use this in +combination with --add (see below) as any other marks will otherwise be +removed.

+

The --replace flag causes i3 to remove any existing marks, which is also the +default behavior. You can use the --add flag to put more than one mark on a +window.

+

Refer to [show_marks] if you don’t want marks to be shown in the window decoration.

+

Syntax:

+
+
+
mark [--add|--replace] [--toggle] <identifier>
+[con_mark="identifier"] focus
+unmark <identifier>
+
+

You can use i3-input to prompt for a mark name, then use the mark +and focus commands to create and jump to custom marks:

+

Examples:

+
+
+
# read 1 character and mark the current window with this character
+bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '
+
+# read 1 character and go to the window with the character
+bindsym $mod+g exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
+
+

Alternatively, if you do not want to mess with i3-input, you could create +separate bindings for a specific set of labels and then only use those labels:

+

Example (in a terminal):

+
+
+
# marks the focused container
+mark irssi
+
+# focus the container with the mark "irssi"
+'[con_mark="irssi"] focus'
+
+# remove the mark "irssi" from whichever container has it
+unmark irssi
+
+# remove all marks on all firefox windows
+[class="(?i)firefox"] unmark
+
+
+
+

Window title format

+

By default, i3 will simply print the X11 window title. Using title_format, +this can be customized by setting the format to the desired output. This +directive supports Pango markup and the +following placeholders which will be replaced:

+
+
+%title +
+
+

+ For normal windows, this is the X11 window title (_NET_WM_NAME or WM_NAME + as fallback). When used on containers without a window (e.g., a split + container inside a tabbed/stacked layout), this will be the tree + representation of the container (e.g., "H[xterm xterm]"). +

+
+
+%class +
+
+

+ The X11 window class (second part of WM_CLASS). This corresponds to the + class criterion, see [command_criteria]. +

+
+
+%instance +
+
+

+ The X11 window instance (first part of WM_CLASS). This corresponds to the + instance criterion, see [command_criteria]. +

+
+
+%machine +
+
+

+ The X11 name of the machine (WM_CLIENT_MACHINE). This corresponds to the + machine criterion, see [command_criteria]. +

+
+
+

Using the [for_window] directive, you can set the title format for any window +based on [command_criteria].

+

Syntax:

+
+
+
title_format <format>
+
+

Examples:

+
+
+
# give the focused window a prefix
+bindsym $mod+p title_format "Important | %title"
+
+# print all window titles bold
+for_window [class=".*"] title_format "<b>%title</b>"
+
+# print window titles of firefox windows red
+for_window [class="(?i)firefox"] title_format "<span foreground='red'>%title</span>"
+
+
+
+

Window title icon

+

By default, i3 does not display the window icon in the title bar.

+

Starting with i3 v4.20, you can optionally enable window icons either for +specific windows or for all windows (using the [for_window] directive).

+

Syntax:

+
+
+
title_window_icon <yes|no|toggle>
+title_window_icon <padding|toggle> <px>
+
+

Examples:

+
+
+
# show the window icon for the focused window to make it stand out
+bindsym $mod+p title_window_icon on
+
+# enable window icons for all windows
+for_window [all] title_window_icon on
+
+# enable window icons for all windows with extra horizontal padding
+for_window [all] title_window_icon padding 3px
+
+
+
+

Changing border style

+

To change the border of the current client, you can use border normal to use the normal +border (including window title), border pixel 1 to use a 1-pixel border (no window title) +and border none to make the client borderless.

+

There is also border toggle which will toggle the different border styles. The +optional pixel argument can be used to specify the border width when switching +to the normal and pixel styles.

+

Note that "pixel" refers to logical pixel. On HiDPI displays, a logical pixel +is represented by multiple physical pixels, so pixel 1 might not +necessarily translate into a single pixel row wide border.

+

Syntax:

+
+
+
border normal|pixel|toggle [<n>]
+border none
+
+# legacy syntax, equivalent to "border pixel 1"
+border 1pixel
+
+

Examples:

+
+
+
# use window title, but no border
+bindsym $mod+t border normal 0
+# use no window title and a thick border
+bindsym $mod+y border pixel 3
+# use window title *and* a thick border
+bindsym $mod+y border normal 3
+# use neither window title nor border
+bindsym $mod+u border none
+# no border on VLC
+for_window [class="vlc"] border none
+
+

To change the default for all windows, see the directive [default_border].

+
+
+

Enabling shared memory logging

+

As described in https://i3wm.org/docs/debugging.html, i3 can log to a shared +memory buffer, which you can dump using i3-dump-log. The shmlog command +allows you to enable or disable the shared memory logging at runtime.

+

Note that when using shmlog <size_in_bytes>, the current log will be +discarded and a new one will be started.

+

Syntax:

+
+
+
shmlog <size_in_bytes>
+shmlog on|off|toggle
+
+

Examples:

+
+
+
# Enable/disable logging
+bindsym $mod+x shmlog toggle
+
+# or, from a terminal:
+# increase the shared memory log buffer to 50 MiB
+i3-msg shmlog $((50*1024*1024))
+
+
+
+

Enabling debug logging

+

The debuglog command allows you to enable or disable debug logging at +runtime. Debug logging is much more verbose than non-debug logging. This +command does not activate shared memory logging (shmlog), and as such is most +likely useful in combination with the above-described [shmlog] command.

+

Syntax:

+
+
+
debuglog on|off|toggle
+
+

Examples:

+
+
+
# Enable/disable logging
+bindsym $mod+x debuglog toggle
+
+
+
+

Reloading/Restarting/Exiting

+

You can make i3 reload its configuration file with reload. You can also +restart i3 inplace with the restart command to get it out of some weird state +(if that should ever happen) or to perform an upgrade without having to restart +your X session. To exit i3 properly, you can use the exit command, +however you don’t need to (simply killing your X session is fine as well).

+

Examples:

+
+
+
bindsym $mod+Shift+r restart
+bindsym $mod+Shift+w reload
+bindsym $mod+Shift+e exit
+
+
+
+

Scratchpad

+

There are two commands to use any existing window as scratchpad window. move +scratchpad will move a window to the scratchpad workspace. This will make it +invisible until you show it again. There is no way to open that workspace. +Instead, when using scratchpad show, the window will be shown again, as a +floating window, centered on your current workspace (using scratchpad show on +a visible scratchpad window will make it hidden again, so you can have a +keybinding to toggle). Note that this is just a normal floating window, so if +you want to "remove it from scratchpad", you can simple make it tiling again +(floating toggle).

+

As the name indicates, this is useful for having a window with your favorite +editor always at hand. However, you can also use this for other permanently +running applications which you don’t want to see all the time: Your music +player, alsamixer, maybe even your mail client…?

+

Syntax:

+
+
+
move scratchpad
+
+scratchpad show
+
+

Examples:

+
+
+
# Make the currently focused window a scratchpad
+bindsym $mod+Shift+minus move scratchpad
+
+# Show the first scratchpad window
+bindsym $mod+minus scratchpad show
+
+# Show the sup-mail scratchpad window, if any.
+bindsym mod4+s [title="^Sup ::"] scratchpad show
+
+
+
+

Nop

+

There is a no operation command nop which allows you to override default +behavior. This can be useful for, e.g., disabling a focus change on clicks with +the middle mouse button.

+

The optional comment argument is ignored, but will be printed to the log file +for debugging purposes.

+

Syntax:

+
+
+
nop [<comment>]
+
+

Example:

+
+
+
# Disable focus change for clicks on titlebars
+# with the middle mouse button
+bindsym button2 nop
+
+
+
+

i3bar control

+

There are two options in the configuration of each i3bar instance that can be +changed during runtime by invoking a command through i3. The commands bar +hidden_state and bar mode allow setting the current hidden_state +respectively mode option of each bar. It is also possible to toggle between +hide state and show state as well as between dock mode and hide mode. Each +i3bar instance can be controlled individually by specifying a bar_id, if none +is given, the command is executed for all bar instances.

+

Syntax:

+
+
+
bar hidden_state hide|show|toggle [<bar_id>]
+
+bar mode dock|hide|invisible|toggle [<bar_id>]
+
+

Examples:

+
+
+
# Toggle between hide state and show state
+bindsym $mod+m bar hidden_state toggle
+
+# Toggle between dock mode and hide mode
+bindsym $mod+n bar mode toggle
+
+# Set the bar instance with id 'bar-1' to switch to hide mode
+bindsym $mod+b bar mode hide bar-1
+
+# Set the bar instance with id 'bar-1' to always stay hidden
+bindsym $mod+Shift+b bar mode invisible bar-1
+
+
+
+

Changing gaps

+

Gaps can be modified at runtime with the following command syntax:

+

Syntax:

+
+
+
# Inner gaps: space between two adjacent windows (or split containers).
+gaps inner current|all set|plus|minus|toggle <gap_size_in_px>
+# Outer gaps: space along the screen edges.
+gaps outer|horizontal|vertical|top|right|bottom|left current|all set|plus|minus|toggle <gap_size_in_px>
+
+

With current or all you can change gaps either for only the currently +focused or all currently existing workspaces (note that this does not affect the +global configuration itself).

+

Examples:

+
+
+
gaps inner all set 20
+gaps outer current plus 5
+gaps horizontal current plus 40
+gaps outer current toggle 60
+
+for_window [class="vlc"] gaps inner 0, gaps outer 0
+
+

To change the gaps for all windows, see the [gaps] configuration directive.

+
+
+
+
+

Multiple monitors

+
+

As you can see in the goal list on the website, i3 was specifically developed +with support for multiple monitors in mind. This section will explain how to +handle multiple monitors.

+

When you have only one monitor, things are simple. You usually start with +workspace 1 on your monitor and open new ones as you need them.

+

When you have more than one monitor, each monitor will get an initial +workspace. The first monitor gets 1, the second gets 2 and a possible third +would get 3. When you switch to a workspace on a different monitor, i3 will +switch to that monitor and then switch to the workspace. This way, you don’t +need shortcuts to switch to a specific monitor, and you don’t need to remember +where you put which workspace. New workspaces will be opened on the currently +active monitor. It is not possible to have a monitor without a workspace.

+

The idea of making workspaces global is based on the observation that most +users have a very limited set of workspaces on their additional monitors. +They are often used for a specific task (browser, shell) or for monitoring +several things (mail, IRC, syslog, …). Thus, using one workspace on one monitor +and "the rest" on the other monitors often makes sense. However, as you can +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 +screen by changing your configuration (using modes, for example).

+
+

Configuring your monitors

+

To help you get going if you have never used multiple monitors before, here is +a short overview of the xrandr options which will probably be of interest to +you. It is always useful to get an overview of the current screen configuration. +Just run "xrandr" and you will get an output like the following:

+
+
+
$ xrandr
+Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
+VGA1 disconnected (normal left inverted right x axis y axis)
+LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
+   1280x800       60.0*+   50.0
+   1024x768       85.0     75.0     70.1     60.0
+   832x624        74.6
+   800x600        85.1     72.2     75.0     60.3     56.2
+   640x480        85.0     72.8     75.0     59.9
+   720x400        85.0
+   640x400        85.1
+   640x350        85.1
+
+

Several things are important here: You can see that LVDS1 is connected (of +course, it is the internal flat panel) but VGA1 is not. If you have a monitor +connected to one of the ports but xrandr still says "disconnected", you should +check your cable, monitor or graphics driver.

+

The maximum resolution you can see at the end of the first line is the maximum +combined resolution of your monitors. By default, it is usually too low and has +to be increased by editing /etc/X11/xorg.conf.

+

So, say you connected VGA1 and want to use it as an additional screen:

+
+
+
xrandr --output VGA1 --auto --left-of LVDS1
+
+

This command makes xrandr try to find the native resolution of the device +connected to VGA1 and configures it to the left of your internal flat panel. +When running "xrandr" again, the output looks like this:

+
+
+
$ xrandr
+Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 8192 x 8192
+VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
+   1280x1024      60.0*+   75.0
+   1280x960       60.0
+   1152x864       75.0
+   1024x768       75.1     70.1     60.0
+   832x624        74.6
+   800x600        72.2     75.0     60.3     56.2
+   640x480        72.8     75.0     66.7     60.0
+   720x400        70.1
+LVDS1 connected 1280x800+1280+0 (normal left inverted right x axis y axis) 261mm x 163mm
+   1280x800       60.0*+   50.0
+   1024x768       85.0     75.0     70.1     60.0
+   832x624        74.6
+   800x600        85.1     72.2     75.0     60.3     56.2
+   640x480        85.0     72.8     75.0     59.9
+   720x400        85.0
+   640x400        85.1
+   640x350        85.1
+
+

Please note that i3 uses exactly the same API as xrandr does, so it will see +only what you can see in xrandr.

+

See also [presentations] for more examples of multi-monitor setups.

+
+
+

Interesting configuration for multi-monitor environments

+

There are several things to configure in i3 which might be interesting if you +have more than one monitor:

+
    +
  1. +

    +You can specify which workspace should be put on which screen. This + allows you to have a different set of workspaces when starting than just + 1 for the first monitor, 2 for the second and so on. See + [workspace_screen]. +

    +
  2. +
  3. +

    +If you want some applications to generally open on the bigger screen + (MPlayer, Firefox, …), you can assign them to a specific workspace, see + [assign_workspace]. +

    +
  4. +
  5. +

    +If you have many workspaces on many monitors, it might get hard to keep + track of which window you put where. Thus, you can use vim-like marks to + quickly switch between windows. See [vim_like_marks]. +

    +
  6. +
  7. +

    +For information on how to move existing workspaces between monitors, + see [move_to_outputs]. +

    +
  8. +
+
+
+
+
+

i3 and the rest of your software world

+
+
+

Displaying a status line

+

A very common thing amongst users of exotic window managers is a status line at +some corner of the screen. It is an often superior replacement to the widget +approach you have in the task bar of a traditional desktop environment.

+

If you don’t already have your favorite way of generating such a status line +(self-written scripts, conky, …), then i3status is the recommended tool for +this task. It was written in C with the goal of using as few syscalls as +possible to reduce the time your CPU is woken up from sleep states. Because +i3status only spits out text, you need to combine it with some other tool, like +i3bar. See [status_command] for how to display i3status in i3bar.

+

Regardless of which application you use to display the status line, you +want to make sure that it registers as a dock window using EWMH hints. i3 will +position the window either at the top or at the bottom of the screen, depending +on which hint the application sets. With i3bar, you can configure its position, +see [i3bar_position].

+
+
+

Giving presentations (multi-monitor)

+

When giving a presentation, you typically want the audience to see what you see +on your screen and then go through a series of slides (if the presentation is +simple). For more complex presentations, you might want to have some notes +which only you can see on your screen, while the audience can only see the +slides.

+
+

Case 1: everybody gets the same output

+

This is the simple case. You connect your computer to the video projector, +turn on both (computer and video projector) and configure your X server to +clone the internal flat panel of your computer to the video output:

+
+
+
xrandr --output VGA1 --mode 1024x768 --same-as LVDS1
+
+

i3 will then use the lowest common subset of screen resolutions, the rest of +your screen will be left untouched (it will show the X background). So, in +our example, this would be 1024x768 (my notebook has 1280x800).

+
+
+

Case 2: you can see more than your audience

+

This case is a bit harder. First of all, you should configure the VGA output +somewhere near your internal flat panel, say right of it:

+
+
+
xrandr --output VGA1 --mode 1024x768 --right-of LVDS1
+
+

Now, i3 will put a new workspace (depending on your settings) on the new screen +and you are in multi-monitor mode (see [multi_monitor]).

+

Because i3 is not a compositing window manager, there is no ability to +display a window on two screens at the same time. Instead, your presentation +software needs to do this job (that is, open a window on each screen).

+
+
+
+

High-resolution displays (aka HIDPI displays)

+

See https://wiki.archlinux.org/index.php/HiDPI for details on how to enable +scaling in various parts of the Linux desktop. i3 will read the desired DPI from +the Xft.dpi property. The property defaults to 96 DPI, so to achieve 200% +scaling, you’d set Xft.dpi: 192 in ~/.Xresources.

+

If you are a long-time i3 user who just got a new monitor, double-check that:

+
    +
  • +

    +You are using a scalable font (starting with “pango:”) in your i3 config. +

    +
  • +
  • +

    +You are using a terminal emulator which supports scaling. You could + temporarily switch to gnome-terminal, which is known to support scaling out of + the box, until you figure out how to adjust the font size in your favorite + terminal emulator. +

    +
  • +
+
+
+
+
+

+ + + diff --git a/docs/wsbar.html b/docs/wsbar.html new file mode 100644 index 0000000..6734571 --- /dev/null +++ b/docs/wsbar.html @@ -0,0 +1,134 @@ + + + + + + +i3: External workspace bars + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+
+

i3 comes with i3bar by default, a simple bar that is sufficient for most users. +In case you are unhappy with it, this document explains how to use a different, +external workspace bar. Note that we do not provide support for external +programs.

+
+
+
+

Internal and external bars

+
+

The internal workspace bar of i3 is meant to be a reasonable default so that +you can use i3 without having too much hassle when setting it up. It is quite +simple and intended to stay this way.

+
+
+
+

dock mode

+
+

You typically want to see the same workspace bar on every workspace on a +specific screen. Also, you don’t want to place the workspace bar somewhere +in your layout by hand. This is where dock mode comes in: When a program sets +the appropriate hint (_NET_WM_WINDOW_TYPE_DOCK), it will be managed in dock +mode by i3. That means it will be placed at the bottom or top of the screen +(while other edges of the screen are possible in the NetWM standard, this is +not yet implemented in i3), it will not overlap any other window and it will be +on every workspace for the specific screen it was placed on initially.

+
+
+
+

The IPC interface

+
+

In the context of using an external workspace bar, the IPC interface needs to +provide the bar program with the current workspaces and output (as in VGA-1, +LVDS-1, …) configuration. In the other direction, the program has to be able +to switch to specific workspaces.

+

By default, the IPC interface is enabled and you can get the path to the socket +by calling i3 --get-socketpath.

+

To learn more about the protocol which is used for IPC, see docs/ipc.

+
+
+
+

Output changes (on-the-fly)

+
+

i3 implements the RandR API and can handle changing outputs quite well. So, an +external workspace bar implementation needs to make sure that when you change +the resolution of any of your screens (or enable/disable an output), the bars +will be adjusted properly.

+
+
+
+

i3-wsbar, an example implementation

+
+

i3-wsbar used to be the reference implementation before we had i3bar. +Nowadays, it is not shipped with release tarballs, but you can still get it at +https://github.com/i3/i3/blob/next/contrib/i3-wsbar

+
+

The big picture

+

The most common reason to use an external workspace bar is to integrate system +information such as what i3status or conky provide into the workspace bar. +So, we have i3status or a similar program, which only provides +text output (formatted in some way). To display this text nicely on the screen, +there are programs such as dzen2, xmobar and similar. We will stick to dzen2 +from here on. So, we have the output of i3status, which needs to go into dzen2 +somehow. But we also want to display the list of workspaces. i3-wsbar takes +input on stdin, combines it with a formatted workspace list and pipes it to +dzen2.

+

Please note that i3-wsbar does not print its output to stdout. Instead, it +launches the dzen2 instances on its own. This is necessary to handle changes +in the available outputs (to place a new dzen2 on a new screen for example).

+

+ +Overview + +

+
+
+

Running i3-wsbar

+

The most simple usage of i3-wsbar looks like this:

+
+
+
i3-wsbar -c "dzen2 -x %x -dock"
+
+

The %x in the command name will be replaced by the X position of the output +for which this workspace bar is running. i3 will automatically place the +workspace bar on the correct output when dzen2 is started in dock mode. The +bar which you will see should look exactly like the internal bar of i3.

+

To actually get a benefit, you want to give i3-wsbar some input:

+
+
+
i3status | i3-wsbar -c "dzen2 -x %x -dock"
+
+
+
+
+
+

+ + + diff --git a/docs/wsbar.png b/docs/wsbar.png new file mode 100644 index 0000000000000000000000000000000000000000..0789dec532bea9c358c782f14f6c95a0cece5319 GIT binary patch literal 14339 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