From 212bdafe1ef90589b8c0432a47d3e5eecc771465 Mon Sep 17 00:00:00 2001 From: Saulo Curty Date: Sun, 20 Aug 2023 20:21:13 -0300 Subject: [PATCH 1/2] my dmw start config with systray --- config.def.h | 135 +++++++++++++++++ config.h | 17 ++- drw.o | Bin 10376 -> 10336 bytes dwm | Bin 75288 -> 79400 bytes dwm.c | 413 +++++++++++++++++++++++++++++++++++++++++++++++---- dwm.o | Bin 63776 -> 73672 bytes util.o | Bin 2256 -> 2224 bytes 7 files changed, 534 insertions(+), 31 deletions(-) create mode 100644 config.def.h diff --git a/config.def.h b/config.def.h new file mode 100644 index 0000000..72f3a51 --- /dev/null +++ b/config.def.h @@ -0,0 +1,135 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 3; /* border pixel of windows */ +static const unsigned int gappx = 5; /* gaps between windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */ +static const unsigned int systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */ +static const unsigned int systrayspacing = 2; /* systray spacing */ +static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ +static const int showsystray = 1; /* 0 means no systray */ +static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "Hack Nerd Font:size=11","JetBrains Mono Nerd Font:size=11", "JoyPixels:pixelsize=11:antialias=true:autohint=true"}; +static const char dmenufont[] = "Hack Nerd Font:size=12"; + +//static const char *fonts[] = { "Ubuntu Mono Nerd Font:size=12" }; +//static const char dmenufont[] = "Ubuntu Mono Nerd Font:size=12"; + +static char normbgcolor[] = "#222222"; +static char normbordercolor[] = "#444444"; +static char normfgcolor[] = "#bbbbbb"; +static char selfgcolor[] = "#eeeeee"; +static char selbordercolor[] = "#005577"; +static char selbgcolor[] = "#005577"; +static char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor }, + [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, +}; + +/* tagging */ +static const char *tags[] = { "", "", "", "", "", "", "", "", "" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating isterminal noswallow monitor */ + { "TelegramDesktop", NULL, NULL, 0, 1, 0, 0, -1 }, + { "obs", NULL, NULL, 0, 1, 0, 0, -1 }, + { "Lutris", NULL, NULL, 0, 1, 0, 0, -1 }, + { "firefox", NULL, NULL, 1 << 2, 0, 0, -1, -1 }, + { "St", NULL, NULL, 0, 0, 1, 0, -1 }, + { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ +}; + +/* layout(s) */ +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 */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod4Mask +#define TAGKEYS(KEY,TAG) \ + { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ + { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } + +/* commands */ +static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont}; +static const char *termcmd[] = { "st", NULL }; + +static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_g, togglebar, {0} }, + { MODKEY, XK_f, zoom, {0} }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_s, incnmaster, {.i = +1 } }, + { MODKEY, XK_q, killclient, {0} }, + { MODKEY, XK_w, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_e, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_r, setlayout, {.v = &layouts[2]} }, + { MODKEY|ShiftMask, XK_r, togglefloating, {0} }, + { MODKEY, XK_t, setlayout, {0} }, + { MODKEY, XK_space, spawn, {.v = dmenucmd } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + { MODKEY, XK_minus, setgaps, {.i = -1 } }, + { MODKEY, XK_equal, setgaps, {.i = +1 } }, + { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, + { MODKEY, XK_F5, xrdb, {.v = NULL } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static Button buttons[] = { + /* click event mask button function argument */ + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/config.h b/config.h index c392834..72f3a51 100644 --- a/config.h +++ b/config.h @@ -4,11 +4,20 @@ static const unsigned int borderpx = 3; /* border pixel of windows */ static const unsigned int gappx = 5; /* gaps between windows */ static const unsigned int snap = 32; /* snap pixel */ +static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */ +static const unsigned int systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */ +static const unsigned int systrayspacing = 2; /* systray spacing */ +static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ +static const int showsystray = 1; /* 0 means no systray */ static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "JetBrains Mono:size=11", "JoyPixels:pixelsize=11:antialias=true:autohint=true"}; -static const char dmenufont[] = "JetBrains Mono:size=11"; +static const char *fonts[] = { "Hack Nerd Font:size=11","JetBrains Mono Nerd Font:size=11", "JoyPixels:pixelsize=11:antialias=true:autohint=true"}; +static const char dmenufont[] = "Hack Nerd Font:size=12"; + +//static const char *fonts[] = { "Ubuntu Mono Nerd Font:size=12" }; +//static const char dmenufont[] = "Ubuntu Mono Nerd Font:size=12"; + static char normbgcolor[] = "#222222"; static char normbordercolor[] = "#444444"; static char normfgcolor[] = "#bbbbbb"; @@ -111,8 +120,8 @@ static Key keys[] = { /* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ static Button buttons[] = { /* click event mask button function argument */ - { ClkLtSymbol, 0, Button1, setlayout, {0} }, - { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, { ClkWinTitle, 0, Button2, zoom, {0} }, { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, { ClkClientWin, MODKEY, Button1, movemouse, {0} }, diff --git a/drw.o b/drw.o index 7cbe2ac73075b0cafb01037e48376225a9aa64e9..d76bd63a40a6b11544cbba85704cd60730a28179 100644 GIT binary patch literal 10336 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 literal 10376 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 D?Sd*~ diff --git a/dwm b/dwm index 3cdbdd47c537911ed9496d8d5a837b2137c48755..e0b540294e905786f0faeba2af4712bbd34626f6 100755 GIT binary patch literal 79400 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 w_3v}&-BPKyjK5>R*@~zm6kTO1;c4*+Y34*&oF literal 75288 zcmeFad3;k<`agcV1j5!tE!shlpkZuTTLo=^XhKtZ11SVrplr6KO=+RDu}z>TOEFZq zUNd$^9MN$>XPiOD85vg=kwSq2ZUvV?a4D`ggr$H2;*#(CIrrZ763O@X{e54b*Y_`? z&AHF}ob#OLJm)#vbIuJbvR&iil>qihydU%}2UvJS^vHJa%c=evM4GUn_@dK2jIutN%>K z>rY%7x+wuZYN+ayWTd}LMW4~34RQ3bv2Tux&R3`8iw+%1dNrgn=#%%2uk`<>JhzhX z`&VT?(cxM}4mDKEn~Z#=q^h$(4>j%APZEDi>eRH4&!fkK^JP-3=Ih;uTtrr?koVqv}%r zU(bCtZ-9HpBVF!$y7iwqON66$txcsgR1eBSY3M^3{iz?ye?R^x4e4i%-9(Sw30s3d z`fT~?PfN41KRSNs?t;FSGosq18_o_;kH|`hpnvvoY#*D26;^V(?iLL!N#y(yxtCF9RC%a`n~6;QvbuydU&$ z!e8{q8AG1@80GGWA?Ho7vdhW&SPXe4#K4cl;IlCXz9@z~tugSj81?nVXm@iAIp2+e zSH-{=#IT=m47?o;bvb<=jnOWvVx))KI1~P&KXozmaBB?wWDNbUjiI;eV(@t&2EHQ( zpLH?nn;b*W-D2<`0tJ|&l>mBi4F0ukpGStd|G0(`@drF`8GzmDKYq;j-iLIV%Wo1G4xXy zLqEAO%Iy<_&z2bS42+?NaWUi!#z>zLLqG8`#o+Tw40(Qt(J!uzk$z8% zazBoNcaKru+hXwlD2Dt?V%Wos80Fp{qg|ejQQrkI@SkGHSr`K!5JR51G4zldL(XJu zNR3<{u3qDdfNHonhX0PM|COlDk6uk5g^z{at|C4Pj%4zu(3ziGSn8?q%&VyNd1~@= zvns2rJo&|QD?MCc;k<>_RfV;_;u>FJA;*$lHetcI8jmN>S5r|n&jmJI!PKgGHN|uD zJT;3vHC%zCrg-rbPl>O%Y96>2H5LCr$cP1b{>*jGHaxE6`C%2996^opv|>cw^+lr-1x^B^&j z{uZ=XR#q=&<;p2gUPW1jrzW@9>xFhXrfC&qf;v34zMASKGAphC3Dw7r0y;IF=l6Q6 zYkak?>XKq=3c1cXS#p&++RIbv@p(FPQFS{M=WMHUrHCn>+G>AIi6^(Xs(7BKMm7j$M;*EXKe-BHt838v$VxmV3p8S8ReP7% zVfkFaWWT3oNj_6%-jb>k;!}yv#Ow|=t6tLqU5S=Mb!(R_%&$gR!VH`lvRVxmPdH0}gv`oV`w)L--krw6#O*MG2~bj2 zC3Q|!5>-rU2QoaWfQmuGHN^{yowfE7U&SJ{n*uPNc_qkERm+Vlfe9A-D}8zXxwXCu zA9@oocd?HR3ZCJuDB3ATIndTjDoDO zP(~F@tOBEFUCG=+^oYW{$qEZgSW^~Ol-2_DRxXJd-4W4|qi|7irQcIng>Divk|pVg z{Y{ZnYz11m*oRpFqh5)33FoP+@Nu;sAM`;ZS{de)Dh~4sW)QBnVjk*6DXS=HS#`|< zR2b7)$%4X?@&$!u#TAttvLP=eszgo%_@67om|lXk6}8nR7E57SZAo!e8AEFsJ4#ws z!kVPkhyGgwIXoqcyxijA3ZJ*4lq9O9075SGf)U)NCCWs)u(+a%TU6%7Z0RfGYO9n7 zj5{6<$qF(u$enr{dsgh9fD8i4Uc;C zYD$$>LlsxUOY>dIL(L5ThrX_OMnG<@V#m!_5RPK+f~zBNwQ= zJl0yOpFO#vq8F9^JGL(4xa%05z}=+K{yr6Og~xM4l?9o49-^+#>L<%(tW(ZOR6Je5 z*GJ)T%K5>DD7!a{=1#gSOZ&h&a_@(9A6kH#LI~3d)h4TuY5{0`I+!Teo6+ATx&sXsDD7-+y zGo$d?3T}(Sixk`&h4;8uu4jD|{zy>98>8?H1z#71zy6?{enS+#tVYJ0qVNd;8JD8) zPu9zLdldehf^*6_ooWxmo|4lWqws^GjHg85rV1IiMd7!umhti^JmWqY_eSAAFO%`q z@8wXHN2MF1@KY<~bQ@#fo1$>F|FlNolm9I9X^+Ay6@6Za!rOk4(;I)dRL+`*WjZ|y zFRhnxcNA`KlyPqqKJft=Z;ZmPQSgmX_~(M0zBLMeQo-A!a8c2l@tmAb)$?}>|MVER zI|^6%c%yK;!oM*JSM|Ix3h%F^Z;gSsN8xWO_G3JMsr;%vq(tHB_?sSutLZbNaCQ83 zN8xJvf+$?ID{mBDS})7j7=^2RHb&v9y={uZImI8)8ilLr4@KdseYQv8s$Cf`T&gz} zPmjV?yK+b2g%8R3y)p2{C_G8A^Nlg^)+jt)v4{2;xbeqJGz zuJ*6SC|uRU#wc9vU#(HN%D+7dSNR(+UMj!JKRpUp`MaZVmA^L%SNS(a;VS=)QMk&# zH40bxw@2YBf8$RvR06-3yk!P7Ljq`^mM@OBMu(ctxpJaB(=%94V`rqIDZKG;fOPu2M`Y4Fb7 z8ONn+aP8hRU4zSeK$%yj2B)&sk4=Mbn>G{;EfvmRt>&R zgOAkU>oxdo8hnEWzg>fG)Zm#Ke3J$rrNNst_-GBjSA&ny;H?_ms=*Iw@H;ekn+CsA zgG(CRror1axLt!^(BNY=ICn-S$o{i5xL$)hG`LZNXKU~j4L(kTn>2Wi22a)CyarF# z;7$#mslmrqXzeA z@DvSRrol}be4YkR)!^kCJY9oVXz)x8K3{{|H24Ay&TH^W4er+93pIFw2CvfKMH;+X zgO_V?uLk#O@Vhm5od&Pb;Po23R)eq6;64rBsKNaje4Pegq`}u~@WmQ@g9fkD;2Smg z5)HmdgWsdUn>6^n8hoz?U#h`dHTW_Oen^8a*Whg$Tycf4SV@D|YtpxC@Rb_;f(E}& zgLB`@1lfN;gX=Z;Dh+Pb;0+r5%HtIcT+zT44P4Q{6%Aa`z!eQ#(ZCfAT+zT44g9~- zz*)l$7x}<(Jum8Zyu@*QLz6E)(#i*R>6@7dk&#~ljtu-7--iA+JQ2-y-l4V#J_8RE z9f!oBRz@ErI-ckzM(-y&f#{8l-br*K(d!w#g=ihojf{SoXgZPz)ie49qG_8I@-q5a zqV+@F6QkX7rzkrXz=tjnNMfO-Bu(bVlDtG#xR7OpLyVXgXR585vzeG#x2~ zI7ZJW+CX&suK)(lCE7@I8>43ueHGEIjGjXD)kHTjdOXqB5WSJnV~I{CdOf2@5lu%1 zp+-jELNpx}gz6bRh-f+@2zeQOBhhp;5GrDHAEN0db`Y_Q0h;C){L85OY zx{1;IiN1;Gjf~z&w3+DjjNU@@K%yHN{W8(y!VlFm`URqICfdvBXNgWFx`@$_6P-r1 zo6&zFnq2oG8>1f}nq2mwbVlDtG`Z?SCPv>wG`Z+QMn=~VJ&b6M(esHOPIUXvto?~5 zSA3|A(KCt8Ai9;&Q;5EW=q5&wC;C>RH!^xG(Ibdn&*)J^lj}Xy$mm;$CYO7tp3#Gd zCRcmN%jg@4CKr3Ch|ztBwh--R^wmU@t3706ba$f3#U4s$bUe}IS`V2ReeqwQtwb9c zeTHaqrH431A0wJv=%MzXSo;%gBf5>zhl#cm-OA{LM2{u9iP8Is&LVmvqjwVRAbLHc zw-B98bR(l*CYoH~p?XHYKy(h#UPeDlG*5I9qaP>QNwk~Me(NlKQ$VXmUY^yo|n)XmUM=iWuF8XmUA+ z+>E}OXmT}&Y>e(sG`W~V>5Psinq12v6QeJ_2zn0DMn<0@nq0{tj?u@6CKqz3{YTdR zL>Cd=#^}RD7Zcse=z~PhCAx{x`-v_gdLyHE5?xC4dPZ*{+Cy|BqhBVPT*0AwM!!Jx zJfgjfewJvOfI>x#ew^qEqTP)C6VdaDwlVqvq8AXI&glDyt|Z#T=zEA>NVJjBHAGht z%`tjD(bYt^UtsM|G`Vg=ZH%5tG`Va;t&E;RG`VU+O^hB-bS=>v89kP0AJOX>J&I^@ z$%YykeGAd#iVf8>dJxg%f(>~YeIwE2dJPpZx)0Ihat*l|eKpbKY7N;K-JNK1v4+wa z9Zxj5RzoI6U;HQNWkeepeTHaqrG_|0A0wJvsG;`rk%)b|eVTo$J%4H*zw&q;ru|Z0 zOdLqVF)yq#(>frdDG-VG_v6JydOm11p(UiQ7)bGa3a!-8wMuZnmO8>ybgO!NCH!qGn@)|{2!^kT=gbo?*CS5?gV4d=1Mnu|%M_$nV z`*pT-@%Kc^&nV>xVkuhx3|x91Vk6B=O`3z0#>k4b_QKdJ?IsCDYZ=mPp-b&ZKj;mx zC|TV`Rol_ll}}hL(WB@!O8JAVtPO zaBN54l5`mQ0ZvoF?*KZ5UD64;=69(0r@&G6$DpMHa@>t-+%+g4aXTsQH94+}8uyx< z@81;nm>hQuHDLn$Lymi#;+DyA@2PQ5$#KIdu2_zHS&jRn97lYlY&q`FYTSKt+{YA` zCdb{Q#`)y9ofOwgj=M{ZyIYR?H^rUCa0s1@RpYAUxW_5(BRTH(YFwEd_XmpGEXQ?M z<2-U4l`lOh$9?+>$Gt^!BJ?$%@Yk@wL|N|rzZ zylGxXxmjv|HpL-j9&s1WNFT6N{$VUOu++RXe!MtF@?XPfUih3SX^xZQ!abzdu$<=u z7ZQA5+9SKdE13k)kSsw3Nx+Ie1@_->gt%R03C7F3MC%s-Q6`gamK^uLFZUa$8Rc3p zDOcnhB0in;z-ej`s|cPM=Ul;|^PfbCyOWI(D;t z^+PV|tac z!>v99QqEacKoNUJ2LP|xct+7DP#I7YiQ2b?`t@7%CA}u&w*g1jc$x(x^$4V`vao&W zIl`XhWkD%FSY9WfNm?lP%3ZX4$Y`21$3ELW$9|W+u-VX`BY#B338!%2E?)SO4}9J3 z&UXcM=O&|^V6PP{u-2hhM0)pmn&ZB2#5}hd3tIH(mnpDZ@L|!Q>w-9PWps z{6h1PR`@aFAZq$OR@$y$uQLej4V?;NS(?HzwqLU6xs5NPEzA7Lkszh(pN+Xr{;u?wMQb&_UYL|3s!Q% zd-kbL;Ulc)kaIgVZ606p`CB$TxFu;4tvP;l2xnZvNnR+|BR>`aLV=Or@f8+CPfAGU z63Ves$;xyH=?_~G@t+FJ*eCr1U38{P zXw#Si)nFiwvz9b?;ch29A@e466n}5O6iDN}&hgCtmo-6&&%geH#gg;mc_` zVOV_*&rWgL1-{{+uSTpjqWeN4`55%CV|I=w*ql>n@%Mo#+=OK_=G*nyX<>;w5F&)0 z2LoRCubiiZi7w~y&p?JVFR%>jAC2JG(52e zlkC{6@+~$a01DX*fHgUhh8~^iXkgPz$w+J$rzhGIt`pqw`ne#qn1^EOjJ&|7@Pg4L z6q(S<&d6?O;G{kj$HvBz%y0q?$6|*x*urb-ls;~}jmf^)F)>O4jNB&e8 zq+Yu16tm1sX`7lMpUku29I||5Sla{@8`kdBxBADD9avrBBs6i3(TTn)gs6F)2`gpe zd!HBGn7+L>=^%Jw+(k7`LQ!jHaon8HP#3`vhv%=0Z$qjVDaX#5z0F;@88DJFmJ5>8=g<#&9W$n=PzLdqrCEuYb(rC)p~9FGQq zdSJsC%vg6s(#4q_PwA@RvF?_aC+3@N%=qr3b`x{b$?j0*BA7e+r9;@AExZp?>w+2@ z!&nKy;A){h4B>CUAhH|KxAPbc+~m6flb0=9IBlPmEl9H*!qJXlHM9=NBkyJhCq@v3 z7)oiM+1c4b-yuOkC(T42mFGmi7Yor*f1-XzjW~IVeX?D^66_PZ+b*=agoDzX$EhXJ z5wIl6I5#WwCfc!?Z4U#-O`5$SCROMMdbT-*)6{`8!4z!;-gi2McU;15;eadXF!yu` z`=xnk%G`#peccS(9p+@akZ9%`PWZZrS$ZKGssbeV_hDo#3!nG#55VE^b?-7nPtlsX`yB#1h(RtIQtt^>51X5DX z;Kz$Rx`x{(wLqVaxKcAr3?na!PPWgm&t!$W#M(^5BTX46vSI2}I#Qr`sDipX2v{Ay z3~y!HR$-v*LgOPAy1eAV64NCvHS@f%+ZoJ33tUK8Tp^E`l){~BIpw>VW#)H$(`BsT ztud+6b+nZ3wwtu%=KMSxV}42We~9V(g945lZy9o7#YhnME5y=NKG?veB9k@JmE$)3 z5<&5XaZBxS-PGNo5T@NEdq7(n*tiVID!kj(Jw4&hLsJuc7|2bP9Mc0xsZ*g+WH z2^tMgWH)?mSQTQu7fXNI1lY1OnlK5ugdbhPdFcmiqU|ex{uNs<`{oF~vkep9$t~Fj zh1y0t%!!Kz@gg!hg#E}S=Wz)x2=gW~y3o3r&d5IhfzbU_L@?i6kXwSKJQXGE!#r~K zZ)5j3dKRF5?<~3&-NqSo{=!=h)OP11`}a7K3x@emGrPmkCQdVg-4L>H`{0RsVv>F! zl+c||s7-gPH#9&dE@K(o*X=^E=; zSV%4{5s);r9YeqL1F{My?HDwL7N@XV+Wid~b5jj5OPcRU~rNb55bYNp~Wg%8h0!bVZMU?3NVrZF5z2jl=h)VP@)VB zP0BRw!omPma!CEq%oxgZg&&x(QV{tl?MNmcREwd>-$OQ%keLQ}8gFk0N0J8Ck%D~} z|5s`c>+@4d1t+8*CD_BP&WTpq$m(=28ulV2!hDK}YqvTx+o3GXzKLe1u#B?{*?P$W zU18k+9aDp_6K)z4mGr$!m~RT*4H+P?)DIgLGH-V1Mg1p*^L3{-OOeu$A5J$KVhq_} zj#fxSA*KX`;beK#?L|Wr%!msWFb~ICHnd?BO=iA3tjTYMX0Rrwp;9vw$hp(_z=}-H z*Pq7iK5newV6Peb=EGex4SNKEHm{iZnz0JS(2sEg&OwaygE9CDKd>&!Tocl|Y`IZU zSp(~MC#BE6BF!e6l|=<+o^!t6VXppxrW;MM z=fyR|LA=``y8h$3X^k6%9}CcWmhV$u7+Vg93f6^9zSO{`0>pB(K9xlY@nR#(J>DVa zKj6Blk#hTvHn-@$`7<>Lwgh%zzf0_Q@EI(=9l@U0VH5Zso->Zvrl)CVHv|kZ>OY7yl1Jt}%^OjAQrib>B{xH(x|2#2=-$Ls%UVNfu4GV9T z?uGSZm_X;D)weHUR-|nfRsoy4AwJ_EE&b3(*@6U1fxvN0r`9?uSImJ%i%_k$^QSWo zZtjBQcAdHZy#RetUaX5*MR>+;9c&=GNo2;+E#KTT zuxU2*#`zLKV3Lwe=?LGF$U1R$#yMV0He;f+KFD!wlY)Ytc^ZSGn22TB9v8-d6zNWg z^*~Q^f^Hr}ps`uZa(qDEpT$Ti9J?t$;6l~z0fEWQ@H&JY(JJL){|0{tayW!@o8ut_ z?3QG(+L7?F^FP`L9D`n`xM+xRVD9W|$7)2^6B#gbq}YWWQXRB2RyRe6Lw`r0it=*y@(DnB*!7H$%mRqFW9xW5tpOTQ`kf`dJ5cSw`;~hFq{nDD;e()c|ol~a(1mk z8YoeGr5-}lUY&fl4zX7O5+Y3n(qQ~f?Hu+)KOqMOakhBAfJ~PxifQA8nR^|qOKD8Q zsy1MX!2aQ49?y$wKVUsHaF3qz;V>vrj}$O=6PY#KC2)dyX$npW!|S(^Iz1%$?g>cS z{R`+T3mjH8%N*+Toc}Gv?n5jL9}d@4Y3i4lbEgHi%7bkZFaCuM-3>?l;qZqjjg7dp zN^W%B6ksFnr>MVDOg$K3AGxInqDVh|M%4(gC??Mas{ONn+6RCn#( z;}^tX)+8Oxn$rwdcE4*VD;A$gyzqtOW0UQyy6}lv%@};jU1F~Us>Q+0^jk<8tvbvF zm}OeFO7M3j#~6Qh=}It7v9>YkM3 zQTpD}AH@l)`!bk>6&|8*9y`v})b8TyWPCdW76_|p%OqC<8bAIxl4D$y7JLf9u;6)D z?&BW<#~Q=aCf6ZVTZeiA1H00(!-tRPolW3}&iMhB<#yo=+Tx)`Aea$%Wj8blJLPD@ zq$YG|rn)$6zV`Xt=m&p+RF(tFj1F1H_P8cT+78UhVlNAe`h-Q1@M_fCxv}tX;MPAursdNo_3gKad8G_>t^8-hvmqM zUgFclH?BGD6T9&C*kI4A<966B`|xl>wjuXG++Mq-2@i)v-3!o!_)sbmL(CxvEPD*D zcFRsfF2uQL;;aABW{>vOE7(7G`Mv zZVn5xEngBGAcq~o$M)HwzSxey@rS;N(X8Q!Vbxw($z?}~d&Gx{ttb-D&e3AZI`pBb zpOF12!wQW}@-aXFW0S9&It&dBY%NDt&Tke)YIE^n;zTo`@P+sa@pgy-YHi5{p_DO; zIe&R^D~(^$bgcHphj~1T0meZqOEB4uj?(-nhMENje+}(Cgo<_gJJ_n5Epf0#Sy3b{ zz*GWXBu%wgeQl}(PaMWb`GCX6*v|E8DkdvgTwrrp+G#(PtfY+cW)*ZRzE`y}m0N7|t@oMvI`-6Y+P3B@ixN-XX2 zP!UXYCuG^;c8BvY56@n8 z#5YKMgf$YogMc=A%zpkN#vb%`JP11+Y5RhSzmw&}?m{j{+(u%eapK}yEdO0TjQFG} zeAp^e=JTV_!r1&M>`41@EW8mNl}Yd=+3LUT>4(exl(Z3tg1p$kG^Nb)4Q}xF`NbfW zBR)c+^Wtmk5TGJdQ-@qPbfNmS=xSe~`-I04vl1{1k3nnk*k~cT7|}Ep@uD5hEiALe z$(c0crigYo<}&8Krz4R)z)aHCk4O~j5M;tUwT+DvFb?fJb%?;gu1u^Drshq<#%DDW z!;f(2VG69L5lE~4OKkdmL=eW#NxZnAh@74_IKZe9?A&}3@@*b~&WC|uswrO$6hfngl|0Sx zR|u{3U;m1M0uE?Az7xkY->bZa5{@C4g>pT31fvjb&@t4SKEyLQVOb%QJNX+Z<<$!R zc~HQ&e?svnL&Quqv)n(>u%%63+aKk14!cKKl4De=bTbMG_rejK9=fwVa5tg8Or|>nF`a+8E6jWZUS;Gtv;`hetpDhA<0-fVrIiqCkM1!%VnHdFkLtsDwmS>4d9lUVKo$I- z5F^rnf-b^x_vkL-u|o`~fjU+z1dO4Hf&Wt?JV7EXW+FVQ6+za-p0S8^#uno#*vbEh zCUhi5`^TgSPAi6@i9HZ7h9<86pAzAoRS;nz6Ty$ij>eER(PBsJow6A7c`{8JU5c1# zQd_M(sAwXWS!NEi%>OgP{Dc{%eC+m30L4f!^F6vYJi=VhOFt58OwgAc+U#Nmpxtyf z8(yDis{b*;u<8M1WGB);;Lu~5schv%{UG#kgx$v53~TpvYbU5@$7A=tosR=L9=qK^ zk2Za~|F-&Xf1=D|eM6kW&xY5h!r^2M1ZfaKZ`o{v$PLij3{(NWU<_c9fkPkSI2@4B zU4z;qISo$HX^<*Gw$HQaUyMjHsH?H!7mzKN*-GyUxMXF z(2YgUE{wMZKC+j$^lkBb}G+m6LU1&Txkwx9yo zX8jrKb@`Q&LxiSb4E23KFJ(RPIn^qq)fiF>)6$*xQ`Y2DZQJ z{V5z+!&Lzimf<$S!@XJACGZxO2Hgku zMub2ac|V;RiD zIQ2~3B$t~=ljgfGd$zf!NR!@W1*M~TuB9^!+_Oc0(EAb{hSzVFj=qgp$acxv>4{c3 z3l0d-7u|2ILkaS=hw(!pP;lfCKLU0>gsO4;=6B!ec_(`cF2^#4$DiAUzx)=PO-BiY zjcmm&Y-%K`1#TNF-I^dn;by`st($`32dn;HcyW3i4hwJzS?GNSurM6+JdhC1U4*?@ z4ERrlZw2Q%bkTa^C0cJrGHDd-uM+^oAbfj&=$c=s;YwhJ`4_ z(s?-zAm}tNA&wUgFg;=uNMnK9E&WkejfpIa#@3FbobvaX&Qew1j`5Pdq6c4#bv9V~ z)99cUN50=lbj(D%KXimdag3SW<77&e3gKT5TcDRwBm^6;EE}l4=su#YE_|G3kKs51 zqaFr7FiXX3|2|rtlW=;iaBq`(0=tY@kIL7`=}rdxKWLR`F{R)**txVqOo)aD+^|U}^dF%=z#zt4UTJ zTT4DpgwP!RCYNq+W@j7(vuw);hCiGD6PEmIJlGA}Gw|n($JgXUeA&C$EytE6TWU>y zgJpu*-`$dz>epGahWG|KggiJ0zmQMih1ztX)+9_AAxtm}d6`09s*p8C$QmMb!BHA* z3+$1d&cKeIVbNvL<*$Z4bae^6Cg1`4T3jP+$9~-MnXd#+%R2z(3VU;*<|HT7O#0S2 zg{JTcr&w1+1NWP}eBve-?G$W9Qs8Sek!UY+3Ct143+zY^h}S7BDFRuK`s2|X-a<#P zQ})x8cfvm*qbYGi)FqQux5PSa>B8j@k@NJn+)z2B?+apZR z6sD&NIb(#JA(Dw5>FNSu8qNY`x_(f@(!W`s-vKJ>gGORLvKXT@Pw960w0Yv%eQ=~KQD!+HdrZNFioMd z&;ApqIP^Lfjh{t{^=wY}QVeZ5F>TRCl-ySTA}FvG2{3dt(9t1O@jBL;e2MNaD31L4 z;)K4M>mOoX`qc8c?iAIF>K*agFqV`c3(l%+neO?xU%VIf!2XZez>$hOdAtyyBG9jD z2*f>A)L z3}ckd*q1j2XK}EhCf`l!QE3g%ie6TZN^wz3IsXcL5(yu|RGQ2Odyl#uSK#OnjYc17 zHaH^uP!;(WT4`BzR)s<863!oC+(z`*0OEYSOZFZTW!n3!;DwmYyt z{`|oKJL|vv#gD`7EHqjZcFw_jQ|N8lW|PbEmH%y&!mc2)8;I;8tvm*19Dxq3AuO0% zbpN2WJ3dkk>549a{UCgTwWIxmZ^Uf4soNIaVt5Jj)KvXjDq4jg0`Ssc14+4s;D~+n#?t@Hy%N37SQsm7SefSoH@f8_%+eLj}PodMZfX? z{WlezOubWEQF4h(gPU;^{@&C$f0tRIcr^8_W-KtQU)+j@Zjw&i2<7jM%xs>5mDUBs zZoi65bNU`|iZro%JYUNxn~^f(T;P5As*W@jDH@tqoG74k{tNY3oJN*k?GneYnG>cfKTc;ux9kxe8 zj%^Ev5AIY5IkvEXaV~3p>k&N94E2L<*%gwAZx#~l0Vqy~e|YVG zX$a-nDe71p-C(hA?3F$e0uJB1sOwonL5?w;c-Am`#~FjMw;nhSX7-jDh96j*jPG8* zj=;Zo+Z`K(9Ajt;%#^OFz%OSlQ~0CGX}pMw6Z?Dvgpc{r51yyu=)F55?pn|u2CLt- z?5;()N8n7H0GZG}ZJie}Rw)-T(xo#r3J2@8W=kZ5+kbR2E(Beir%Aat#*Hm~+2k60u{=`Eg*5cI>?!7<&Pz z!=pMCh_nVZ69Xg|=8~2GF~t8|3xnuM2$Uj_XPg!`?*Ihq0;--G@u{NMB)ZMGkv>FP zjfslxe4ks!ad#;`&sia3lf2x;2@kT#qOtvSA^;jid*1+YI%M07%+hgKk;saNY~sUx zNsd=i=vy@5Tb5RqhAMyqDCX~Hq6zGLN?<2b0ux(c=T;6uKBYR!4vx3dGQMEutk4oH zn`Sjn!+{76m`u{>Ptme4pvB}X7450~Xx$1(RXOtY< zP^tl6yqLg?Sk&y1o>3|58^km?vThhD!-#SFbrLUVT?9ayk7wM9d>E;52?71jJ5~50 z;~WkCcDMBNd19&aQ&}AsBnlY?z-^LxY==N6e0cX_WGaKLb_A*?=wGNh?D8oVGqS6k zz=U81yzm>LTv}Msc|hPeuUQb|`T|zNSn<*l4wXFU?}}Cbb9mkp5A~du*U0c9i`EaA z!am@IV^SmdK_4HH>mZ%;y-T5~zaOp+pE+eqggD{O#e6hVI0rc&V_H%DaCA?r8ailb zsvCrSJ-OvK$!<{54*|~6K=%dXA*E3}W0H6Vb=wmlw$KD!w6tyQSP9{Juy#{>4obq* z%Cki+#`h)25*$i;c8GaRv&pQt1r9{ z+t>}4Ul{t*gs6HdCl3^HFr=fJX zjI1f(dP$**uZX=~mx9EyuL!;jDh=*ReB0df6Q!G>XsDC?L~sZ~^<=hsmw2aJca+5DG$$FIXB9w6}Q=mBV9HQY6kgPymmVy5TiKVu`mpn$n zh<5yl)<&)Xv zFv?5ojJw7EeG?$7Gz~zwnbZ55MG)Y3@EI^4k?@nq>lB>MgtO6~>(|*=;cZ<`>d>=2mB=%BCZ_ zz3}mpV}ln8ywX!N4T!qyWPW-UD7VmTdN#biNCpj#_p`OC?p^X`3I*k}LK{C}S>Gf; zjTJPF9^N;J-aWhyO%L=gTXrKe1SlHasA<12zv|diAC!hQ8+JPPVDy|ppp?O=tm^7^wJ-} zKO-_LwBsz(WDVoV6k%BPF*;3P3tNU78uk%!C%1e!FK(%$>e3yT2U!h`0| zI7=`zQ>ySGx`K|faMuc}mET?w=MCA|Jjhpf4}&M%t(Un9u1Q5p>rZK@8|{`p#9|9I z-G*Av4BgFon(S!nuXGwwx%VLVnDZ|{5>*`Sah>M;ChG9dm0`DoeSSm8HRvvhYYLMBB$7UBp`9*?f8Z;Hfn+r?Chi- zSOY=hH&Z$2rkEh)+X^=awlSUJcFBZPG0%*F1Fs~(H8n(9i?c`NRzmngII7^CQd~&v z?NPDUeqttCzp6nYqO-97f*%jGHVu`WW0pqOJ^ydCMUmT>5q8tmjH!Vi4qo zelEn|2nZ{ltN76i%6&a%q7Eq90U=n?$ZcY|QTntzaj~n@S1zvLrF3%2voglsO=UFu zQfUo$6SAEKpo|iA()grtBT56LS>1%xp;PBay9XzH`SxD{dZ>Im2zBX2+g605vR}? z6Dj=#c>A((Vr)y$-GG|o8l&Yi!+jf&g^$3m@=G_oqVxhNDGhbsrXyTl`KC!ptSIYw ztZcW@CPw-P8!)ZE0?0V{Ry;xbUxPToerG*2C4Z}Ud@O_gckL+|n&9^%qhI0!k@pA~D;+3;(3F84=OZ z;1bwm$&1-V@aeK)P0YsRG>1ref|}!%7NQWjZ~X;wk@-wO@h(g_xzPNLptDFyCVsLT z;txeKm+(G%#hy?xl+bYj5r(?*xI~SQ-?=~@&B91NcE;LBtj08S!m#RnG`uoW7#enh zkRC#Z71_j{!79vWtdq&!E_l!|b?S})#$BqB4e1v=k;O;|q*!X&yACak7F#d8za$X~nRrD`5Dd z@tY~P6_8O{bC8w&){W8yE=r$m1ed5TU<%bjn$9lZ0Yz7QBl)}W`XLdRb=)reicMO( z+y}A%LipDCunfHBiq~*vJ4A1K+~L7E|8~S39qckEJB0IT{}p~c|G9xbANaNZ@{!^; z9@)g#$PgVOpNW^$mS@MEwg*SxS2I3#2=Awz?@Yd;OLp3hY~ei^zVP3)_d6q&r=tgm zuMsP}(Jq@+a7+!XIXJ?Qc1HM^3Opn1N0BRZK+`UYJg*ol+MJH0A-YZPpF^uRlNgl6 zVV7y~K2B%XnSrzH@JxqrdN8|IE9|ANvxB-$vT$H9yS3VhEzh7eHtqrKz-kOCp?>pn z1!~JvzmW@Nch4VE`_28i!mmod$&=URk0U+I{_TH)1G@lw8S}o6jsz^a=}4+I?={%{ zGV{Iz5t5T_Vt#AhaW7rYydkNcB&8m{R_WpN4p1eweFYf)@m_#(U*10*6JL?ElMWLs z&Dg#n&VfBT%~jHigkn9zcCgqV#S^XU??k-)DLl-kG@+nKdj2#;F*oI`(1*CLfLSx} zmKR)bP`V%A=-;yf$b;)ht9&;x7L#c_?ZI)mrT0_0AxQ~3X-ZPfM@t! zV&Z%O$C81cBYyhD5iucKc+Lm;aM!{vUxP=W2Owr8;)xvI2-tj;rNthf#mI*MP>o>GpW0_dN(pUg-58p z!G@?1nG`JkTCj1-9vCbp)=ValE{H!O&2MRU-YE2Y$8SJL#9_NbO_{*yie_lOXLPW6K;9I0d}q zR=+*4joMySx1WBLBGgJiU>gaGsbu7{rP#ZCmy7CunJbnRp(w+uzp*55npqlu_gwLB z<~k$~f9b@JoKXkn{9(KJgqfIQ)cL|L2I6xr^B4(a7?#!F9$iu=U;OC4K!S z`Mw`s-?)HRAmZ9BtxJ0)OwP2lF6$y%Z-IUx5V7XPo@V(4Z2Y!E3tL?S<(=*(l zkdw~r6!XT^y%>LMk9$r+PQm zEx9nrL3?b#>V1kB%dMn{i#AIJt8BT!T>D5HlkIJa3e7cfFX6m9(aR*dg5X1{NP-vgvx2{T7aw_ zZff*Q^FM&&=O6%U)~<9Z;(;PI>)Xrp46W@6ECO4N117|BLP{(Enp6n%m{UqF)Or+ zj7+%}gi{Td_zzODW|qZ-hAB3{YQm8tPCK`Pe6rLWdg6uY;B+_}Ir&an$Fl9NnB zHchOT{`3t|)*&o`w2gEcv}V8)B;C!JTdzipG!-=?0T({YYA6l;oT>UG);W^2pEzi% z2>bgRF;euVo;jyVEvOoslLJfWH+oy>q6hoMh>UYHLV8G&ac*WP7wg}G=E?NJ9=)JP z2cNP-%AZVhj=}>cOHAvm?PrFrW4V}FDtG+lJN5J{U3ll2r=L{7rp0A0z!jZQhBVyP zGo-o9UPIbib3GJoNPEKE$ilyw*R$|N^F|iFYHniTn`WB1eq%bK^}=kj{?GZ~Dswwh z(3GA+>oX%;U12CS>H#B6PFJE$(uZiC`q41ykz0`4Hw4o;JI|9QQ1jwIRA0X|Au`H; z&2|&=NZ%kiO#80qFe-N6j%6Sx9R$RdkW$^#k;r7}OKKwYRQl=QgI6O#J2Wy=^V5aw zcM$3K3hmRe$jRd|mQ8cw9b5c>;1Bcy_RlmrH~{Cl(tg4Dm|lANNwD1UOMqxp?QDz6#hQb;^0CDB(tS2S=%16MR~MFUqf za76=GG;l=&S2S=%16MR~MFao;G!Td1A@kJKRM!kKl@wQ1Rr^ep)y1Wzvg#_IsjQ}Y zp{c5Pp=Xro=7F_0caKWwEv~8c$SEn2$yaUi7W;gjnkqGYRka*l>-CgWlvQ|2hefd{ zuB@ysDfW3xCDoPHHLMiQR}Q8XHMJ<8gs7-85mHiIg71ZXz;iuJMh~PU0gII~d^HtS z^M-LH!KbOdt^Gnh*VNWtx_IF*CUZL1@tE29cw6UV#t3>IWhyK76<3;AD~>YN zc<%Olprw-PQjc|D=@1!L$?lYcn>Da>j-0g^Ene=aF)gmBDy?2@T3B3FJP%|=t*N-O z##3Cn#8l(2s)AxUSjWxO8nq~^(v;`S$>LoOQ+aV!X{D!Tl+4Xj=P6m_H4UugAX7!9 zr8RaKr6 zUqy9QcTO?KT7dq_(oQ=X#!by1msyyXKgBsQhnt>T=$R3~qe&5_d(Nr?PgGmjyCBs<_HmQCwM3 zTx<2!_&uYF{l4n*iYgzY@Dt&e=QX#cdVvQQbd*oqosU08pXcu^W1o|Ea$NnLFeBK~ zC@${$gwc%&9EVF?+z>Gm*@fpZ4@V;Hy*ciQzeFN0f_~(QNaQ%ej}UT+xI6<_R$qjF zLs*J1f^aQD7kp=J2+I-vjBp*o6x@MpN0^DQ6kawj!YYKT5Y{1Fhj0MgbjB_mSB!8B z!cP%aA{-3o>Zb^2Bm5cRUl68Z%-Mp_f$${40)+YSwpSu-Kv<8k5#d^d-ErQq5up>| zE{aEZ2;pl8k0acKkX~o}5}^sK)K0!pXbPP87d868RqC zb$cLhFI|w2yaDLk8mNvbqHTY_#(n2IHTV| zI2d6Y!d!&kBYYHLPXovOgwTZ0i<5a9LJ463LMv|ItwXpM;hPAjzlU~2ScmXugg+rn z!BlZKj@$V z4B_7p_Q$Wwyoqoo!VeKXhVVGTvk3L@;(m^!G!w#|xPChuq4f~TL--8BR}n5ajP|>R z-QXhWEO4CNsF zPZ;_{_zl8VgxBM|ed)CvmwW={BOHV9RfI1h{F!j2=f>SLg^Q~*#$DgDtDa6;2=9wO z>Cs4JIHhrPg?2d3jK2~1D_RXb!EU)E$#{SK+&xL);{f>}{=PumGZZ&A$@oxwc2de860(y_!NlyO z)CYC;r1bl{IFm91U7bm``0AugM^d^yDRpd;X>3voGK@{q4?)%s@t64+?xPT&oFrqA z_&k{4NHPTy=}}H;Z+_=pIQ@|%5%n!W`dnHPuyVof4+&r!OdQ)$uARztB)JnZ;x1P( zvQqur;8FTG`UIZk`ng&CD2`6WDK4Gj>{R#pRCT6jI)|!5Tmi*7C@wy?dy+o8hdoJ8 z`rd%}jfnSAJY@VsJY)Mi+Mo^jjw2t20`?*7dthH` zFyg6?=eR?_o~Kk%I_T6r(}5i&&FIc_fReS!&+ah=I9e&HQK%M|fm2abJ<9F&7sWJG)i4l0r4 zQ=~6P`bik~qwB=l73On)mn>@6@k#5u#qUho(9M;!u^Uvoq1#v>3Ho^Uw6WW4gmyyC zpz(iOLAecGn748;&t#B%`ANp{Nhw)LrU^`bs%s_U3lNV+!V}_OlHu8jR3X`*cd$1hcF)4bHLIWB4e|G?Er=%*@yas z7uZH%g9t&51Mwc1`B*Y@ZXKXT#BV{ogEBEYbawQ`C_BtaDvF<(RGyRMElMgM3u1Rt zxhu(=pHyy7Dym8^XjF_oVVEN!~m;S#DDKxFl~WBc>*mXD5029>|2Oh(Xrk z%e64I-w@c*T%3>6*|OY!VSj;y@kx#G3FbJ~fK(0Eeg#Ndfm6SJNGjKJ7HivNkUqrC zN8F5Qo+4ztHtKOPq1Xn8mMa2IBhr2hyu1Pl!#!sR06aH6w z*B&2tRpoCcrCUIL4NnWm5-8N_LQJ8Qg0M^;O%v!NZPOB^FqzCulA$x1={(W|i$sGF zq(E1(vMjJgrJ(Yt$kw7OR=|o{U0Afhx@tcw)|HniSV58O_uTtElbK)V$FBR2|MY&E zp5O0#&OPVebI*PJ9&>+h)g0p0wY$MWLP&Hy16f(4JdI;#KeP*uZWl+l19~0&^S&@K z(Ia*7_4moXVf*_+jCoA~VQ-{dtynL0ei8jl%4N%qxE{lJi(O&SDt^Gqmhj=qEUZUDE%9J{h z*pl_!OUQSvumGd zIqX7jG!*)gSC5jR4sOgi1!B99=WEEbM)KJDX1p2jX0MfV<4_$~uR-q5keelPNcH%e zhPa)MHRc+|_E-r0sy15VTEUg+G{~&_3f7m9cV$}Th0|Vpo7dUqb+>svZPI_Tn49xn z-2!i##Ci|%Jc2w?$%8V5A}&6$fwMUjYuU8m?RLIfW#>DbN?mRSzZ-m;594&&o8RVz z+r0KBud~Bz{D5>OiSr$x{{Xq$aqQ~65bnLn7F*h25BSsnWn$uc>@(NPyt%>6o0z5S zyjlBDsB+>&zE=FnI{Y@Qr_ZKO#zR=@jMXmmw$_9;c-w0hcspt?^d7J2@Sdn?^`5C| z_V(0t3Nxj_hijmcs&?2o29usvtIWKucuj02kZg>rG%?pDcw3tu1}8t8a~L!a_*-e z^&6Xd5%dpv-K}0v%yLNpB{QJR|7!;o`N5IJO zE5N@5{9NM0z@<-2!-V();0pyu5*zQ5N%HG>8AAZupDwjFhM4C(@XrO`j`0u?J)OW> zfSoLPki=#j*fL-j3Lt%;)te@=>w%8}j|+|@Ha7x$3RqD9jBBC3QnjqEt>DkbHQliA zukz~hD9d>`d>r^Sz*jO>$3jUN7wbc7WeBKiw_28Ar4Hyy7jz}X^~f*Re7E76@H!mZ zGGc{?5mhEOLJp=?9Sb!A@!ejfajLqE*E?9KkJ+*EgECe>iXM#xP}ykR^yp5A%2@Fj@*a)r*B2$P zZ6|aOnSXjhztH|A_FshDvyc;iIXP)bSN3VRR(%6JZ6mC|o3;4$keLns%pJHk!!g>W z@k)+I^RXC|!Ke}NBFOYZ=2Ierz~2z+_QHL3d~DM3(RP?{#*UA(AvTIUJCP?^%F|w2 z6Uy|C>evBZ^xp&7KSB0kCot}mO;LNAxsc@OeTd1PYZbjgEw8na6k*B9ja z{Alb_(ImDLUfn9xL*n%)TzCIH@UsN}pjWq&_-Vi|0sel$qh4JX@mAm;25#4gtG&8Q zfs4Oa1HTiv_8+vjWU)4e!TSYxFNm(tR=dkoJBzFg)7TgNtp?KeonXexD9!2UtD5i6J>3Bv>m)t z!22b5-xD8Bj<1u~hxR(cu9alXb6?O}sUF$0&=tcyl4cysnqVxn<`7)r*gn?uDB=w8 zO_2ErWYQvYq0|HGA&KYu(4t8fI6v-y>?4ppQ)DAvoy_uAJE)UjmyQEJy8vP&M_Y9{P7c|3N>Pm>9>g#42JeUhYtdi{~KI51D5~ z25rlj5`RAQc4JF7#OrZSrxy2+u9}LIYHdGxPhzRJxwiI(gS@*Daa(IcOL5Q+D1@cU z{#T6BpVve8EZk3;9COh3r9aop@(`UBYtpg-&-SUU$a5a@+=KiaL$^quT7=VG;OzqM zBaBn7H&IWyKJFYjr0n{5!J(mxaNeRL49=e|V_V<83-_u1jQd%0X)A6A#1~!S-6;LB{Jxa!|Lt-g0T*n8)tcL`4N}l^H}v4r>p(i- zfdd{m;DG}kIN*T;9ys8E10Fcwfdd{m;DG}kIN*W5iU&rQIkSzVH4nP;9sQ0T#B(j& z!8~7og(8*oFrR!mS8h*enn04{6aGT^lm0^a*#YuXv>>2T7D)m%2FRh-@I}XlOt`v z8}Tf({QRGM=lA%|zv(;wzVG}ezVl!C&i}x3Jc@8B>nj={V^o(k-OhNOzL% zCf!TAk92C2vFRAnS)}tw+elZD_K^;ej+1U8-9oyJbSLR<(!HenNT)W_KItsdd8BQm zt4RAuhe*dsH<4~3-A1~TbT{c<(tV^;TWFtj7U?|FHquq3eWXLAX(y6VqPdbZq9%&otD$+jEA<}WuO{7~$w~_87-A%febRX%|1+-5(i*z1o8|f<2 zKGGr5anensTS&K&?j+q!x|ehx>C`sbC!Iw)kFcarWV-AlTUbZR^8lg=V_=;Z&iUvtOu zyhzf_#>TVGI{WNNny|^t?6t|voNJSrd4^4;dCujY{J(~WN`G_JBu|bMuO+Pf9h`3z z50SrY6AwrfSDG4gj6HvLbP7lqe`+W9DTnL-%GdnyQRO(Qd@V=Q#!9}Pss1IOP^6M- z{v)gK!w}W{KfAUvpPYs9r}=O5@r5TT<%qeC{{6wOMdu3?CccLBSF~SR9}>UZ$Jg?N zi4TyL>Hmg6VdDLyO}_S3ejoY%_EUbG{1chqU%tGL?=Rn4^8fXtJRk{^t|Qg>+Wfo& zl%MeNxBB?HJk|UfpH0lC{P-vVk}zq3RP*z+D zpYpX|D_{MqTY0kWf+~^Mc{01Li+eh_levkb}^DAHTD_`@g{nM#G6c8Ua z*de2Q&9D0Xe5xz?{}KA{diD=Le+~ilpXzTVu6*s^%2)f!SN|%X)09!Z_HX5fss9Y0 z{SeR9zVg++^3}fb)xPr8zVg++^40#CKKn8*N>cmESNqCW`^s1Q%2)f!SNqBjTPyCj zAabbwpGI8m&*iz=SH9X;zS>v5+E>2XSALj!?K?_1R{M3t)xPr8zVg++^3}fb)xPr8 zzVg++eea>ne!b7W^3}fb)xPr8zVg++^3}fb!^WkvNwxlpYyFk4_LZ;pm9O@dulAL% z_LZ-6zHv$IkMdmYD_`v^U+pVj?JHmHD_`v^KWtn&hg9wBgst|KulAL%_LZ;pm9O@d zulAL%`Pb6^$fZ0WdFd;a=l-)-$p0g0<7-ah&phAypg%|Dc_-z2NV`efN#~P>N#hT? z{2wA+*wS)t{p^KHR=%fx&YXrh4ULuR_dBZrGR6FsqwyqLF86D|xs?l{da{lIttNj$ z06r6V$av;Hd1(x3t|R8Xpo0Gwab2%SzYx5ge%En2OkCST?_)@N)|g|>0R1rq=aLrV zPxM?(J$gIyV&FBn%hJOd>$r0n@c|zmqn@{@=K`Ed%HmJ-bmMe;ZOAJCf>>n_XC&mWPRn|c8J4AeYk|9$d9u8 zN*=QK(Rir}2T1LXn1?|{zLSDl-^Yk|`S8bqOF570bqefnYjF4k<%fOc`4Qz8i^Gv5 zo+SMgf1>Ad;-9goF~1^S6L-M3iLXUqi2P3C_BS=)Nq9*4dwk{m1M$^9{Exsz&#xJn zPvcxtEt*?!y?@^0n%_(#uJ<|ZZ)PBWEb$C42-aII#=IA}lxGM1png7sc(>0#@>>P5 z`vUb`PCZS;SEd}Gmn%z&|BSf(-3vryUsCBWI<9E^4-nUJMe%jSbv#mhjJS?hir+|F z$1BC<+uUMT$1lb21TOWuPC69QEsmIbto(6^KO7*b{8uS|DhFu2-S#cY*HgaU=ED2) zls_Wp0J_gSNnG!P&!YUZ#6PFZ+67|j`)4Vqr~3?UW2=`Js%o!fc+f|4jYIs7;(7$jSCKc3tZwYPXB2C zJ%{*4#@h^+&4j5(p9AqS#IzIF=MEZ&d8_AGv*-6zzy`aR`oliE%cw^_lql&sM@)>k zVMnpQSplz~`bVWBBlW<)k}{M(@=AC9Ye&p5aeY4UPU7P#|6vClMf{V*-%b2n;DT z{;t>6vx&c(xUP#(44WFM=QmWqur~9FC$4sKoR&-{@ns)#xX!be62G3f`ZEc<25;+r z=Rqg`H;$Mr<)5bf0P%6+7mPdLQ^fy~_`eg^e)>h?`uxiNmIHatAfCO(DX_oSz~Mv0 zb^X~y{YQX`|8?DZ7V$?Zuj}3S6aOx8T_;~adBrQg z_p4r@o;}3%Io@-`<@d&-U!N=LW5_p&>vKnq+k>Zw-Q&z=+U4+IrUMr}`rOj~76Uep zC$9HDnrZhG;&(7Gb^JVyxZck=lk#U0*ZYX}cN5@U09?lB9tKoB{3U52<@LU${e1)Q zWyJM<8k^tbiQmtKiTynR@-L&FYnM66Ff;U6J$2@qFFOFIHVqKJ-iOOx zHsXixQjgx3`w-=OC_kHeK1#gahhGc4S~-LKztQSB!c5sk#bu2;zh5_1{QQE|bBysnKfU8n@y|Pq2|K;||4Rp>?_eCOe@zib zUxOYQL;dNXsnzjg0`R{Jz|RlBTLSQ<0eCb3Pg~qGn?LJnVBLkoD+A;|8Gzpzfd3YL zI|A{xk^Sp^bkqX@^4~nHy5GJXAip~Rf5qaSd9KSDEYR*mfc&YLpsTgx`2l!G0DcMZ zdfF-{ms@$y4Bzh1d&n#V==pd6etQ5edr66(pWfsYKSTZZ2grXb0ADBm2~9Wp{s`5W zA5#B`s~s|jj9&!k`CR~h5GLYkem*7upBsR;1>o@jd?)}P3&3v(z;6w}zZigjEdc+K z#Xa)}j>C7*pFaDJ?7hLL@x17kH1J(RICjegn{BZeo*;c0o)0s_O0rIjJK{frk z0Q~9z{L=yW=L7Kj0`P|e@F#)Svo7W21>kj6#`D($^c;Lh_4*zcfWIdIKilG-IeL{V zO_+tcfcUG+9bos6!r^k@CsU@JqyzM?55TVrz;6z~w^-aWt2ur)()j(vdsjLDr#5{f zK+m@W@TUTB*=w#^T)h>5ABOq5n*59a{8ZqFhmJL)T)(mSW{#Ej%oA)EyVnz#=LYCm z9Dw&wzrJsw`qR{ZGu!tPGKK^6d?En<4D~c}zD`ijUBpvtmoE^PeIBa$XGZ}3{Q&&w z0Q~s?{LKKo4ojm0u!0!ye9|*u73BZ4BanFR=Pv6D*?j=5rae_M|HoZ)ICF5MLqbCCN9~H13J2e2G zAAolR;2#LUFAu%$nF9Yyb1MsQXbD~~X-Tx;A;B$e?`oTY*ygxv`BLMFTz)uKRhxA%`&vbHpyMXPrHbBn} z0r;%}_+8XLoeR=8sQ*g=@?Q)`^K>koHRjc(E6YWi& zj!m%>4KWjm;3QIr_M7BjvH$?vQ_KH}0yZNj!G6}UHD)j|TqxKLuh$ln1*3ar=dkm1 zA(PGwntUQ91b=x`%*L_hd2ckA&E!q*fXT0ueTlIHcYiFE#Ma6NhlLD}hwZlB@nSkX zVxqZRbg(}misHHGI%oi0hh3dv-JqCxlgeeIanqYxXL8t{SxOeqVqa`0oHy7EyD!;a z%q4`4?UrdH4;?7RKxW-QGM+F}kx5bRC(cs49H}IBk{*N`P&t#!WU$+MqEO8BOW|GZ z)}>|7W)ujU$q(n^z1Vv@m+sBv;)$Hwj~xyvKeg#?|tFa**YcTDy{AgK*i495uy0=LPFj>>-{hqR_EaB05;i zik~4R^~)A=u2lqcHSABI?xm(greZFi$w>>N=@Mp5Vk8SEYikb{)7W}?O*)!iW3a<^ zZ*LKSfmo1Zh~`Z?n$02t5P8YI5!MXl%fYqD{@6eYTd5~=E|wSu;`9D!Hjm(p4MMT( z#$Cwt_opPZgqiM(#%#;DdXd?OCMn2FSZ;u+)?eH|(!nv!EEWknBu^Xju zhHPUrB=fl_-T{F&X+^7p5aY`3Q(qX#CX6r>xxxrt=Bh58)g28b6YCJg_^be9!1aex z7hpDo3_e)kyq*TZcJX>Lh=RCwaxG~qDs`4%6AEKOTwh9Oif|M6!$%klA*2MkB7-;? zhFOdXsf2B4?NaNa4RcHpZ6}-V+k-5P$I*Lp8LgUp2O*EZ#upG`YcMz%6ggdL1>quy z5zR$>H&2GAT%sQxG?9xG(vesyGYG4ZNIVniPi13q5%e~k+D-s! z&xfV>(35a1>8K(x43bPCdnD4f99!o{7A$FvL~w>Tg(3^u3AVQ`H<5*lmNqvniY#qw zTY=5^yPBF8EfB$q;>0Tf*Rdk4AHc5s9WACU)`E{ltVk4^;&C|w(CI#8fsOE`9ZYv} zFoB9kmlYGakrlSbKyW6B5-HXxq7u!HJ-3t?i?w013(pLzKm7#nj zg0U+WiRFvd(I!8b#YZd(ec^?RI+|M|XEdDAaF+Dbd@^1Eb@vsl)s*zi$-)-1sib^O z10~aep2dJW@|oB<=S2GOS&YF+{b$Pr63NF9C$=sK)ZPf!#c;MFksHELBsITy@e+*X(Nw#g3nCHeE)nZ| zv}JLS6Q6OPji{{Q@~>~QDlMpOtxk?8u8p8gzFC6uXG?A=IV3U^O%)UFe@rp> z3PnY+*s!juX?*&if{W&B#gy#ov=aTpIj&S7S3Wq`bld7h^Lg>01{~Y86tyl4O?SGt z3nQ>rqAMe3i)5x2FR*(eqZaPd9r;D}OCARGmu|LT7=^>&oGlh&75e6gaC&^lu&l-s{7sF03`71hC*h!3Z@c(k5&{%E$V6dS+g{uEnwFi@|# zu+vYEz{L_MRM&%zdsaQ4KYKJ5l7bTkx8tw>y!m0$@%$bRla+DwL= z#nA$mzL5wV$st)vATz)C9{(!a4fR`up|h!g?u)6^O+@)j#7&d7^cY8A-$p^cGINux zimi2-ze*#e4D8H_ZY_~=Zs zko6C>u6K!3bLkG4mT!}wyy%%Jv{c6+qSpqGJ!-Q{PH_pAgKk!fM0)di23cvS#zfPc z$)u2RWH5$ym@NJZtSwwkB9bY#CK4N16Opg!lnOuBbYF~%hthE2T1Gmttpyq(md=)> zWeTz3!eLN4mr2Czr%*}^8644unA37;cx{CpZClYhdZTuR;ryr_P)uY;Dok`^xROb} zD}#glNZQ4sQ)CArokBbEP52zo5IoqLK&MD>Ds%;^RM}UM4!B^rfJrFNaWYZRaTyIQ zD`wN(VV7`CaxKz_$}ouW~Wn~1{TOiy4v06mYj3( z@f;a)`ZBpS6`Ez{?ZTB}UM6o0FLv%|i^1K|VyaMX&vp=)!_{UcrH!vMuPi*!Gw|u9 z3hh{PqaYPfBq0N-PERZrf;wxbVvK8ULZkb%cW`*r(aArx$|bdoIx-@;K4`javvt{V zFKN3VRv4~-x7i-tDWCpA<6#(WahKAneZTcgE|E=*;HnD?PP*NV8f8sd-douL@V+9# z0^I_%kaKiEkL+?HYZ|bIPc-xo78|mC<0nN*xaz{@34Q4!=(HdQbUc6e;CBXWbR-oeY*=4nU_aJ@bdM_xU1 zIo!hC*c^H+xx@q%*y2Rf$ry@&t9|*e!CG^gF~S*K^`&u9sL#oH+vopHjz>@P$#R$LTBO+kC03G<-I&fO2hVS@;|+AsmMGWl;*GrN*ik~$< z-i)y+iT@>w+SmOWllnKmiC3uoo|^}eXmqP}41%g0l5uP?v8 z&!H5LAu5u;{Om$@>r|f{u94(a!*Lb zkY+nl`d{-ao$AY9df#r3%QC~)V46?qbYFgbZ?671m%j(k^UG6x`3a7XMt;#%sz0CC zkG@PnW$?6~RLOC)->3ko=J!84fVfTN)Yn9oe>3e5|E-gk_w8@TpVnK)Up&4kmEB3Y i|LYEO7EaWLB2(?E?BO`@RnfBEcY>3g>C50dHU9(CTaEDm diff --git a/dwm.c b/dwm.c index cf84ee3..035c2a9 100644 --- a/dwm.c +++ b/dwm.c @@ -79,12 +79,27 @@ } \ } +#define SYSTEM_TRAY_REQUEST_DOCK 0 +/* XEMBED messages */ +#define XEMBED_EMBEDDED_NOTIFY 0 +#define XEMBED_WINDOW_ACTIVATE 1 +#define XEMBED_FOCUS_IN 4 +#define XEMBED_MODALITY_ON 10 +#define XEMBED_MAPPED (1 << 0) +#define XEMBED_WINDOW_ACTIVATE 1 +#define XEMBED_WINDOW_DEACTIVATE 2 +#define VERSION_MAJOR 0 +#define VERSION_MINOR 0 +#define XEMBED_EMBEDDED_VERSION (VERSION_MAJOR << 16) | VERSION_MINOR + /* enums */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ enum { SchemeNorm, SchemeSel }; /* color schemes */ enum { NetSupported, NetWMName, NetWMState, NetWMCheck, + NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation, NetSystemTrayOrientationHorz, NetWMFullscreen, NetActiveWindow, NetWMWindowType, NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ +enum { Manager, Xembed, XembedInfo, XLast }; /* Xembed atoms */ enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ @@ -168,6 +183,12 @@ typedef struct { int monitor; } Rule; +typedef struct Systray Systray; +struct Systray { + Window win; + Client *icons; +}; + /* function declarations */ static void applyrules(Client *c); static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact); @@ -199,6 +220,7 @@ static void focusstack(const Arg *arg); static Atom getatomprop(Client *c, Atom prop); static int getrootptr(int *x, int *y); static long getstate(Window w); +static unsigned int getsystraywidth(); static int gettextprop(Window w, Atom atom, char *text, unsigned int size); static void grabbuttons(Client *c, int focused); static void grabkeys(void); @@ -217,13 +239,16 @@ static void pop(Client *); static void propertynotify(XEvent *e); static void quit(const Arg *arg); static Monitor *recttomon(int x, int y, int w, int h); +static void removesystrayicon(Client *i); static void resize(Client *c, int x, int y, int w, int h, int interact); +static void resizebarwin(Monitor *m); static void resizeclient(Client *c, int x, int y, int w, int h); static void resizemouse(const Arg *arg); +static void resizerequest(XEvent *e); static void restack(Monitor *m); static void run(void); static void scan(void); -static int sendevent(Client *c, Atom proto); +static int sendevent(Window w, Atom proto, int m, long d0, long d1, long d2, long d3, long d4); static void sendmon(Client *c, Monitor *m); static void setclientstate(Client *c, long state); static void setfocus(Client *c); @@ -236,6 +261,7 @@ static void seturgent(Client *c, int urg); static void showhide(Client *c); static void sigchld(int unused); static void spawn(const Arg *arg); +static Monitor *systraytomon(Monitor *m); static void tag(const Arg *arg); static void tagmon(const Arg *arg); static void tile(Monitor *); @@ -253,12 +279,16 @@ static int updategeom(void); static void updatenumlockmask(void); static void updatesizehints(Client *c); static void updatestatus(void); +static void updatesystray(void); +static void updatesystrayicongeom(Client *i, int w, int h); +static void updatesystrayiconstate(Client *i, XPropertyEvent *ev); static void updatetitle(Client *c); static void updatewindowtype(Client *c); static void updatewmhints(Client *c); static void view(const Arg *arg); static Client *wintoclient(Window w); static Monitor *wintomon(Window w); +static Client *wintosystrayicon(Window w); static int xerror(Display *dpy, XErrorEvent *ee); static int xerrordummy(Display *dpy, XErrorEvent *ee); static int xerrorstart(Display *dpy, XErrorEvent *ee); @@ -272,6 +302,7 @@ static Client *termforwin(const Client *c); static pid_t winpid(Window w); /* variables */ +static Systray *systray = NULL; static const char broken[] = "broken"; static char stext[256]; static int screen; @@ -294,9 +325,10 @@ static void (*handler[LASTEvent]) (XEvent *) = { [MapRequest] = maprequest, [MotionNotify] = motionnotify, [PropertyNotify] = propertynotify, + [ResizeRequest] = resizerequest, [UnmapNotify] = unmapnotify }; -static Atom wmatom[WMLast], netatom[NetLast]; +static Atom wmatom[WMLast], netatom[NetLast], xatom[XLast]; static int running = 1; static Cur *cursor[CurLast]; static Clr **scheme; @@ -527,7 +559,7 @@ buttonpress(XEvent *e) arg.ui = 1 << i; } else if (ev->x < x + blw) click = ClkLtSymbol; - else if (ev->x > selmon->ww - (int)TEXTW(stext)) + else if (ev->x > selmon->ww - (int)TEXTW(stext) - getsystraywidth()) click = ClkStatusText; else click = ClkWinTitle; @@ -570,6 +602,13 @@ cleanup(void) XUngrabKey(dpy, AnyKey, AnyModifier, root); while (mons) cleanupmon(mons); + + if (showsystray) { + XUnmapWindow(dpy, systray->win); + XDestroyWindow(dpy, systray->win); + free(systray); + } + for (i = 0; i < CurLast; i++) drw_cur_free(drw, cursor[i]); for (i = 0; i < LENGTH(colors); i++) @@ -600,9 +639,58 @@ cleanupmon(Monitor *mon) void clientmessage(XEvent *e) { + XWindowAttributes wa; + XSetWindowAttributes swa; XClientMessageEvent *cme = &e->xclient; Client *c = wintoclient(cme->window); + if (showsystray && cme->window == systray->win && cme->message_type == netatom[NetSystemTrayOP]) { + /* add systray icons */ + if (cme->data.l[1] == SYSTEM_TRAY_REQUEST_DOCK) { + if (!(c = (Client *)calloc(1, sizeof(Client)))) + die("fatal: could not malloc() %u bytes\n", sizeof(Client)); + if (!(c->win = cme->data.l[2])) { + free(c); + return; + } + c->mon = selmon; + c->next = systray->icons; + systray->icons = c; + if (!XGetWindowAttributes(dpy, c->win, &wa)) { + /* use sane defaults */ + wa.width = bh; + wa.height = bh; + wa.border_width = 0; + } + c->x = c->oldx = c->y = c->oldy = 0; + c->w = c->oldw = wa.width; + c->h = c->oldh = wa.height; + c->oldbw = wa.border_width; + c->bw = 0; + c->isfloating = True; + /* reuse tags field as mapped status */ + c->tags = 1; + updatesizehints(c); + updatesystrayicongeom(c, wa.width, wa.height); + XAddToSaveSet(dpy, c->win); + XSelectInput(dpy, c->win, StructureNotifyMask | PropertyChangeMask | ResizeRedirectMask); + XReparentWindow(dpy, c->win, systray->win, 0, 0); + /* use parents background color */ + swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + XChangeWindowAttributes(dpy, c->win, CWBackPixel, &swa); + sendevent(c->win, netatom[Xembed], StructureNotifyMask, CurrentTime, XEMBED_EMBEDDED_NOTIFY, 0 , systray->win, XEMBED_EMBEDDED_VERSION); + /* FIXME not sure if I have to send these events, too */ + sendevent(c->win, netatom[Xembed], StructureNotifyMask, CurrentTime, XEMBED_FOCUS_IN, 0 , systray->win, XEMBED_EMBEDDED_VERSION); + sendevent(c->win, netatom[Xembed], StructureNotifyMask, CurrentTime, XEMBED_WINDOW_ACTIVATE, 0 , systray->win, XEMBED_EMBEDDED_VERSION); + sendevent(c->win, netatom[Xembed], StructureNotifyMask, CurrentTime, XEMBED_MODALITY_ON, 0 , systray->win, XEMBED_EMBEDDED_VERSION); + XSync(dpy, False); + resizebarwin(selmon); + updatesystray(); + setclientstate(c, NormalState); + } + return; + } + if (!c) return; if (cme->message_type == netatom[NetWMState]) { @@ -655,7 +743,7 @@ configurenotify(XEvent *e) for (c = m->clients; c; c = c->next) if (c->isfullscreen) resizeclient(c, m->mx, m->my, m->mw, m->mh); - XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); + resizebarwin(m); } focus(NULL); arrange(NULL); @@ -741,7 +829,11 @@ destroynotify(XEvent *e) if ((c = wintoclient(ev->window))) unmanage(c, 1); - + else if ((c = wintosystrayicon(ev->window))) { + removesystrayicon(c); + resizebarwin(selmon); + updatesystray(); + } else if ((c = swallowingclient(ev->window))) unmanage(c->swallowing, 1); } @@ -787,19 +879,23 @@ dirtomon(int dir) void drawbar(Monitor *m) { - int x, w, tw = 0; + int x, w, tw = 0, stw = 0; int boxs = drw->fonts->h / 9; int boxw = drw->fonts->h / 6 + 2; unsigned int i, occ = 0, urg = 0; Client *c; + if(showsystray && m == systraytomon(m) && !systrayonleft) + stw = getsystraywidth(); + /* draw status first so it can be overdrawn by tags later */ if (m == selmon) { /* status is only drawn on selected monitor */ drw_setscheme(drw, scheme[SchemeNorm]); - tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ - drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0); + tw = TEXTW(stext) - lrpad / 2 + 2; /* 2px extra right padding */ + drw_text(drw, m->ww - tw - stw, 0, tw, bh, lrpad / 2 - 2, stext, 0); } + resizebarwin(m); for (c = m->clients; c; c = c->next) { occ |= c->tags; if (c->isurgent) @@ -820,7 +916,7 @@ drawbar(Monitor *m) drw_setscheme(drw, scheme[SchemeNorm]); x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); - if ((w = m->ww - tw - x) > bh) { + if ((w = m->ww - tw - stw - x) > bh) { if (m->sel) { drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); @@ -831,7 +927,7 @@ drawbar(Monitor *m) drw_rect(drw, x, 0, w, bh, 1, 1); } } - drw_map(drw, m->barwin, 0, 0, m->ww, bh); + drw_map(drw, m->barwin, 0, 0, m->ww - stw, bh); } void @@ -868,8 +964,11 @@ expose(XEvent *e) Monitor *m; XExposeEvent *ev = &e->xexpose; - if (ev->count == 0 && (m = wintomon(ev->window))) + if (ev->count == 0 && (m = wintomon(ev->window))) { drawbar(m); + if (m == selmon) + updatesystray(); + } } void @@ -955,14 +1054,32 @@ getatomprop(Client *c, Atom prop) unsigned char *p = NULL; Atom da, atom = None; - if (XGetWindowProperty(dpy, c->win, prop, 0L, sizeof atom, False, XA_ATOM, + /* FIXME getatomprop should return the number of items and a pointer to + * the stored data instead of this workaround */ + Atom req = XA_ATOM; + if (prop == xatom[XembedInfo]) + req = xatom[XembedInfo]; + + if (XGetWindowProperty(dpy, c->win, prop, 0L, sizeof atom, False, req, &da, &di, &dl, &dl, &p) == Success && p) { atom = *(Atom *)p; + if (da == xatom[XembedInfo] && dl == 2) + atom = ((Atom *)p)[1]; XFree(p); } return atom; } +unsigned int +getsystraywidth() +{ + unsigned int w = 0; + Client *i; + if(showsystray) + for(i = systray->icons; i; w += i->w + systrayspacing, i = i->next) ; + return w ? w + systrayspacing : 1; +} + int getrootptr(int *x, int *y) { @@ -1095,7 +1212,8 @@ killclient(const Arg *arg) { if (!selmon->sel) return; - if (!sendevent(selmon->sel, wmatom[WMDelete])) { + + if (!sendevent(selmon->sel->win, wmatom[WMDelete], NoEventMask, wmatom[WMDelete], CurrentTime, 0 , 0, 0)) { XGrabServer(dpy); XSetErrorHandler(xerrordummy); XSetCloseDownMode(dpy, DestroyAll); @@ -1219,6 +1337,14 @@ maprequest(XEvent *e) static XWindowAttributes wa; XMapRequestEvent *ev = &e->xmaprequest; + Client *i; + if ((i = wintosystrayicon(ev->window))) { + sendevent(i->win, netatom[Xembed], StructureNotifyMask, CurrentTime, XEMBED_WINDOW_ACTIVATE, 0, systray->win, XEMBED_EMBEDDED_VERSION); + resizebarwin(selmon); + updatesystray(); + } + + if (!XGetWindowAttributes(dpy, ev->window, &wa)) return; if (wa.override_redirect) @@ -1342,6 +1468,17 @@ propertynotify(XEvent *e) Window trans; XPropertyEvent *ev = &e->xproperty; + if ((c = wintosystrayicon(ev->window))) { + if (ev->atom == XA_WM_NORMAL_HINTS) { + updatesizehints(c); + updatesystrayicongeom(c, c->w, c->h); + } + else + updatesystrayiconstate(c, ev); + resizebarwin(selmon); + updatesystray(); + } + if ((ev->window == root) && (ev->atom == XA_WM_NAME)) updatestatus(); else if (ev->state == PropertyDelete) @@ -1392,6 +1529,19 @@ recttomon(int x, int y, int w, int h) return r; } +void +removesystrayicon(Client *i) +{ + Client **ii; + + if (!showsystray || !i) + return; + for (ii = &systray->icons; *ii && *ii != i; ii = &(*ii)->next); + if (ii) + *ii = i->next; + free(i); +} + void resize(Client *c, int x, int y, int w, int h, int interact) { @@ -1399,6 +1549,14 @@ resize(Client *c, int x, int y, int w, int h, int interact) resizeclient(c, x, y, w, h); } +void +resizebarwin(Monitor *m) { + unsigned int w = m->ww; + if (showsystray && m == systraytomon(m) && !systrayonleft) + w -= getsystraywidth(); + XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, w, bh); +} + void resizeclient(Client *c, int x, int y, int w, int h) { @@ -1414,6 +1572,19 @@ resizeclient(Client *c, int x, int y, int w, int h) XSync(dpy, False); } +void +resizerequest(XEvent *e) +{ + XResizeRequestEvent *ev = &e->xresizerequest; + Client *i; + + if ((i = wintosystrayicon(ev->window))) { + updatesystrayicongeom(i, ev->width, ev->height); + resizebarwin(selmon); + updatesystray(); + } +} + void resizemouse(const Arg *arg) { @@ -1560,26 +1731,37 @@ setclientstate(Client *c, long state) } int -sendevent(Client *c, Atom proto) +sendevent(Window w, Atom proto, int mask, long d0, long d1, long d2, long d3, long d4) { int n; - Atom *protocols; + Atom *protocols, mt; int exists = 0; XEvent ev; - if (XGetWMProtocols(dpy, c->win, &protocols, &n)) { - while (!exists && n--) - exists = protocols[n] == proto; - XFree(protocols); + if (proto == wmatom[WMTakeFocus] || proto == wmatom[WMDelete]) { + mt = wmatom[WMProtocols]; + if (XGetWMProtocols(dpy, w, &protocols, &n)) { + while (!exists && n--) + exists = protocols[n] == proto; + XFree(protocols); + } } + else { + exists = True; + mt = proto; + } + if (exists) { ev.type = ClientMessage; - ev.xclient.window = c->win; - ev.xclient.message_type = wmatom[WMProtocols]; + ev.xclient.window = w; + ev.xclient.message_type = mt; ev.xclient.format = 32; - ev.xclient.data.l[0] = proto; - ev.xclient.data.l[1] = CurrentTime; - XSendEvent(dpy, c->win, False, NoEventMask, &ev); + ev.xclient.data.l[0] = d0; + ev.xclient.data.l[1] = d1; + ev.xclient.data.l[2] = d2; + ev.xclient.data.l[3] = d3; + ev.xclient.data.l[4] = d4; + XSendEvent(dpy, w, False, mask, &ev); } return exists; } @@ -1593,7 +1775,7 @@ setfocus(Client *c) XA_WINDOW, 32, PropModeReplace, (unsigned char *) &(c->win), 1); } - sendevent(c, wmatom[WMTakeFocus]); + sendevent(c->win, wmatom[WMTakeFocus], NoEventMask, wmatom[WMTakeFocus], CurrentTime, 0, 0, 0); } void @@ -1692,6 +1874,10 @@ setup(void) wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False); netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False); netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); + netatom[NetSystemTray] = XInternAtom(dpy, "_NET_SYSTEM_TRAY_S0", False); + netatom[NetSystemTrayOP] = XInternAtom(dpy, "_NET_SYSTEM_TRAY_OPCODE", False); + netatom[NetSystemTrayOrientation] = XInternAtom(dpy, "_NET_SYSTEM_TRAY_ORIENTATION", False); + netatom[NetSystemTrayOrientationHorz] = XInternAtom(dpy, "_NET_SYSTEM_TRAY_ORIENTATION_HORZ", False); netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); @@ -1699,6 +1885,9 @@ setup(void) netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False); + xatom[Manager] = XInternAtom(dpy, "MANAGER", False); + xatom[Xembed] = XInternAtom(dpy, "_XEMBED", False); + xatom[XembedInfo] = XInternAtom(dpy, "_XEMBED_INFO", False); /* init cursors */ cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr); cursor[CurResize] = drw_cur_create(drw, XC_sizing); @@ -1707,6 +1896,8 @@ setup(void) scheme = ecalloc(LENGTH(colors), sizeof(Clr *)); for (i = 0; i < LENGTH(colors); i++) scheme[i] = drw_scm_create(drw, colors[i], 3); + /* init system tray */ + updatesystray(); /* init bars */ updatebars(); updatestatus(); @@ -1838,7 +2029,18 @@ togglebar(const Arg *arg) { selmon->showbar = !selmon->showbar; updatebarpos(selmon); - XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); + resizebarwin(selmon); + if (showsystray) { + XWindowChanges wc; + if (!selmon->showbar) + wc.y = -bh; + else if (selmon->showbar) { + wc.y = 0; + if (!selmon->topbar) + wc.y = selmon->mh - bh; + } + XConfigureWindow(dpy, systray->win, CWY, &wc); + } arrange(selmon); } @@ -1950,11 +2152,18 @@ unmapnotify(XEvent *e) else unmanage(c, 0); } + else if ((c = wintosystrayicon(ev->window))) { + /* KLUDGE! sometimes icons occasionally unmap their windows, but do + * _not_ destroy them. We map those windows back */ + XMapRaised(dpy, c->win); + updatesystray(); + } } void updatebars(void) { + unsigned int w; Monitor *m; XSetWindowAttributes wa = { .override_redirect = True, @@ -1965,10 +2174,15 @@ updatebars(void) for (m = mons; m; m = m->next) { if (m->barwin) continue; - m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen), + w = m->ww; + if (showsystray && m == systraytomon(m)) + w -= getsystraywidth(); + m->barwin = XCreateWindow(dpy, root, m->wx, m->by, w, bh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor); + if (showsystray && m == systraytomon(m)) + XMapRaised(dpy, systray->win); XMapRaised(dpy, m->barwin); XSetClassHint(dpy, m->barwin, &ch); } @@ -2144,6 +2358,125 @@ updatestatus(void) if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext))) strcpy(stext, "dwm-"VERSION); drawbar(selmon); + updatesystray(); +} + + +void +updatesystrayicongeom(Client *i, int w, int h) +{ + if (i) { + i->h = bh; + if (w == h) + i->w = bh; + else if (h == bh) + i->w = w; + else + i->w = (int) ((float)bh * ((float)w / (float)h)); + applysizehints(i, &(i->x), &(i->y), &(i->w), &(i->h), False); + /* force icons into the systray dimensions if they don't want to */ + if (i->h > bh) { + if (i->w == i->h) + i->w = bh; + else + i->w = (int) ((float)bh * ((float)i->w / (float)i->h)); + i->h = bh; + } + } +} + +void +updatesystrayiconstate(Client *i, XPropertyEvent *ev) +{ + long flags; + int code = 0; + + if (!showsystray || !i || ev->atom != xatom[XembedInfo] || + !(flags = getatomprop(i, xatom[XembedInfo]))) + return; + + if (flags & XEMBED_MAPPED && !i->tags) { + i->tags = 1; + code = XEMBED_WINDOW_ACTIVATE; + XMapRaised(dpy, i->win); + setclientstate(i, NormalState); + } + else if (!(flags & XEMBED_MAPPED) && i->tags) { + i->tags = 0; + code = XEMBED_WINDOW_DEACTIVATE; + XUnmapWindow(dpy, i->win); + setclientstate(i, WithdrawnState); + } + else + return; + sendevent(i->win, xatom[Xembed], StructureNotifyMask, CurrentTime, code, 0, + systray->win, XEMBED_EMBEDDED_VERSION); +} + +void +updatesystray(void) +{ + XSetWindowAttributes wa; + XWindowChanges wc; + Client *i; + Monitor *m = systraytomon(NULL); + unsigned int x = m->mx + m->mw; + unsigned int sw = TEXTW(stext) - lrpad + systrayspacing; + unsigned int w = 1; + + if (!showsystray) + return; + if (systrayonleft) + x -= sw + lrpad / 2; + if (!systray) { + /* init systray */ + if (!(systray = (Systray *)calloc(1, sizeof(Systray)))) + die("fatal: could not malloc() %u bytes\n", sizeof(Systray)); + systray->win = XCreateSimpleWindow(dpy, root, x, m->by, w, bh, 0, 0, scheme[SchemeSel][ColBg].pixel); + wa.event_mask = ButtonPressMask | ExposureMask; + wa.override_redirect = True; + wa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + XSelectInput(dpy, systray->win, SubstructureNotifyMask); + XChangeProperty(dpy, systray->win, netatom[NetSystemTrayOrientation], XA_CARDINAL, 32, + PropModeReplace, (unsigned char *)&netatom[NetSystemTrayOrientationHorz], 1); + XChangeWindowAttributes(dpy, systray->win, CWEventMask|CWOverrideRedirect|CWBackPixel, &wa); + XMapRaised(dpy, systray->win); + XSetSelectionOwner(dpy, netatom[NetSystemTray], systray->win, CurrentTime); + if (XGetSelectionOwner(dpy, netatom[NetSystemTray]) == systray->win) { + sendevent(root, xatom[Manager], StructureNotifyMask, CurrentTime, netatom[NetSystemTray], systray->win, 0, 0); + XSync(dpy, False); + } + else { + fprintf(stderr, "dwm: unable to obtain system tray.\n"); + free(systray); + systray = NULL; + return; + } + } + for (w = 0, i = systray->icons; i; i = i->next) { + /* make sure the background color stays the same */ + wa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + XChangeWindowAttributes(dpy, i->win, CWBackPixel, &wa); + XMapRaised(dpy, i->win); + w += systrayspacing; + i->x = w; + XMoveResizeWindow(dpy, i->win, i->x, 0, i->w, i->h); + w += i->w; + if (i->mon != m) + i->mon = m; + } + w = w ? w + systrayspacing : 1; + x -= w; + XMoveResizeWindow(dpy, systray->win, x, m->by, w, bh); + wc.x = x; wc.y = m->by; wc.width = w; wc.height = bh; + wc.stack_mode = Above; wc.sibling = m->barwin; + XConfigureWindow(dpy, systray->win, CWX|CWY|CWWidth|CWHeight|CWSibling|CWStackMode, &wc); + XMapWindow(dpy, systray->win); + XMapSubwindows(dpy, systray->win); + /* redraw background */ + XSetForeground(dpy, drw->gc, scheme[SchemeNorm][ColBg].pixel); + XFillRectangle(dpy, systray->win, drw->gc, 0, 0, w, bh); + XSync(dpy, False); } void @@ -2341,6 +2674,16 @@ wintoclient(Window w) return NULL; } +Client * +wintosystrayicon(Window w) { + Client *i = NULL; + + if (!showsystray || !w) + return i; + for (i = systray->icons; i && i->win != w; i = i->next) ; + return i; +} + Monitor * wintomon(Window w) { @@ -2405,6 +2748,22 @@ xrdb(const Arg *arg) arrange(NULL); } +Monitor * +systraytomon(Monitor *m) { + Monitor *t; + int i, n; + if(!systraypinning) { + if(!m) + return selmon; + return m == selmon ? m : NULL; + } + for(n = 1, t = mons; t && t->next; n++, t = t->next) ; + for(i = 1, t = mons; t && t->next && i < systraypinning; i++, t = t->next) ; + if(systraypinningfailfirst && n < systraypinning) + return mons; + return t; +} + void zoom(const Arg *arg) { diff --git a/dwm.o b/dwm.o index b54d0bca353e8b6e346839d4640b2cac1f529de8..8bd9e7e4664a8b26c0d3a2b3e97a6c3671da8c65 100644 GIT binary patch literal 73672 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 diff --git a/util.o b/util.o index 3b48c2f667e0d2c6574012f800ee0078a6ec0b61..8e55fa18d6ada0bfba70d02362b40ffaf2d35ebf 100644 GIT binary patch delta 221 zcmca0xIu7&2BX17O*=+DV?851Lj@xPBVz*#1H;X^jM|Khijy0e#2Gb!q&}l5m~Ay# zkXfA38pNLLz$`I2k6DYA0R$#bXI5ooo4l7$ckX$VdUAI%F@ipSh4vfD?1~j%;b-3=1gUblRq+wO?F_{V62#&$!^cM sV)9BL*)aJfyFKR*Mu>?PlMOk{ISrU0Jg3QpK;8zBEkIB`*^o^h0F@0gvj6}9 delta 239 zcmdlWctLQ224lcRO*=+5Lp?)11BT6|jM|KoFEB|knolld5@)mnlP+M=8%zdFW@Hv; z3b#!q%<)}CC!tTOowGtcA|%qol=lg~1X zPyWNq!+3wPB8&KB4i+8|kM}DB1h4=p?#a3=;*7kTU0IqL8E0%h$;!^iC_MQhn>kZ1 z<77itvB?VT8jJ;#J=yIU7fkL1lPB5jIX^H$j0l)4$YIXuzzpF Date: Sun, 20 Aug 2023 21:10:25 -0300 Subject: [PATCH 2/2] add fonts to download --- fonts.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 fonts.txt diff --git a/fonts.txt b/fonts.txt new file mode 100644 index 0000000..cf40c56 --- /dev/null +++ b/fonts.txt @@ -0,0 +1,4 @@ +noto-fonts-emoji + "Iosevka Nerd Font:size=12:style=Regular", + "Noto Color Emoji:size=12:antialias=true:autohint=true", + "Material Design Icons Desktop:size=11"};