From a81d18174dd6ba5f6526e7ce95499da292d61d6c Mon Sep 17 00:00:00 2001 From: krolyxon Date: Sat, 11 Jun 2022 00:29:21 +0530 Subject: [PATCH] added fibonacci layout --- config.def.h | 5 +- config.h | 5 +- dwm | Bin 75248 -> 79440 bytes fibonacci.c | 66 +++++++++++++ patch/dwm-fibonacci-20200418-c82db69.diff | 114 ++++++++++++++++++++++ 5 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 fibonacci.c create mode 100644 patch/dwm-fibonacci-20200418-c82db69.diff diff --git a/config.def.h b/config.def.h index 3c80a7d..67c43d6 100644 --- a/config.def.h +++ b/config.def.h @@ -40,11 +40,14 @@ static const int nmaster = 1; /* number of clients in master area */ static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ +#include "fibonacci.c" static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ { "[M]", monocle }, + { "[@]", spiral }, + { "[\\]", dwindle }, + { "><>", NULL }, /* no layout function means floating behavior */ }; /* key definitions */ diff --git a/config.h b/config.h index 3c80a7d..67c43d6 100644 --- a/config.h +++ b/config.h @@ -40,11 +40,14 @@ static const int nmaster = 1; /* number of clients in master area */ static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ +#include "fibonacci.c" static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ { "[M]", monocle }, + { "[@]", spiral }, + { "[\\]", dwindle }, + { "><>", NULL }, /* no layout function means floating behavior */ }; /* key definitions */ diff --git a/dwm b/dwm index 70ea2f9cc0fd8a6b68973b70bc96a1613fe38124..e50ecbb89259190e88b3ba5578de3563e83b66b5 100755 GIT binary patch delta 21023 zcmZ{s34Baf`^WE{7$Qg}2niyIB=#k-R6u8 zRsL41psl5{?smZu{AsfOZOB2_V~>*H)}>-k$q z#hSN{MMjK&F5vymt0y!Zqn2#*iLS3cC^;Ok+1F__&{yPAsvP1bRd2Y#3v`}l;wMW) z`V12fm?(IriJ#Wf=Lqgpj0#p{hzz-=3}^HVYfU_TyGUPP;@|4&x0v`?J$=z5+^Hz% z^bBQ>I27fg&NUPNQRm^mi3S)QsMdK~6ThnS7!$uv9Q7-4CdVy3L!yb_)4AQmy*hW8 zxR1V$Qcb*$&eOoD{)bagPj?iUGR#>>sT8Hi#2c&^yx7Fw&KJDY#G`ax@i*u7D}(e3 zs{VHH680?>1^Ma^h%wYwy&#*3fBC#fA8z8|TLh0W@w|1SekIQ2cyqqUkY?iE)q<}z z@wfDH3QT;^B9UIZF09c3Lpz)|9(C-@6*}`Dc#er1PfLM`&(M2ZY~oMliSkQz?lf9t zdmtQ@rVKu>2wr32U2_Gu{VA+b&RZ`D9b@7?1%f*sVT?qLi3e^H4Z3aOReuR?yD6+O5_>la9b@8YD+G5Cr*&gw zIIRy+rYVEL3;ux@n|OD9=q z9VY&QzE(2-ffpEDuV2a1ADd#sA?km~D@}Z$K4mo~9=A;Iz@0}sVDK0dcNz|d$zk+3 z)5ML(wZO!UktjBC<8iGtalL$}Qe$!$71-`R+5@A47!x-taG3bR4w$%6egWqge`D^A z3W`k`j0!4E+^C?&#ElAU_x_;+GN<`BDsadSaHE1u6E`X-F!6^SFma>&N)xB@`TDCd zIgAQy_y3^>CT>*VF!6^SFma>&g8TaO|No}Il)h@Kl2WSY29L4k=soB|U!%C9u>OU`kkBI6J-T3W2fbebtciOy?GJadmI=eCJ| zq^DQ(Q_v`Xug;yuX=gZ$ij8B_;AMJ-L{mY&dR$;P@nD@hOx&jPRKfp_{}tVlX39`= zUGyx&#Bb|7)5HVzi1axo-bUxSk8sR?Z{1OLRb-^sw?J{ruN4xHlz64YJ4^hm#Jfqn zO5zI)PV28oZ;=)E%M1r>aE%akU{r~ROWY#ywi4H06}dM?;`+-W=W*bC{Zj>0x$#Mq zGSFxkAG^dUkMVIx+*mKev{2>IDA0}~MiHGa!kGpM>BSOj$Eb&$n z50`k9#M??dTH-MhZ~c&C{^KM^n}-fXNtAe7iQ6UKPT~%Ux0iUT#5+hljX1488lsMp zBSXs2N#dCj?;`OWiN{DhSK_e}Un_BESIJQzIl4=Hi^O|Kyh!4YNqncodrG`m;&FnD z=dV<9#7h~;>6i9aRrOo=-ro+I&L63>(8r3@Jo zpCj>1iDybYN8)oOo-6Tr5_hhZ9P=edfyA>UzD45M5-*bYLW%E`c#g!21yARX-y+FT zDrHzK@iK`ok$8o~pObi{#Mz}&ZA!{wKKI|0Sl{`9qS#lJWm&wH_Pis$CP2}(CztDYNYjJh$>e$mXrJF7c=jZ6y^b^m&7K&pSCFP) z*%Qw7V$ukbor=fC!8`&K9eWh6XOIpcUGo4SdJ<_H=_;h2fX$o>ZX29Qpx$aAvLP<{%*S+4y{AW-M z=_%l#D6*KI4Unct%TvYm z7}6ABc`CUcPI@@$GOh=c9znX8>%OEZkn$9fc1HIiKoOLufG6lmnj$ApF4yfzQ^e%S zC<5}>c!F!B zDe&-O)mHwLDKO~EwV^E-v2@3CIH z>v!#AY}7ctvxDsJ9!oxAk@l$AkNJ6?UEiLckcctR0(qW<_Ba`|JJ{9i?u1rIvroal z(XhL$r$1&n_6X-kDDkG&0M9(~-3&q6T_Wu{;kk}yL3^JrnJ6gMt2MyEfTH%pZJ)fR z3Qe`Uj=8K(s{T+_9lOsOjhNeEbK8TH-H9#iuAtdS>}rsTB*`x85EyM)U9<#YLOQzD z!|@>%avY6%1_`w>evs%J^&|_kt98Vpx4W%La2~hTL3TQQ?e4@lccQP$dX4hrV>3pp zTH`+U42t|0<+D?-+zEjnv898WI#CIC^@R&nEuw6VMT!fCZ;|k&lkYYy_ zofE!v^3nc>hK3lv?}U%a(Yg!YUwd%g@ZNtdoC)L%7S2n1^pQCwe6i%aj~xJo9yNTQ z312Ars)TPld4a^(cj_pRYYX^n3~QGK4eQ`gqFL z;|xIT2{g=uo8d`&DSC}PlT-@JK76tzwE;^wsWcpX1d_dtWT<&Dl{198nr|J9O=$)y z3pxtuK$+uV`^TP0aa}@&9EhY+Uu4%pDSh6NaQKk=EjVVVNd6dZ_C_GV-?j7u(tgJ- zGYI8Rql9&l;~Csg`L$tD#@<@UgBqGbimciv$by8~AV_zSh5_{<&Gp@EYf7`Gd|bZY zr`WmwZIbSU!@Jq3lqg>zHt%M)QzCRRYd4D+(pBBfMh#`xwG}(oQJ&xT6F9(C| z?&PRo6tHaJ&zqPk0;N% zKzSz6y|-LDRv$L+o=^5KnEf%u?D40<(s;6j4lvs0>%6$8biV=Phn$UYkBU0}$vsw5 zC-%`YI7k=m#tqJ|AWp`}J^?pI_ERX$Pn7l52W~*|w1%(4?lX1ixv;OoRJLK4*zQ?8vYlrLlVFN;OD4;ecj%MwzKfK=Rir6yf&7>DS z#r_x;Z|Uh^9f!Lu?>tqqclc@5aw&zmM)tI9A5wC7K#!p@!?Wz)L;4~bkqXkXI7A9BPBU#eamX_ut z*~F=DuwlDUJko;NwF{vg*e zPc7Wyp$Hy3K51Oi_@rl&CX_ocUJr(%O=a4bPp~(}XN7IpN(y_;Tfmz7lh^w+4pwww z?09c6SroDEFt$U`WZ8(Y<;;OQ{ zJSnaRTHufD;Div%>Wl1$wEofF4M?}|63y;i++z0;DN!35@Wl{#pZ_1vpz;h6lPE(E zo?*P40Y%dw*At0zFYwY;O1!6vO25DU|CRoA3cRZ?@zU@8moh}mL@KQd&oE8SpqFkH zi5K(4i9hBe@%uke=@)TpYWw$yu(ezi<*mrhu)D`a+3c&%XFYS!7b&Twf1YPkCid&# zph7zELY|~TQe0QHasQ>2g6&0KR!uLmGZR}|ez?f)PVCTfAl_hNZ&JilZZG}(RQ*2m zxMG{P;h}52lJ%R^$8xzBTRADSe?KbBTbAvQd2WNZ0L=4D?EbMg^SOL6U=WK zN7D%xP>)%s^$uP(2wRDbx9zHS<~z!}G)?>dI!m3_A-tOJI{P!x_UfalW5<`<^L}eP z$aQ;=>kpJYdov54-dx?x9-ls3eUWXL9*gUt>Cw3UI=wfpku#<_Uqmw|TPtCb-TmU+ zPqvUEE%%6+Q5h;iret@69Z2ELOvLV0`~nUX1tF4ShN4CC7A1TFhQ}fXhn?M(C;Ddn zn4sIHZFr=|8$q@E=k-Bgb)T)LzQBT>9XXOx$A?;Zrh#$p4BzbG7|tMQoC-HNj?td; zP{xF-j3)Yb?We0=uX}#n3_8$~MkVK`S(4q>9Y~9S#GP=0u>;S}igHpj5=J7+0h;8Y z?pie|u45_KTY|OTD8R?6yugOeY*HU7B2)5GP-|<(GH14k1W1awO!aNT-S8AFsqmL> z-AQ(hjB1hOKvi!s_QA|BbrbtyW*b~@&Fnr5DebO{2P~*b8~i(!9)My{Mj|{eYi%kM zqvW=dw!34r_kTqnte2r?Acp;Y1d9C`BH8uFOUUK7i9I(fVkAJ4>qr0va~S9)8OUk< zaU(DH6in7UbT~eA7j6SyIBa)!uhe?;Vi)SgUh>Y*K*5>3;NPj>7dNs$W{r;J;1Wd= z39-nneS#f1b&S41X-UMMh&_Y(|4CHVU?W>JySZAxUYtD)*I#E3x9q;kde7+vv0%<} zbpyLSCluEvnRZ+!WJch+Jkz1BXJ<0I<638KyN0wyXlF2whyv1aDt2Gb`p#_yXZqZc zYJSPSxzDP;c#_egiO;i6^G~VnlDqStP%UFMHepj!HY~ffZ5@hGPvf{6Ks$lI#@1wa z4|MVKB3x_t8DArZUF=kLlImjq3#Np?my(YOr``;5?}=KAm4FI-T+F@T*;K?8`l+qC zKS$>LJo3|^1bqb`MNK1MDQb$K32-M&fz+d>x?hM9>v0>5KgK)xK^4??EgQP9bNgk8 z3x zpR887%97VTZqZI6c~ac*>^jM=P7l_w#GFp*QZ_rMccaz3$O~k!rhVPk6>HchInC77 z?7N(ZK*HXmA~Z$ASFL7s7qP%qdW@v!*tnX#wKP#$M>=iBSs5s!< z*8VG5{E`-y`fb?gB}>&j_RW&F!&V?*sgvTe{*Idz*B1!AmREbd@fWhDq`0k@Rksf)MbqplhKLW-b)F}^FYh)hlxisPl;qWKpvIf9twSMDSd~i>pxKiCx zTaHo&x%%gL%RPNCJ=$DRsz;E3_3HTAj1>Mjd!@*j;#!qz;5 zf}_{nbB{2yl|1d;EeHuCp!T{Y|CY*osaur2g{CtoaAJUb6crS)-!i# z$Ek=QkWs_>db&Cww#>CA6@3Ny7Q{0XuiALYxjPKt=rXn|cW+x@pA}m$9C^2`S@l+x zEvj2uiw4Jnyqw#&*zjC2qT??=U ztpmRvFs5Q^K$kBUM&jBamj$h8ja-kfXou_66}_GKO#$|e_ms}C zza3h4LD=0n85Ei?LqmHwkXUPsz!0&s+YPm{-O zoxzJqSi(&rLWN=)<`LSHM|k2XBJt8gyqKw&2`xetGZ>yRo+z{|wVaObR?u{GyB*2P zrxc`kF@#zZBt>gR!QK2hHb1YOx`e%wmo#(Dc%xTnV;kzmpi)^X)v6ufX{Jf6N?D;N1LM)CQfDN9(_RjmUc#(IAF+3UqC zWRD4p*|b$XgTC)faLcD&?^u57WA!ar%t}^uRu{4Vts0DLr_~GXixg#)2u41oG0{@J zG$i}QGVIYFZfrnWU(l5J=z5TL*U{_-{MCgXg4wr_Jie3PBKF(r?rIK;ShGxB$coma z;Cf|ED_m`BV{lDcJIikYPN6z@01qx;rE8M{Apahp)eD%ftK9(35=O!BxGDC8HfTS! zC+KDF>Cs#y=nkVz*h?O(jgTufW2`3>{Ri-7vxTl$TQ(k@RL?}bUD3oH%x0yoL(VMx zdnnIFEFWUOK-uF5whdVI1s3_J5yRZ0<9Y{`A)|ZX&m=Gz8OI2_vSJ7 z{F~}L7N6e=*KzqF&5_0)e>AHNJ%{3zwHMyK?XFJ0%w+}nq3T@retvY1OiERr)s~Lz zNDS`Ax%vw(Wz#AVhEgOQx)@lCzf1W;Kgwjj>-)3=vB#gyYVmjZ8Aj@cl=@5lorAUZ zT$Z^$xCOp39^~%+JDPe8Rce<{dA)bT8uS2dTG}?e7$DgWfY>t! zsmt2UJwW-PebSkCeIyzlxnV#IrN`(fN%0rvtwh7`%|UzI3AMoSdh{pdzT!@e(`pbi z_*g&8WG`)qSLd*=Hna{v%4a-*h~Q{7&7Q-23qA>$O)G4`6~SJg&Auwwqt0S$H+Fj> z=S$w6!?URT(9d9uFPx^$MB6?%%-ye>xZUN0)UV89cQ&>_K}|OG!*$H2b_0-StmhWq zE5>>bU^U_yM^p%C&&$bCvbv3M_t8!uz@xVpxAh1)Fg?v^kg+eSIIA!N@6BWN7B@_YO|ntjh=ngD8jKENK}o)Xp8j`0r1OVHCS?1csD zjFQbSSXFff+xB9ZZC6VSq-#}u3@B>-&vf?Li%WV>M^9}SVFbO$lcQqzOl*3GdTZ?l z9|k*$jO(J^4S@|Z{aw_Am$b&m+49XT)eKg&xihX`Y#!P;!&tr#&(HB0EVeKj?$L!| zxGu!~H1dV;X{}Bx znX{#?8i?Ntq_`6^hL8`f{4<@oUh1Z%vjZ>n!u9q`Z32*DZwmV4jX_yy>8$h1-EG6s zHunorjd|x2TBNgiFLzLlbLf{eApx!l=7^Q6xXkGK0a|@e}>+GLz`U9cD>ewUD?(_orL(c3G4Do zw4~iDmGSCC*7DV}mOnpbw_oj}rm?u! zy5O4eTKi@br~yZ_La@cGF zu62^@w9Aus$tUlQCEKt6DsOi8Wc8QoE_ru+gzS>6UaRiHlVk_LpJgQwncVJLb<4av zYE}Sc zQnUS%+)Lw<+x?p4y6-)TmiBkmU<45W;_Ie%Wq32JmFyZ9RiEAweO=w7w2A{X^ZXrM zTZ-c@8Q)~oPj!?%zT}Y>fz%{62Ou15WwP<;R-NmPU0>%y*uZ&H^&$#i*6OTW^zA5?2xdq=# z;mlC7++Ob~+}C30QWMP5R*zb^j0>2Ac8u>XS1f$dU)2EtB?^PuY&qyEjmj4`H8!eFbrI1?(PJ z4fZ(R6;(rXk+8u|RWZYyDIN|la3)= zpM$**`vUA%9PfKzgFZ)o*tM`#uzO%{z&6Gketn!RufukP4f(?B^xAQ=0k7OEVHZ`R z0k9v!R=_@h)nKRKFs>h{DA!;UVMpNGhMBMhUttPhkA3a+ega$P8;l(6cd);~mLd{s zi$@{)tk*jQ_G#F)usN_hVgEYo^m>27&BX69XN?r4)p;yJ*wL`#NdMRC&4O)k0YeU( z4!aXpgRO*Ze-S-{&H52@*%&bt>`K`2KVdP#R=`%m-h?zV$kby;)Muw~{^mbp)n)9@(t+x?EMadK%U>_C*?W7b5$x@~%|jzzMun6s$={Y|ncA2 zQNvh|{d3eq?9KgQ>KS%)e+TEU*aO0-qybdth;m*jB$fLU_LyJbr>@b5*ln=d*dC^G zB3OOwF|>!oN-P{K8w?L0{{-XO9c%^|-nFo2P<<9Q=aU9~E5LZafvJuuNcR&Ms^T9^ zl9B`V6&NFu?4M~_@9#@vQvg16JG*$GS#A0+1Fmmp4-Pc*v%~W>N;DdczQ32uD z&%zNQ&^-`LwR)OnV4KY!o8^^%Y) z3akqLZ+Eh(2URaGp<+f4F6(e=q>*qN?a$*Nw-1IFZsN`^U`kj~n2hIKbbYTTcBMR0wXnb=O%X@6I}#T11GZhhYLYQJ+5Wz?O1fiP zO=1&|H0o4z0DG5S5>4+ocuK+2h+!ZtW5im?0$14fBVl;^ICP{ro{S4edSkpojSH)Ph1^c<8o7$CyoCw3D$DimBQiH9& z8FL*?K~WnACu(Ywy%G9U;kjZ`=VU2GFBp^8;5|rgKYs@4u)8Of2alT zf|Wk!^*-UN*Il3GpB&wqZzR~>e?#4OC^05D&obD*2JN6Balm)tTju}SB>Yp^!~j-i zv9Zk0g5!<<$;0@cJBV|9IwMO+NS@AVFS)<*pi*I<_Tbsgq= zDwxHbimPkH?HZsRW(jlWbh{xGrTy71rDt?`G3#vc~; zX3H;rP}k^)FIv`=IerMYtlhyfe{We*@I#)j1;1(z(k23xEMMM0m>Z% z&u08k@oBiyrxw2|%1f}s$34oO$~N7R`lv&B4V)@4R?AXRp7MsypPz&qd}yW7rx-t! zzDVczRU`j=j4M@a*ULA?;V`&Gar!GgCyRvJ^+S%HY*h(SjOj8moY%QAT?W6bb7Ptf zepBbhAG8|Wf{sx6d>J^A$Z#~!9mcvacrZBi?Cew|#;3h7N~F#$(**cl=kzwJDnUvb z-;3}Z>b!@Z{=A-^BBRdaOVAxb86qV=Cvi*ftW>e_fNoG&vukZsFY9}4V2D1P#{6dS zN}DM~SXS4%I8CdlAyx}b!WI)>qvy)iOEXM9=Rr#NZ=ywZVU$gJdWWg@Ejk~mbLO~? zF9uas@5VD|?u;7)oBb(Dpx;Q*Clbvai`&|Yb{{fVqR{4x4Mq6tPBJ3s3n@sQe7ZNjfH zFK)zrZ+`z2U9ICV^5NKW8>u;*=JV_J!Uz=!i@7M{*VFu3#jk(xt5SH068Qsbbk?pK7 zzY24Mn|2n=4;5k^DGG_v>#wJCf4y+O!nrN+y(Ffh=B21Dn4q?V}6H9+C5@-og z*6NE;FHp(SOPv2NK^kH`(Pyd1T_AG5uIJYD^G~F~POj(fIzo`qx?{h{{kbsb3U}2) z^L`ZSx-buf@hc3p!WSw`7h(DdGenrN!enq0yRe=Znp^ss3e&4x32wtSVeVjo$h}>d zw}ja(%mHD}auf2iUh;+4M3Fp5!|hd(%FE55hKPr0YCL+E>8*u6kvdP`A+!!B~aRK2yUzync_@&6SVo81dZ4aL!`l}L(|6CHeuLyHT6k^4@0Tog_P$YUn9{@k%7ED5- z;KtQfxV;`4)K-{yGMm~?o-=#u^l91i(v>Nhi?6w{T;)+9l99atynz@Jrx^_EJ%ZVKW*PHjF?i4&$IbUpP2IeatUa*Qw_V z*FgswF-;mpWB4Q%ei@<0)YZ?aq6>w7t<;`%uL@_`4~2tC8mC)T;X0D~c2o6Z;YpJE z-nI7kLcd70Pp#jPmnGG0RG1d2wo`vETnDILEj&r)&qBW_n45)z$=ohnN9KOvNiq)# j{i4-AzD8+1&xxk3P&DqhRzpwE(JGCiouNo?n(Ary|NYjQ(bf4sXPzhX&ij7f`qp*Ud^04K z-_@! zFaH%I8VT-TE7XXvj|C~YVj|n4o{!!6uAo+26(sakY_si&*#A{SaV_Ch%<2Yt8vit9 zrry73;rw~O&FXmfhuwpfool`++ZvQmU%gv)H1y?QkJ-RrQA(+DiHm%r;ig_}=mi%2 zY?<(1YtdhvVKl>{pEvwVgzizy3N9LkU6ulNBT$7!|F_|9`mJWfEoX~p||~u z?opI)4MXBz42p8w(0f|+dxoB3(SI~_r$zt8&|Mb&H_}nRl4&sni~?B}J;+!W#TI?; zLebL_i{4k3IBh8~#HgUkq90f$0tFlE*BolQ5yxTCFT5c9 zWB$~6{YuOxVMzSbz=gu+h2GPmzp+5*Sr$F;oY2==^tVJcO0h*BvdA!K*F{0I2PSvj z_^ZCFKydf}(DN<2vC5TVi=Jb2xYT1YJW(hrD7Wa2yF#zD=t0|rUTx946bRjMQ=r+g zw>Ar&Xy_i(5L7G-E=z$juh88V{rq~N7hClChJUF=f7r3V>K-M=?Ac!pido>2MK?#H z+Mgh-3Z}ErzU>!qH{X&l@A;{vUer|IkY|kj)b{*6D_*ANL?2FMPseFHBtY=DKHJimIArP zZBzO`^h%39*qE|vi{5j&Xt+Z+I$+eVn1)2tAnXrymqj;w?6&A-UQw{vqMIX8YSBIB z{aR@;m=#o8^fIr}gIh)qjE0&OBwBPczRRK;@jZ&$VlXQxw&-RBr54?+pwgm0?0`i# z<2!Cs%Q61J)*f)fpSoFr%c7eVxGlO_L9s=D*a2Cm`8O-5lnv0$3aTx-S%Kp_(enSV z0~Xzk@3QC=pRYf+#b8!YY|$U~z@nQKR9f_h9kA$Te8(N*{{R1aVC>nZZdTy3=w=0O zi*8m>Y|$Tf;Gu5Ze`W=h4-H~yuZrx6 zC9WtCjfQzRtHc%Q^kW{bDse@cxn4-gtTOI@GSnr-II^n51?lw+jUc;95YitJm;CIm z5`^^n;*y{9s{|pvfw<)7f+|6vdz28#u=Y=b5-RD%lJ1c7O_JVF(n}=0k)-dE^u}EG z2y3Zi2p1ARmrHsRNw1LfrjmYI(jz3jQqm(O{gOvAG?NTflHOd>HA!zF>D7`RCFwPi z-cr()Yl3(%2THVL2sR9)$4I(E(qkn(Leg7FdW@vUOL|*LPcYUWHz!Jl)>46C50$n7%Skk*m`X)*5F6kwb{+Oiil5|fG$xtd8dP;h^r1z5a3Q6xR>8B;VkEB;h zdS9Va{}ttuWJneUey)=Aev+<9dVfi;mh==!uaWdrNmsrW_46qhAQ^(c7KHAC$0gk% z>1mQ4A?X7pJx0<8NqSpTr}_s=hD6f<%_-?UC4Gpbr%3uxNq0*6FiCewdOCEY|F{bz z!*HoUmZXo6^lV9gLekxm?vnI;NzeFG_b3IDVdS3%Wv!%-lJsIpA1&#dBz=semq_~G zBz+gx(SMrbCnZCvR3KB*%O!oRq*qA#I7vS(=}$>|rKFF4IR0?BBpD`11*#2{huuvG9MZg;ql;OyiB0`*N_7VH*gM( zPQev%zBKfz0FHz&h^uhcD>=VN+(x{D^RvW*h?jDHlsIMEdI{$Th*OsB(Tln84hfWA z>jj+eAx;ZbcXPgjcrfuS&bJV!ELwMQzL7X(&w2{y&l9JtSx@AAC2`7@^%%|<6GxWp zQFI3v=956#v955QLp+pt^&b!tCKIP@Sg+!I9C3Ox(knS1Nu07`y@KurOF17v zoU&lOg!A6S!)Zn8#a!q@0%g5=0q55aY}0S6wd1r zr({-74^9QejM|ntaaN!3MS`t?{zePNnc=hiz0$&r4AzsD#7sO+US8{%l zcq`%+oS!8gN4%8tqr@pW)k`=(K-`0@6eGZecSxXQR4?Fs5Aim{-JI_r-j;Y4=Ua%k zBktmSBXLSL^%TyZCr&x0p2+!1;*?wJF`O?3_heI2sXMqZpBy?7S2)ihPRXTS{a?NY zh*MIjS8+a$IOURhCFdiFQx2(Da6XiHSK_6d4e*AZJ7UT z$^mr;7k=0V-jBG#`7Pr8iC6!|*8uSp;#Hh~L7Z|ty^`~b#0LzxSR7G#GS;mINw5i2yqwZ8;K7kp2GR_#3?1y z6FFZ=oKi78hI7wi5-0`J9bA}CoKi1c;XH>prCfUT1HJ}`Q>vv`aXyYXrC53;=Oc+z zW~EnfK9o3RRC+1r1Bg>5rI!%*B=jbMQYgKcJ9HsVsgqv7d3)lNG3jp3TM?&BNzdZE z8F9*xbQk9hiBo2zr*K}6IAuh7BIh>ZTUq3g@?oPb6Ob zD_;Y|vxrx5{snQ$aP&&fFA}H3Mz7%fEb%GCOF2JEoDvzm9b zlRycG?%)pdiBsaCE1c&Lr-VbVt|9-)#3|9xt2iG=oDvMZlJk+oDX-8gI3G%!@(I0^ z^8v&ukI+lnaG^H|ltAdkoOdDqEb#))+izt%2WLfphGpO^>KKK-Ck33|yV^c%)OdR5 zg*$!Sm%Pd1obgF-@#lG7eP>Z}3dTTN$;%{n56AVd*wviApTn?WzBF&f5!s!j417~l8Ot_?Z?ZW}u^15gV(u8T~R(IDM6yy{d^)wu{ zarHpaH|j|)W>?#Wo5Ja{r^0y3UI)eL>Fe~R^z@|!d+k3^nIde)XjN-mCtXCyzfn0S z^~#qV_9k04q^Sp$aMJ*oP}L$T)>wF4F>Q;4Z5r8X&}o!DV%nMuTL#&_6t*`^TLWQB zCR>HDc}-g_Ve?#opzRdKXH4TSm{ByQh-_IKQuJb zwEaieD2~=m*nZ!M=MC@uzl1TFj1j_kZKp9Z9|>C$+5U?i06|ZfwsXQ3MYbwo+YZ~| zG`;}r4M;zXED2@2q*IQIj=h9y?M>1hzT|mipr;@Vt9P>4Vc{M!ZyLjkJ&tQy60{=j z?I5RP@Jl9-j&-?5tmJW%djvUsQO(KY5%Tap9_%cNy8Jr$@|HNQ!vhlc$3+N9XV5Sm z7b8>mQ}&v4F|{1X-W%4E+JGgTS{?&^6x?>h4K**OIK!!{MfRc76(t9ig`a@vLd*%k zfk|i5z1L76A0)Lr7{#?H@-I9d0~@^Gf+0tR`(wD+9}9;+Yk3@!b{D(M5X7HBj&)Ju zX!4+IL6kG;gkjc5~Jq9{I>)9Kw>xt2FM>K2sSJ=2SJ#_tk+ z&`a1GBL-zaM!Z)52b2N|r+xARUuyYeSslo&qlGj^(K|_(vEvnT_uMN~W+Gh&j%g>6 z%{vQ!3(ETjvp=qc^?f2bi@POv0BA4&$ip?I>-88vlx&1+RP^Z2++rto=76eTHPT7@ z=_jt=d5xUI`@xKn`w&d4Ct`j28vEdhCtI&ql%J+|3XNWcLhva{p7bh#ow7k^ubNzJ z#`bmVSx;AsU~cH%{#7>K)k0m*7P(qdMyKR;9pfxa?t(yAVK;Ldply#ayl{obK+>k* z5p&XhV;ei-+M#Y^Q#0D(ye?x<6dnqw&GR&Te*ZoYxP3aQ0{ms-w}!LtGkV!}jbM+C z^x2w^DBC~sylNXcjCn`*ur*9CJ39I~yKTe3vZ3RiQ*E|^Wfz}ntVXO+lw+yhv+2I5 zRU5J9(~9ahb^00*M)v5GN86maj`i$4f!#ZFRay{r@|1SsYm6>-chVA}X)k`mJX2aa z1|!UHZNVxz)ql~5q=REG5aK8}FyKhqT?{R5~eg-+6w&WWgz4{uDK8Xs% z^8(}L0!H))H@Wj%?woLGC7fTsLD4_Or6u}#7p!?VS-vJS?#EipXlCoPi1nP&-{$Ja z7R_)E>`CPU6?q|;z7|i=glQN10`3=n65uOddkh|{D?E2Hk72creSx+-?{7}ullfS| zNGH7E17BdBvJ*OYf=T=QD{4kr0qVz6ZBEj2Bw^C^2K=IN0`2snk1+p)HnvMXRxu&H z>DemL_)NL+C#qQ7)9YeyK95u&E#9H^{gTJgE>I@pOa2%-ZqaYPVtZd`WK*lyw@>$u z8t6mD(Cfl7N1AVq1Gj3bT9MZ72v)AIL2DoDH_>bJKhMrgEU+byV8gOn+M-6VSy?;T z%IrQ7zYWFRjpq)Q;63e$`OS=!%zW}jtu2z#2RI3KtX^7e_$rzRX@8M7KiW1sV6 zX#s2oL%b)kTyw*mzH;(O4IJ0BpIGXo*VLt~-{hvOX3{`48dsfd2YzI8Cr5=k3%_eS z#9K4O`#ric=Q$QLv$^^l>pOF#x|*$@nS}F^nF%<5JF^eYaXB+QtI@J4_DVpS@A00# zVJ)QO$u}x-Oty+FD9zVk2Rs7q6l_SPSl2lUvL08CqQ(7(kJ>?K*!~mo{Bn8=#WdOX zk?3=1>%Sl$bMiJo)&6_gkXYSWkEp9y_^i>R$-7sSofjJ1)0Z8bHxer&92^_{eJ&?z zOLbn~J*@t8q@OqL1p>YWJ#*+8l{zM^D9e`Sv+sZ}atvScnL>7G)-&;QsTs+mQREP9 zvm<=9s?)tE(=q!IS|0=mvMa0Dh}li*!y_)eFdenFE@bZ6E#e@g#@<5Vd$=D`N2cRO zh}rzhuW8=V@hwtasOqgk_RrbT>Pq&>>^3<6GP_#_Je}UFhis@x8+wehVxIY3bcj2zwJG&HMdkl&ZIqEqx|-G=x;|@zA38XeAXc z$wo>0^%XqsM}XY<=y0#7y|@g0@u<_+ty1g5!!9(!UJES9MqoD&e3t^hw1R#A%#%r6 zxJJoAauP~w2eEf$jx(lGsU8=|rXE7+nr&D8?-(wq#OznwGEw(DosXKrth zXXma^J*;MK6wXcDPMjyYV{u;LcB#wRMRzxx>&$D{a5<{cE@B?Bw5Q=g*KIi)Fs~Ji z)8>s7$Ma2cmfTgUA5L- zwkEGz*dl&M$7t=&@ilUE5&I}FRb9kFo}C&ATY3>DoO(0F_ip@Jl~)k7i20tKm5Hsx zco1v8k5Ra&knA)l;h(}riO?t@B|@<@0lws^phhB8_Y*N<-D{xn9cdTeO2XUbvk?nB zwa07R$k6u}j!wFmUi9~rU|#&c3(CnBGi*+NpGJ61LyN8uU`+@6>?;?t zgZa(WXW4)9W5Y-eoDkV2+*Uu!>Mmkoc}Ch}l-TerdwWrmn#aCc)Ktx3zbxv5>#mE_ zTH+mXbzpfzr!OPlx%y&WXN<@X&~CTJ`qOjSON+a}@$}-y)La%=9M=>kXHjl^t)x3z z^a=3@_SpyKvR+GC*p?-*CzmW!7qHKk?2g8}X_tyvJy`ORF~klxJMZaR4?9?1Ea>F9tZ_jr zbuQ~sFyhhi)B|6#hV?b}c4$(CcTJ{P)c=N}&&Hz#?=259;BsOP+gq@|E##n;n=l-O zH9@(Ltgcv8x7M{rFDKqiw=9bU_Wi_f0J!z3@^kdp26mC`Ve(uN)9&Qpc+vLigqJPH#l!VHCFoF0#sWgep}q!l=2 zAwE~yimAov0Suwm1g>b!7?_*SW(x}2sk7L&!qgG?n)By;Zs!bwD@MDCMyR#KU9~7U2jPpN(r2+Qt6PVHJf(kw zC4{%a?h|v^jMY8DFLWYt(}#h;Q^)A3kJYy%hn21Fq|RhtuO5nX$LAJ0@yb6&+8j=shGVIG6*a04Em&dS%OhJyY%KF>{O!QOU*xRyKyz*E4a zGun_3s6F9ZxTSk@;m{4BP25iwyMrWeX7*Eh6#5S#FpVwrCOM|z*2&Z-AxEN#J3Nh* zdyjag;-9tk4Ol*;eFNs~HMni)>QAu9$BfGGJ=wEQcm)dj2KUVi?q%PL%iKoZ@V9|p z`|CJsU8-@DH_$o&=q+I*3i`rVQ<3g#aHbWBsM_$;SQxD-?es;hr)sci;E~B{o{zN! zea@QuVuFSDu&L~E-xPHUd&`%A^T)oXIN$WeG@ruP@Ah(pC`x|m0>TYEK;e?-OkpuE zG#d*$rutD1$pZnJ`+Z(rJCab{6Hec(EGO1kinC}nO(%a?`Cv`mPd7C^vhGa&%ga8Z z|2CPi7v4}OvtC85a2{V2*&II3UMF(f(0wT0LVM$N+Uf21%_LS_6s1mL|0qi6o<&~A za@*1)I}U@pVUqFAO2xEFywB3-z^KKLwO$XXeAN3{EO=f2c2JzXF6FlPGk&(|-H^O5 z@XrYL+LM@jT|^6f1|Q<TKuj$ zfvw%pwO=8cioi$l85^tO9KigBG-Ev4_Rpi-{JKSVdV}D-Z36psLkk3Ivhi`8$8Bsk z2xXqqf5EHCQ~DvSM%?4b3L!cR^YfM5uA_YYwKGWY=-ZUfew+-Lo@O-2*cVkit1ts^ zk7s8#rrAz3V4-ZfI-WhtMmg{qKIuN@%GWqPy{P-m!R&LE*aV{1|DV_cd{g7Gk<5;d z!N-IQ7X9M0>bSC(U$m?0IJWhrXvglB7)bBx`WR5u`uDNy+)GRPj73ky`_0u;Y4M4C zCN}P&-rBpuhB1jJ@LqNLK(Ikh`#;o#m!WzevlTD5R5Mx0%bjrkE;-Kw)tL+Z_GQN++qxyzommZn!UQ^6`Xs>YYY4BPd}AaxYG_sVdbleczg ziZ2WFQ4CX3?+qG}#_@<3I*NI=_KF@!gK{i4GTr+vJsJ z+Cd$O{Iv<|ysc|I3?hx=pA7M~fP4IYhTPQPk?gr`U4r}ZVLzY2Dz;5fGg!-4FWGLN zU^TDyS6!^W=)dtT{oO{8tC56_J67h|v7$j)Oj5D>PU-oeI{o_gQ=S?=fn6#4)Kd_oD9C%1 zrM^JmU0l~^fk1gUrtXzMU@Q2*t%1OoKo77Qcw}23@F=#1yFe#!-K&8B{chw;}|51a~o6PORIzYBqZ$-oleAmF>e3ScF$8h8WvBd`WoXLlgr2=*w- ztGGzV`$B)L<4wSsK>E5n;2(iN6>urA2B-rg@ZEVSZs9~=YH1+g0#14-5Xc2q1GfU7 z!TzWL&jTHprP=SnANV>RE&0IPc;vQt1pj9kkD{I)TzrL#Okl% zI31}@v#Rfy0lWLSS!fcDsOY04ss#fH#2MkxR8`fE^h)75D}cv{K+fU?uRA z6KGI~qBJ>)e-=!`MLI4rNjMV-ya?<8d>1$uSP6U)_#JRBkp2U45O(nt;5y(`U@dIQ zOM$Ngw*sR+MtNW{@HFrs@JnEe^MSxmz`p|65WB;W}o;=+%2yV<}Mm1qF)5U>~9{Gx&@O>rBXv2g|?g!EM%nxe%{5dF@~uJq7fkWK#z7G!H>2S zI;j2_JYkMXS}wG1(8}400}EB1{d%B-`U^|=ptIVajrm}%dX1gKt{9R|-mTZ(t9p4Lfy>4$^9%wT3pGD?+P}JtQAmlBC5zdkGqDE`CJd+zs0E z(D123QHD`{Hn#p?g8>>e-fzfM$5i;$!j^)n_<_k#@}d0*Kf0#z8Ht9{;L?6}uY^5! z=&{-#;d1D9cJ$Do+O(U!wv&Y%ZdSV|E_d%_oesBZnT5-7cM5pw z*jzo$>=n`YJd{w;0pBPyDtf5?n%Sn83k>hmn` zNSpAFv1{?=h)QU#ree_XvGzz0TiE;T){#MY;3XX$rru%8jz+6D*tVk+!~OdLfx&R4 zgNFP#*3(%QcC3;59ZNXYM_tS&9g9|%uocIetA4iaSo81_?0iw&Us3u33$WYmW*;Bx zuYSN99FJ35v83Zo@yTn*@#x3^c11qPX(2JTypUk3p&NF)No>XOMja~-;l?#0(Rh!C zMnNWWFPf&7I`WTwI`p7Ry8)^R39~oZ9df;pV8hs_4ttc zrvicQ6k=S6V~kP3acrE8P6q<#NS}z%Z-xX@#k8@WgnpZJTWN@6ct|ka7_`xDW~rx} ztDmt6r`xEBZ1w3lbp+de`YE+9v!CgTl&9C3XiWOpGaVuw*m1j31VkQ&8du@cg&nj5 z+jeG6?Ev=MFKk$Nacub6&h^&9*b}>D`ZD(5?DFCGq z3bwPKu~*McX0FQ-tzMi#KG?X+1e#~_uNBy5u)Ve>>c82M%Wc%lZ2RR1mU5#G3;r^q zp7{p{zAaTiWt3v))%d_{W6H@^0Ozp`cihE`X$ z;_g4|nq3J-%bGIRy%<|f33LC^vaI-CVX&>bgoW2kf>f4Y^O>FK6MsYt4;^>mxIpK~ zd!iQF=jp(!l%gull!AL~M_`19=7Nqj__5)ag#L~I6Q(k4^D}C=Di)tSA(ij#^lusuKS2x3Uw3tkCNh1^UMD=Nmk1^kzbO z%oO4HjNu>6<1|x>EfWxD_!p5s(oKaw0)QROKvPA869Sa~!?sBk+%)tUJay^lZB&qD zOie8zE6IjF-lC@%dZwgzqB4&g6`OwoWW5n+n4z0D=Q7pb%%-+c@A(JV)WMNb7%Gr! zgfF@0-(gcbdo10qhhES^+GNq!7{v;VaB$*B5!b_&m@fr)3Q#s0{w_=Pn+$!lq5EAy z>V8|b;(w%;`ZSuHQ%fD(?4}4p{~AC?5=N5RlmfSNwbW)exJyU|&WZ)upO; z{X2ryIqEilSY0&+tV>;WV#H-p*d;)D9OJIy`Ihb9T~|$n(-(Esh3c37k@eKh=5K4# zZb-)#?%PbswhY1>T*qB=SNJ&uC~q5jjG>#0`h7#Mx+5GD{VVFL(f;5^)Qm{O)fh&l zHqr(aTW)XjEu3Ez@Ropb z0cQpLN5Iztss;QZAjH4Hp*D?divg#$ZyYJYml(BlQHG+_8Sf}jCd(-LrvC!W>Ji~wDc~ys-*Je1U=+0*bC_rp4f0QFgrZ^o4FG?B zBQ-*8!>`p|0-ORyafr;q9uQ`WRMr}6)QFK1OT5%*-Ix%{|LF)b^naIdirF^M(0?;JnQ!Rr z{jp8apZ)?|0;UMa6|hRcO9EaO@Vpv2S z0+9mR3h2inG9yIXE!G*!6kgK>%rk-RdDY|J+YGQyh+75h=MZ@u@u*K%UK5@9)#%e{ z;q@;8RUDG&3kf-w4i;YhjNSWt(rp;+6r;2OzlhSI{tL}fe+-A0Tc}I?J6otbJ56;j zQl`wEGkxZay!q3V`O_B6Ts&>c?3vT%&A#tm8}+tr-?jE?XWPEej_M>Eg3s%$cCMSBAga#y@9wOgvh^S9pP#69s%LJg z)g}HtiRvJAr~mszwR4#Hq%d)nKPgG=+^}uA2x4MQL;w6FL^1#3nfsi7Pm=mrJ@YS} z<)8E40uM9)>P-QEfx*u2PwJv3)-@h4B_I29x~M(sekFoeeB$3jv`SE=(tnGnu{BhE z>Tll_^scb3z3R{Ds`jsS6_lmcZRE!bZ9Da<{}x2`D}VcLfSdjtf^YnL2sHmKg75t8 my94g}a{$3cv=sl|?ucFfhclients); c; c = nexttiled(c->next), n++); + if(n == 0) + return; + + nx = mon->wx; + ny = 0; + nw = mon->ww; + nh = mon->wh; + + for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) { + if((i % 2 && nh / 2 > 2 * c->bw) + || (!(i % 2) && nw / 2 > 2 * c->bw)) { + if(i < n - 1) { + if(i % 2) + nh /= 2; + else + nw /= 2; + if((i % 4) == 2 && !s) + nx += nw; + else if((i % 4) == 3 && !s) + ny += nh; + } + if((i % 4) == 0) { + if(s) + ny += nh; + else + ny -= nh; + } + else if((i % 4) == 1) + nx += nw; + else if((i % 4) == 2) + ny += nh; + else if((i % 4) == 3) { + if(s) + nx += nw; + else + nx -= nw; + } + if(i == 0) + { + if(n != 1) + nw = mon->ww * mon->mfact; + ny = mon->wy; + } + else if(i == 1) + nw = mon->ww - nw; + i++; + } + resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False); + } +} + +void +dwindle(Monitor *mon) { + fibonacci(mon, 1); +} + +void +spiral(Monitor *mon) { + fibonacci(mon, 0); +} diff --git a/patch/dwm-fibonacci-20200418-c82db69.diff b/patch/dwm-fibonacci-20200418-c82db69.diff new file mode 100644 index 0000000..81bba7a --- /dev/null +++ b/patch/dwm-fibonacci-20200418-c82db69.diff @@ -0,0 +1,114 @@ +From ec9f55b6005cfa3b025b3d700c61af3ce539d057 Mon Sep 17 00:00:00 2001 +From: Niki Yoshiuchi +Date: Sat, 18 Apr 2020 09:55:26 -0700 +Subject: [PATCH] Adding the fibonacci layout patch + +--- + config.def.h | 5 ++++ + fibonacci.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 71 insertions(+) + create mode 100644 fibonacci.c + +diff --git a/config.def.h b/config.def.h +index 1c0b587..5708487 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -36,11 +36,14 @@ static const float mfact = 0.55; /* factor of master area size [0.05..0.95] + static const int nmaster = 1; /* number of clients in master area */ + static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ + ++#include "fibonacci.c" + static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, ++ { "[@]", spiral }, ++ { "[\\]", dwindle }, + }; + + /* key definitions */ +@@ -76,6 +79,8 @@ static Key keys[] = { + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, ++ { MODKEY, XK_r, setlayout, {.v = &layouts[3]} }, ++ { MODKEY|ShiftMask, XK_r, setlayout, {.v = &layouts[4]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, +diff --git a/fibonacci.c b/fibonacci.c +new file mode 100644 +index 0000000..fce0a57 +--- /dev/null ++++ b/fibonacci.c +@@ -0,0 +1,66 @@ ++void ++fibonacci(Monitor *mon, int s) { ++ unsigned int i, n, nx, ny, nw, nh; ++ Client *c; ++ ++ for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++); ++ if(n == 0) ++ return; ++ ++ nx = mon->wx; ++ ny = 0; ++ nw = mon->ww; ++ nh = mon->wh; ++ ++ for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) { ++ if((i % 2 && nh / 2 > 2 * c->bw) ++ || (!(i % 2) && nw / 2 > 2 * c->bw)) { ++ if(i < n - 1) { ++ if(i % 2) ++ nh /= 2; ++ else ++ nw /= 2; ++ if((i % 4) == 2 && !s) ++ nx += nw; ++ else if((i % 4) == 3 && !s) ++ ny += nh; ++ } ++ if((i % 4) == 0) { ++ if(s) ++ ny += nh; ++ else ++ ny -= nh; ++ } ++ else if((i % 4) == 1) ++ nx += nw; ++ else if((i % 4) == 2) ++ ny += nh; ++ else if((i % 4) == 3) { ++ if(s) ++ nx += nw; ++ else ++ nx -= nw; ++ } ++ if(i == 0) ++ { ++ if(n != 1) ++ nw = mon->ww * mon->mfact; ++ ny = mon->wy; ++ } ++ else if(i == 1) ++ nw = mon->ww - nw; ++ i++; ++ } ++ resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False); ++ } ++} ++ ++void ++dwindle(Monitor *mon) { ++ fibonacci(mon, 1); ++} ++ ++void ++spiral(Monitor *mon) { ++ fibonacci(mon, 0); ++} +-- +2.20.1 +