From 9182d9931e62d1aa0c4d232dfb92aa34988978d0 Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 28 Dec 2025 04:30:10 +0100 Subject: [PATCH] feat: add news ticker with sentiment analysis and error codes docs: update site links to retoor repository and documentation chore: add author lines to header files build: rebuild binary and object files --- bin/dwn | Bin 216616 -> 216696 bytes build/keys.o | Bin 38520 -> 39448 bytes build/main.o | Bin 26312 -> 26472 bytes build/news.o | Bin 20416 -> 21296 bytes include/ai.h | 1 + include/applauncher.h | 1 + include/atoms.h | 1 + include/client.h | 1 + include/config.h | 1 + include/decorations.h | 1 + include/dwn.h | 12 ++++++++++ include/keys.h | 1 + include/layout.h | 1 + include/news.h | 10 ++++++++ include/notifications.h | 1 + include/panel.h | 1 + include/systray.h | 1 + include/util.h | 6 +++++ include/workspace.h | 1 + site/ai-features.html | 14 +++++------ site/architecture.html | 14 +++++------ site/configuration.html | 14 +++++------ site/documentation.html | 20 ++++++++-------- site/features.html | 31 ++++++++++++++++++------- site/index.html | 20 ++++++++-------- site/installation.html | 24 +++++++++---------- site/shortcuts.html | 50 +++++++++++++++++++++++++++++++++------- src/ai.c | 1 + src/applauncher.c | 1 + src/atoms.c | 1 + src/client.c | 1 + src/config.c | 1 + src/decorations.c | 1 + src/keys.c | 44 ++++++++++++++++++++++++++++++++--- src/layout.c | 1 + src/main.c | 13 +++++++---- src/news.c | 42 ++++++++++++++++++++++++++++++++- src/notifications.c | 1 + src/panel.c | 1 + src/systray.c | 1 + src/util.c | 1 + src/workspace.c | 1 + 42 files changed, 262 insertions(+), 76 deletions(-) diff --git a/bin/dwn b/bin/dwn index 02852c2c39d7b4b3f7dd9a8f659a236c20672b1e..08a379b9d2bfc43680b3451179e88b71406651ac 100755 GIT binary patch delta 58043 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 M8?tYYkLmmW0STnz2mk;8 delta 57005 zcmZ^Md0>pm^Y`?~kc5~Zk%JHn5`+XH!H^-C5WBJBKGzZFI+JxvNV1H_SPYtF-PXCT zxX-u}7VEz4x)wdc#BY@@BEe+QlBTg0!Of z>}t2&_A?FrJ=kw6$!faaS}311w-(x3v3lC!2W?Z>!4k3Sw33{EwYAmuEOGj4m70IG z9oC-pN-A1ze~mYZi_(7hYjLwm#-c^G7K_eURcOC~EwgmIjk3AbXvtD+ZSlLswy;J^w>wQ#rg66AHGJlT1TkM* za7atm$uIy`(@SUi3|4(rM$**Xumd8Ytm$u?V#ih9qeePg1;#ECXGqCDGf zt1zOp*L0?dwY-k8922c45%jibHp$j{L=uWTJfakvV7ok`Uh`=ZB*slt5hHPpwLB7o zT(+^*eC-Avt0Jxo3AjVIdTMplJJju{!I4`dpB`6$gx zeYtmLMc3T6dt^)P$6+=$%8!k;l^Nw@iE~yHtuso>(RPZS7OW7VLRbuyYT5`phF;ugLVmMtPw*g~pRYqs)M-z3tt162*qir8XS1nGo)MK7Nb+vaNoe?&s z2V+ULS!0{9k+ySV8{oI-xX~=pmO8E$8)3^BHwO1L##b|pawsp_n!1@vY36EHq78xB zQJxN+zBJr6ZhSnOVmmv&J-cSBJfS9Amk~eV2W`pT8<9cZ{K!#?dlaB>KN5MOK4xX&WM$4GSey9}nO$vlcq`Mn1R)#>5>6!Ype^gp!h&6muI$ey%e}I})L9PUcW*L`L375X35|V;|SObJe97cSP+PgctTPlB(KKa_^ z6n5`pUY_E8E7Bcy9yQ&t*l9leI%R~PnF3P#=aS|=Qq}}b{Xdu zT-0KuuUeFjhiZ!tvT|PmqD(LZiou8EL{Qh}urBB=^H;XQOR5&H`UR=fSGI;r0$Dd( zw%Dy8aT=KCEZ+-B=Oxb;FH~ zS*mT^#@l4#e!b0(+8S(H$bxN`HvP+**nZm_>eobVL-jzn3ceL4P@RccIsH847RUoA@~Qu z2ge0ipqVf9-OeTGxI7O^%wfi0p1yz2R|{lp_q>n^ff&SXJltSDa?X1 zwr5w>vU3@?PL?QC;x#6hz0ic@Q9dv9o*vI8WqdmQn3ec2foXP2aw#JJJ0auk?|E+8 zCnIg|uC-!oGn!wwxv^rl>-QS6YZ>16o4K$V8J!d-S)r?QMZ5Z2Xi+w(tdg*y@cEwipMLe5q zoA9C)`(Vp{Q4S{O;fqtOwQbwWn(UqJ?#o)*Cx6>Y{u9o2WSIZy&(PCb{%svsp;5ku zgxwU)FooMa(HQ5r2*2L&%k)Z={_N8i>23w`7kXuD{VLe&t%e4cYTC@HPkdnnl5Epn zRbg*zn_u~|aNCJj!`N|K#OpLD#DUl0>=)b1*AeWzt;Ug_<1>AN9rrU)9iV%u}u;&%;L72DN!-Q1Sf zm$Z`4ZH?YHWa$}W-dE7FKDM7ePGdK0l|I!hwc#&W3o1Si+^Jr+zMonZ>rmHGcQN;= zZSSXYUIqXyv4&!V9MeZ4OW2-#3MlpRzMCfO6_I09^1b`EvU%m%VOyg--;lLPH7jwR zl)hL^pO>E@r*~dnw9>k4w9<@3KOtjsUOmQ|@7T?>j5X!^7+b`C;T^Rsl~v?7wahQb z^^UW!9z9{xm3V_I%~LQ#uP{5tDDE-JH?E?#9rE|)VTD+*_q|&AdI5{J7NWM_7JOJC zR@qyFEMb|_sc|N)7JOYH7Eoi!|K=Jc;4YR&86{ELpU!mAP4E|mSP1)r2fDDqYy_X- z!dk>s`}4E3Cc!GBbv_^|Qh@E?Sk!?)np<6p3r!E1`t}cJ!@dSw?CnZa@B4r7GCJ0< zSaB*&`pHio^4>aDy~NU*pLNUB!@lJqU!r3XtO~!XV}03S-l#D1C)pKdfh?VmDa^|G z7j|Y58y`Rl9i>KfCXKRfc~^z97G~XjPu!#q3#0z}4mHX76>UcCxANE`ti0R65UEc$ z{^E&6*hp5IKPrMeyKm&@nTX~%^DO7xT#;uoCRym^Z})kcD~n|{_<2{>T>J1k_jO}q z*bqM3ja76TQC))O+~fP*SQOLnk8Z39%j8CP_B9*Mt?q1^_R&@DQ8m?>u5 z;YW(HHtY`fEXL}x-Mo1*W?(ixs2B?&^Pl4D z=R6mfu*FrKiM5f4i5S)@LgeMyqcLroEsvo*dz=t7!Q)SED$aZxpK{WK{SRlh+(*dv zUM{4M-|8=Gwi17rYHZw&lYDjivjDXV)!%e zrf20?E)UYPN*-G;LLqkt!KW9$Jm;PCtUPH7UHb6_diEo`%!54fv}2dqlP%Wi$JAq* zc3~IHmiGzzVY)8-r8h(p#Jx+iTWmakQ5rqafmiimKeH?RxDRVl<|=Aw-8T~j9MnMa zVlolPEgx`|SMg;-%H1SDxSI<#O)i@(ZAnJA&2aSoyu!EmvTwkvkRJ;xenq2+u})%U zi;F?bxU#FMAM4DDT_=9XcwDr+#@G0x)6Wy-9++V)G?_+n@C}(AmO-u0@gK^tpyFR43Fd$j#hi0|e;M|5$%|COFPm_Y2b5*iNH5B=S|l&J zwC8KfLR-DLpbNwnfXh5SfG$W2z`!ia?*_0+$y8&j@yA&M#D8^|dcEdC`i{&x^cTMRr~L_7K-qVslv^{!=AZg*D=b zD}j$Me^7~qYwsQ8Wes>dz@rQ-l+EBH46LGd;6WZ#nU!@_OmYxM^F0OzkDlK)FoX8( z0j{eIl|`YIG5lfCDkD+hBP+A^MZ1?!ZHj$D7QaxL&1MUE-zuyz>%v!7fj#ou^;Z=( zM$3-y?!nBz&QlME1v-6%dJ-yK=r(!snyyEk4oSyG(8ASD+^QpdeK2dvJo(dL)`xB6 zZL6{BEQL?3#*VW6+*BRS{+aix&SJf<6~%C{hOc}kJ83g6_KE%Z;p(h%(C;(@r9eL& z>o8*qrJe&>`UFlz<39@2#@-UN@Wm!YTzM6@=`jI8JIV)0^Me-LLaiA8m#LrQTDQa2L7GT;^MAveN$H|C`=`(tlRdeRPg=htLm_ z0kTJ3;X^~1pU>rt0zGmNlXjln^9pZVi&d@D@~Z+OxAXrzKPvc)nF52c77Oq`Mfn_V zuhn?{2?}&M#eb{CBH8cUC6raf%#j`=J|c7{?o~Bq``mXZT-X81<)l(b^F88D6zEH19NTtv>ZvpA>pJ&DW?; zr|?wxv=j+{5{40ViWjXT0W$L`-dcTam1m%SPEF`n2Qdr&uMhP5NK@v^}^tD^Z?%H7S@{ULn|E zwj4HFq7AMhraG3(9t~HyY0^*XXU-y^H6$93&BLC~GAl{06qz^{nwOUb4`nWr^*gUA z%@LuPVDOB!CK>`QN5IE3^*2vTyur)D;Uaq{`fBS#}Y=I-;Q|TW^p4ZFR#?+m5d{<*lz>3M6fd2h-&;7xS;IbgGOAC|kJDKLcQ4M!adBz;;2 z2vGVD>l{6{lAco|H2SoK^6rT*w9SI>?jQ(^;=E={mXaKo`sitjaXm5Ar>6j@c&xxf z`pHQ{5jNV4+pr6o`S{e1QQ~~%%H;HYs089q z@LaZS)w zrFx!zNA<)5>S}L-6h4`04dF0Kif->R2=`4B{g3O4p_P43AeMB9NSRXJ=*!8^k=bgj zgz8vyGnR4xMyz_J(FGu5RmkIe1c^pcwu`$fk88@xRPCP6wN`;FTV;sdxIU&tF!gg39&z9jfd8pZQ~O4OmkE;-^A(OGx6+ zymk{ndKQ3`P$8)jQsZYn4vqiVnwRbib$Z}ZC(otrau!vVPfouN)5Q_?_EFpCrT<1rF>DGLv@|T>Is7{joq6#{jg-EZu(Mt(t;s z%K{L`0PHLwUQVu_QQ+#A&oyu1mlYYIR;04ba(W@ZL0oqgfDBY2&*8CIbZJPEbzMeW z&%onS#X77&mT%Q82V|B;3;CdC;99i+q_YaKNXS1699%<5=_luNy$$+j#cHc&X)m*E zT)^KES6%>eJx8iQ1qtcv^$CuAoUAC zEUL7v65=wCuOLY7+%F4it3oJo9liMZ%Q=<*S660yjMcYeJ%VrxEPheWh=B9felAM+75iKy&EEOH{g%SVg=B3aQD zazYL}A+7TvUrQ!;XE`MD$cYHfM}$bkAt%BEdz7;CisU1TO2p4jL>(vM!39VpS*t<+ z+Lx0^#ycUMosgphk%(-G=d=R>}g zke5F?+WXweq+vdyiA0=tB7ELB+Uu8(2#|=)PK42kc#UwQ+L-stsJT``B$KJ>R?Cn6&su}dOioQTa%#O!>;Jc+34L|k?vhUFthEyMUzbUG*Gy%W+VAJSGb zxj)k(kqU1e?X8}Vs3j4HorsoBgj+tsLn4+s5#KoxkIre59U{qDN)?&tgxH*rB5nhL&P{cuLoF#*Fc~PhD;AcyN5kSU`B{zSkcWabSPy3F z{s^BHk7JF?R{T9L&xFwQPiN?w zCBBi@W8kpX#!KV$gMXhbwCGPlxcjykt=?axdu0nB)t1F;cWmS*+alIk&XYe2Wj@-~ zbGY9(tdW2J%`)G8!j4z(uhRXGoB6PBkZ<9y{P;I4sAR3vRPr&g<`iACMbA?_?;F-c zJ83qLYRAU;Yd1+gf6@V)(&{}Hwz;C(CVr_Mo2m6*&-=!+aoWZn{7yUz(DvNG^Ws@2 z-_j?s&4;yTzP{bg{$HtI_vTC6v#KSvP)uZtRzsHAy2ms5 zwe~Eql*pFdRtTBf$spT(Z(g(mE0T=ICDg}T#c)+T zjt|DxcLP*OM$stWD9Wc8HzGmwM_w^yKJ>2;An5&1hVfa8aU!zsi!8Eb%))ue|u14lF2WuF9gHI}j-DSE>iD?NKbMH_20dd{~s5 zJF;5Uo&qf`21>P{z#M;v2*G{f7ir(k=gT{?kdmc|JIt>LCvcW%?9T6WWWEV5^C0!x zVXwp@luPmFN+^f|3X`9#MHBj(6*abFwxk&rfPmO*lM185lp=@tP|3WZMpI%s}4g%Um?UOh4VD4?8h~_gkzR zv76)Ar0u(z0(nt$-g=cfM+-^^dE#AaXEfC;dF>bUq5~bi)FMCCSzao=}s|jF09JJQ_8|UCD{+*E)A8Nx;ur&hdynHL`Fc(zM%o2==NE_ zEjvXf17U9s0BMhlqFZj^AzhhoL`w(TQj)EQS<%NtngjJ|KT^*t#?a5nkm~2;MSNmc z){-^h$GfsBCD#)3*cJJ$I6sYl?8?GQ|Gqe1O!~BXR9D4&`ZONhjTr(KQ30Rzr~S{L z6(VLDPw$5PmPLGPH|C}9g`SauwbV6;pX%~U-B^`cZUwWitV`+#Sr~Uug>3a{-@GRY zBnQc^@3)8tcW33a=~H=3ch;a{itMg@-SyAFuKJf}J%Xq5)!kW5k99@V`qO5#f#2!Q ze7YTn;k6H!aXsD19~_<4i=Jg?b&x5JVh8?|-+ZYhRpCg3-LhpTMQ}<1;jBin7t>CcccDl==}jV z`t(VZ2L|rdQd{7^-X&kTd@kcO1N&867#x#@?2y zw2X3E!y7!vH;hiq(wW2ub(Ja}J^(-^!kO5v4kh9=#+X3r#b{@(H^ARf#$ZPtBSb7& z#?SR+H5wJ6GAvh}d1s$M;pX%U`m~NfL#?-@VJCcCL_@h5jz(I%3?ddfXjZ%oRLK&% zsp_8@j9kdO_hR)LH9$T(UvQx?`tS@qOGjrQQrl!XasJ#H>2onu?1%6p3tsk`#MUja zAm88CVSairo(k6e4tr_Og_NcIt>M4lcL+$hSTQ)hMrqV|k-&*1`pXCk^~k&hYQIs% zzupQB0kctH20jr7$@4~yosv-UKB@J2fn@-2b;bb~85Nc2j$gAr{U*pTk`d_Px&Zk&U!32JrF@l%vaXNzL!O@f|REQM*gdSKFPw8#1#0g=L#rnJecyY;1VRjSa-n zWpUHP*)I{E5>c9tF8sI3&Bw~tU`hNxNz-LRtF9+Of7Y0P zFz%d8J}b%4EIz9bEA4g#OK3>H)?~i959|8XH?R_LMg#2wK^KNkpYpSst+Ch?BHfnT z7QtESu8|2iIVX_DnNr8ZGkto9%JYX5;u*{*_hk*g4os2uC9$ZSx^?zmh*V(gO}+!w zf+oUCu(z?$xQa&Qt>Gr3lg5A^?xd4jY>I~)@iLhg?Z<-atW9>KT^F42nfU?Qq z%og1ix+v~u?0TiSkO}HT<$$j-f%osn!jcm;RJ!rIXK3U!j3C^b=)N1#6cF1 zg2`}sd~B7AqdLKynJ`PMFkv^aNu&8W%dcqnH5q_P-7IAJi~Q>TnfaONG-D;EagY zaKcIF6s};8sj}8ZCh@BYtg7~vc7A^r5L%vuVM*;Jndr7oq}oS_lMQ6eS2!N0zx{-R zP-xxkiM&mJRx|l7dA?;cNr150VoE>!gp|gQZwP3m9^q$F5FYJtYejstWEKKud!sd7 zP=MMo8?}<|4f;W7jx0EcEQ{p`iuyExs-hx$f21CR4x6nwxo1}Vba#;&3yMpuHQInf zfGTdhmX{j98oJMvc_T!Kxj^{xGS$!75QwFly$Jx6<7+8*u+rtd==1u2QHq7?2_rxpJ93rD%7;}RQzngGDQ?c1w=wA z{FDgBV_7VS#p~X9ywDOqPxs?-0oFATB9k@R9ZJfKldb`><>J(8sb_zUrRq8plZ08> zLR!yj4QB4HBu7PeU@SKcW~Jhx?s!@uGi;IL3n%9E)Yd=W$)u?&uQ*3R#Y6(!F=QDg z=@F`Kl|+L@z+}`VTldXazIHIH>HpQg?gdv_0%AhO;$!)xE|Ey_iUJB7o>k zq_NdaBO1~RlSxlH0HObl!zzbrP+?HIy{L80Hs@InG2Q?{&!<)J^D_9^Ulou2XYyS` zSmPn+PK%umOkTVvkEy!F9}7%BImXM}=dI|9L?Xsqd>HGNcq}mT3=LO|VpN6>fhc#; zs5WQ9F34jc*0C(?q}cUBN_fj?H;uFL=@+3_if-L#{_S@xG`V^Sji!y|AF;AExv|e; zgN51n2o=}QtN|qy-M*&ef5jzS#niBk6gQA{XKqgb^vP z-{N@Z$()i2dVYNv>!3Z8$is%SuIvrB4rl&V(RzBR0=~f!ykmy545AYHE!Of7FP(`2 zs4<;1x$}zuKAf4fPe<_*BUsHwG(-@uc=#MwjN0ZF5o57q7GFKeO%rW-i=(Z`ZC2)x zB;v%6SW-h1ryY!ZNMbolo!lZU#SEyK2m`)LXQb|ysquyg z>G|<*MzV^@Z!jJFl}jBH1yf4a$e8puUTf3!c|BrrEk1yvQgP=(-~bZ5f!C!fTCUA@Q=$Vh!l)q(GG5ix3xTlCptDZ`XqwSB<8- zeLsZmY)6dcBp`dqD{GI_D4E;na4k>>g{rSRiJ5P9Z5f4gmnFB-sCqOl)=)%xjAHx~ zUMGpwH2#;~@Cn%OBp8JipssE9!hND4c5lmnSa?3+OOjaElK-Wz%;819XMX=fACtrD zeb1Wx54}S6&q6w9=YJxnn?kr?i#$%H2)EwHjV`*M?awP@~5D*@E*X2kza>) zD5Kyy=?qAQbxuJ!R$~yd!t?h7P257rjjU0q82OjVzYB>4DrWw|wK|O&LhU<2+4Emt zRR@_E-x>3uB^f8xq^M^R68wTtjk6dY;t9PXp&lD&N$UB2dMR95?@$Tu>M0*8;UU&q zdB{+ji(lE7K@v2YVwBN=I6$vYYXZroG{)47^X*u1K=;W`1|T#Lt4wgE^;VupN#vWx zvvS4J6c7!*M2k=4H$Y3K<|$=NsaZ@GR~cMlCLc>Fg0*4lr`q~7FAz}a`3rEd+-_st zXn;SFCq8yT{jK2_=S#90u&}GN1?wdZZzYPWDrJsJAyl9^N;LTvVG76yxMC_6n?c<3 z3~fUMpC~wchEB)cF)Ks6sSO3EvJJEmi5P9PCGN@AjiQ!eQnk-9ez z8Xjx;nV5 zT7Z9+E)Gy;FOM{m?nw+#^uI)ieNA=q=ZS0B ztG%u`m4^mD9)v|ArQ`k+iV%LdPch!Ri|QufJw{q?Tf<8bNAx$@W6T$J1NchQZ8e^} z7lvGE5Ms_%_4Kl$TLMO~{8|LoHq*?8OLqDdZ- zV)T$nv5M}GJ5;ktO)x>$`{khQCQ z(7i8RFpw95EaE}My_N3Q;y%SV0+}>P<;A-fBsb$IN|}ii`3mdjck-;p&XnSXl$_*i zj(6YG>D)vK-H@Polm;^#&#a~BJaLz$3&Agg0%@rb{NYybxW!o{_*WM1N4I6AKY%Pn zmT{MQUOh*z^1q8D@d0Ek^Z-uJY&xm7H4aa|Qr2wUFSt0EXE<(gFf~iJ6%RPTegr42 z2nY!{%ZR(ndrW2(eTER{sl?ga1W5XYN$!fS`W=qLoK<_*L}FLFxI@*!iV=T`@dZ#K z{ci*)F3=jmQ#yv2Iqvm`E3v>lFq4dp*}7e;!NjmP5Bew8+?Eo*gPd7u2E7~tHZT=S z1P`3TYPVSb2qHb_EJGB9AVmjQdCdRC5X(_;E3O~|lzRJW=ri6;j)%t&KTm_2OC1*p zf-jiDjL9}Kw-o1@PB)6KNFUUT=Ere(j3nR@j(2_(GzxOtj6~%vEhM(urTanlN0c=UHCBK zsOyJc5kyNUybVE=XoCy+*WFRTLeuO0hJWyV0F&jiFrZwKx0u3mlYHr1v5T~tsC}#6 zhz5hTS(zr?f2z|f$W&qMO?8ut<*-uLkbpHoV-!&iMI27Hmybp{uIxmDrJErlIymS2 zn*>y@k>wANgTgYYp$WKcAoQ}eCvT~(rD9#de&!vpkL`0k>}IUhcnyhRnK|Cht}&+` zWigRhlI#P>q|V=xdGICy{q zZ6X}M1y!tTu+tHFHP&*|-dWCfsYcP$jkI?T$--)^4VhA>ijndx!Nwczn7QWPbWcVy zQjTKMOO}loJWPk%3D0=2UfL`Kb}Q6HAt6x zod!>$7rHMIg`~d8OLUFYUBAx5r?SeuE}(v0?K5st-J-~vAR>hUAnnZmX<5F#AuY>K z$d_+f+912=gvkZv)SXnE+Ey&=0^FChdwlOyR<*||)I^k40c2iU<5tW^E|{0ZWd+Pj zCa9`;sRGa!XECfs9m=!^B3(|;R^z{DnSINRPqy<*f<5xbi=x}po#Qhq{k3u3`KD>C zBfHBBTUbzGs${hrysiaN)8*ZGcMFSa3kxTgJ@{A#hQ6tro2E_r1*}Gsu&|V2rC7@m zG5snkidmtJ*jyOp>V0Y)xdcA9E>zHq0)Z7VFojMtwZdPPCn%9 ziowRVb&QLsdX*QkGAmvWoM&Ynz~_k-?<8H}J~P>FymWbPCQD+Mc#9ud4gL8~c}=sT z!>NC8B;yjF{3Bb5w92zsO!SWP7&?iq@zoD;5%DN2=2wAYw%k=$OV;px6cfLO`T;@* zcfJD(PTB}~^DMCrsMh7|165$0t#HU1y9vaPV*ilW+ zR_8$vdS@Lu%qYdN=^_GwqWUbr&_Woi!Ub-e&B|B40CuRvLot=~k6tO#?Kp>Fy#NWQ zP&e%0t~$pj&t|2xTXysLvss8XayLIdn^o+y1gi?s3#OUaUb{~9%Gp2zoR)pzXLmWu z7DhmjG)qK7WR$K3&5R$^vB|AvpXu?X$>-+6|O)sFP} z1{1g)@5^A|RkzW&NPX-sW}k*M4mrgJZ@O#uqq9WO8F_iu0q!|-$ue-f81Ijl!y@Oh z1a0@WeED2f8n5N;p3B;4E1cmT^O(O@cZLVgV->XbPV?A#IG?rtG*6qy`e>V<=6294 zRXj~i%}jaIE`m_rULSH9hjf2q6NtoauG<6c%ItXEs z@U1?rj)M^BBzQXrdPx|lPvbkO64{VEyjicXlLwQinU&O?? zGob^#*HXL|iW0; zK+|-nn1PZV)%jZtJ44mU6^~GDyODgISya0SS&?`{plJ`4B!8&kR^9w5&Jtj$13}1~ zhKBmmYxop=vFd6fm`(SgxZgUB$1Y=4svSllso0`ki^fs`xgz2ib#0P9eL5L()xilB z6|?x_Wz3)Y-Tr~rE<>^`N;Q(+{+AaU4{a*|R8eNG7! zYaA(?DW%Ehlw!gvQ(ESVd6eY!ImuUya%37$DR#_Mf*rx0mTCfZ^P({Vp}hm-W_fS2 zW7{(MgypP>yNQx8I3qLp@#QS2Cc4FJDMDXkaEFNgk>VN|;z8U`;Z4I!8^<&f>Rz!K=vo=dWSS zEADEH12dM7CJTL8gUyIkYN2KumYnh){GRShFh&Fi)#e-;njN8|;;Z@gT4MVDf z*5AaftSn>~_qn=|*1@AZWgT0jt+1O1tj7-c0N#E*t5|mJq%Sha3dvl^u;B=|t!MFN ze1VV#GVMar6VoBh>O6dihLo(^Zm!*c3SMczgEp`LJtDd$rM)ltemHX7fX8oOZA$KN zXtk0QNPASe)(!Z9jjTfD0S6qh?&g-es4J>&z;@vtL~=C;=?4{Pewe@Az{-@~4Hgzs zwfy70 zE<(5cr^<)w@g|#Dg;IMUphl1cS{wsY+DNqC#z$>t6-!eaExC}#K?-16a!DSk+jni) z%!V?rzA}S3_=p(0Q_4-S3?8x-zQ#7*W-EG2smn)gWnpDH)kQ_4d@aqq#CJpU^0J%J z+6W@>Zc>*Y+RD1eZN@^hwXf373zG(>LX2SgxZiJeq#ZT)iE=d`zEi|pXe#ZZN8`Ym z*u0h2ez}?EKCRKfI`|r6ATlhJ8N6=<^C8<voNJ4@~AC0DG&I0EKZL6}uhwU3k`gvi;(Z5b@WKa7aV?kMyP`N=*a4l^ylezp0740xNb!no^pHbR>k#>a2R zhhGLubI>V_%te;`+|_I~xO5@$`$AeQKCQ-^zap0OxI8;|{tcbl?*^H*QNBX8#s@}Q z?nPTZVXGMNknMnpA7$LYxR&ng0Eq01agTm%j|h#WxkhfM;9H>dJrYbnJYWawrcDjy z<9D!N*Fmx}--PmwJ6JuB8_THYv+1*>O*Zk|9r$9@ChobD4b-OA;^TKRgX=(v?^uhk z*~uaUl1Eb4HVceZzQ*1N23)qVAT&d|8TKpxxRdo}!+5V$8rW+lSC@W9nnGqYq z_U3zhGC{l;KpZ{sK}U$JIZ(*#P-8KF9hw6Jgby4ABI<~PU`Us1O+e%pFvJ&!&xU!4 z)=(0qwQHv?6rxKY_e}AA9YP&5g@nsJcQgME->ip>KBCLpC~c%LEss?}Mk3)LwoWyo z)?-u$+gF6V2qf;y;vUlc7Y&QH4u@A{tVXFj)YNk8dCG3qNoxq0;NCJn=Fv9~43Yf%cC*odWGhRWScx{QNvX_!vXT8}Q(_^N%Z zwYLXll?EfynYBSn?y{fV)m}ZxAMM9CL%sqhxzC*472gfJW6V>7DUR>SoeOe9Ov3U$ zt7TbySOQ;|ixAy6ank|TutW-yKtc*G5q8r?Zau)tYvY3WrUOu!U-{VsSdMSt?+&oA z7SxBdV8u5NcEUx(I4t!YjBy}U*J^CHiWb~(x(|y1Bv8wB019ISI{_sD5N$T_5eJ#S z=PFnN>6Do|An&C?e9=K>2<(M^8@LIX;i3(}j-;G!WGIck2eo+(zkLwPsZ51`ItY`! zo>w@;yu4OZRl*aH7o6&05)}`AUyeDt{8@bDef6ayM*b_ zW!1xf>?!lk9tdFZUkP}WYS0t|v(gG`71j}EYugX8R+9^g8cnzsE66i0l<18W=BwrE z3Nu^xkK+y|S-8lea3p+qCTkjvm9t2I1nmg4(`K8DgHAA*<=XuWrJ5-f&KlMkXbJ5a zV;!KT|4QjW>-eioxEXL`DID-IboXvCj` ziPmEp4?fCjmR(&DT>j7FIQy3IQAcqc=NEqBD63r(-k|e1PRFHmpTZkipq=L{@Q`Dy zttUGEi!k5t3Vh}Z@=0Wk;HdqjcFriy$| z^PR;dTYU91zmtU%Z$CjLV?m@?1sTFS3(*fdyBS#8O?^7z0-CU=7BbqGY$=NK# zqa(@B_%0Q4(=F$FvN8Ub@LSo;w=$$?IZlLOR`?PDx&;Wk_x*KQzWF2zEJ93mt_%5rk;nD1q7%|KmO<&Mf9t!%C>=3b z%LsgQ&V9GCY9kS;1oh?X&qt++(SwpmWg#zjRo=><7vGd zK055VI@OO_!B72$Z~iTqe+nOeTfnQFf>~VS&pV!C6+B@U!qU>C? zBIr5tgca`%K*3P$!3t3mZ8d+u={!0aH>fOS4HBmp@sVe+UflBdaj}DJmjs1ScoRF>S?I33Bdgb5sz+G(s zvvi|z$Fg-#7vlngSPKy$s#q4bB&)0QJOp3&J1gmBnuuqrHx^ClfmGgx#r*8=tW1eH z$PK%ajstBFf%hpJfB!r4AF#ouRtKcTxTT;<8ME}wlgi`$3em9=;5aJbgu%5z;5G$J zz(u#NG|eBGiI?HAkehzS41IPLC8aLoE@wYYpo(sCX+H5RPEbO_r1x)6a2PT=>W7Mj zy~@@dhryvgvBky@p2erGR(0Vw&$6IaC+DaMIQ?=Ex5AIOkcr#@bj-n~-zFyZ8#xw! zKP*qKcu!?h>W@fG8B?leq8%GFrJyX=$MZJluz5qXk~KUGr(UHyBeuzDimYzp8gg`^ zkdear??^!%#@y0Dr6quSmWzufHnOfEF_yfT?KaZATrtE^Zu$r`jR*}XI}W?kCn3K$ zk!9xgb2w>V8w==z8YIa&Wa-w;M&}AIwQeKn^qSnYd^!a$esN>SCAnsxa!$=U30O>LpLjBFE;o=#3&tBwglkuM3zIX7l1lc%nw4&U~(1V6_`SmQ=`KAbQ4AA-6>%i1A=$*(JA0^5PVg0#NDv zrr#DtIDdVCHBPo7$!h!-#%Z4yvWTlcN_Lk0_)K&YLYMySur=nBV%+I?UI4X9!aKvd*&TTBC1x(!nqbE7#!%Z492O1d^3+TC zPT*|5^%C>z`3)uSH^jjXi+Ut1Yj}sopK0(zC`lt4%#>*jkQPSsng~`2!IB^&C8D%S zD(xU07rL1|_%f@~b2jplrNEL}E;_A>6k@&k5Y1MSFno5;J@{}PRrQ1w&V+e2ZCE0d zZ7cy0PMlr9m#^UJUc^O|Ll*KqaWW0nt=^t*x{TdLh3l@cs-z))e z{2={c@KMC^@;pB9D&FqzQJgQk$_BV1Yz`y$w+HvU1~=Nqt6pQHVn_yxuA2wK21-3s zR*OKa$|A%QsF;1YG*QHmELi0Cbke4Um%SxA+O+!}s0ZlBzK?v&@zeSJYb>JKWgG() zI7vW~Ng`YI%pzqs5cgTSqZVj^mlK+q35VD}%XXV8x;&_ki%(rYhL7^8J zASZgJ7{90IMADSXP5GSb*k^kl<3?e zrIA6C7!TYFGqPkRcE;`CNFI9+A%fFpKKLHO3>bf%y5t1O<%`v0iJ8y4hxKI&e|(R% zN=BFj?dT1)p?^YhBUx?b_GD_2?nhjZ8jaLw#W<0OsJCp$3Or1UHs~RXbO&9w=O;YS zi7-!mS=~XeP3@e62aw~5K~qr@<-jJi*21Yat1&IId}%jf+Z2tdPzzs6$eOAA?0r^K z+q5~)yU$7&^J)$=69~;00Ty22FILy9(o}a1TvAVsJ}nJ&H2t?0eBfVfinc`y{`4;v z;#;PLV-Ci7jyN;k?C~c9Rcsos{eaae{kxMRB#SBfR5S2CI+c%qfUmgLNAmN zK48B3W$EskNu}f_M5OV@bpGf8t5j(yh;EKPmQ*-e8WKiqpKjKfgUd8I-&WPB`5 zUB!m_!~hQvT1zBbnihlH;9$~Tr=lD3kwRWF5%1O6S?Rv3Ke%eBcoNS*3`i-SJF1If?*jqH!@Yt0 z1Hecu7)xflJvcLv+=)~fBq@u<=hT3KqN|N`>lmGQM<)ywW1+EppPkjJb!80t3xD=K zXbqwTm3>JL*}9!hdUw#BTeiQB;eL;qp<+*13pk15>KHkG0_hRQqa~F@-g6A^`IrT3 z8;#-9AG45_4^l8~^a5DUHdfiG?aQ*$Squuyc)?O zb2R_-m{qHs=)k&)$Kap@tRm>nkmV}013^cO=52CVhe~7dfL$#7(x}d)meDdcR;kP^J!B1F3aul!_JeR3(oI=Kv8OH8wjsA!2Ai!j4{-9ta!1p>!TZq1*1=?x04##_Eujxy*o+5n|!D-E(o{7~#Vk_yA z!FGhgnUl`G8Yi_p7s>umA6gHLREx-%M9TwwKw0wk6s=KNN-pJK>A80mjNd_%iz{Gf zVWnE3aEtC5>W|pRRNY|YS3FMQ5qkpDunm;g+B(5VAqh{h^m{ZMhOo6Y(FpxGA~sF@ zlq`M8nKJ-HFjN~<8HCsv|9j`cFFk8#QkN#xdtWlq(V!#(;#F?!%eOaoLgcAzrz z#^{A5kq+-S!y`!vpgR*GR9G@k@zqF3DqD971p31e;DLWLpH{%C$Bjq<72PJJlSbgY zJ@n(rCHi-D`e~VXqKHwfHGBsE`Nse;3PaLBh*gZ~6Zz!75tOYxk)QsXRX59uMI%4X zsZfKPlPScpephPi37A6s=clPIhMZ+ibF3Ik6B^#s=l5~!hsN?Ixojy8-rde+Eo;i& zhC57WG6K~-PTL6504SFlz^B6>-tQVfaR!a$@y}SR)=00sXJZGlj6@WCw zo7&=#gt#}JcYDr!eSk0E2GYKUcsZ0S&zWB>(G|5@3EQC_H5~{^6#%z4TmGdC)c2z6 zXnyfI3ogH#GSN40)J!FiNtzx2Uy3>^=NelGR4N~I9okTUGiid4WZQTs@AZO}Da#^} zgI@4f+0LOHlCM4cJI-Igr5wk1zrcSv7|QK0SZ(|plCm#ZVu|69IhHyYcDJc-J%;h+ zFIme9AR{_PZb}2(#zY<;=^Yb{(8I%4)(Ihqh$eBjf7oloFr=|#K#GxrrBWoh(U;8A zw?NCXG*$Jx!dG?YhJRTHkD*{_?Nx}NuLtp||FVDpGU(%o%z<; zjCjajCdFFlA9CzKR2IW^XnuO#5&ZGL_>T~Sx!)^h==hy#ZE24uyi+iGQ=W1a*Dz+K z&odYGf=yRL1u%u#Vj?AB1>SE67H}8HJl>{OCxG0>+K*9v9}nbnU*RkjItr;-(K^&{ z4NB^Y*Nq+Tn;re4jvG73I`+fS0JSTsLxOl`Ea$8`?bGPQ*;}XvDp@xK$9ILFT0i_V zCVK7asBi;!d3)XQ1u}XSx45{EK9&7+Tm*f`TfD}*gai4M*Q{c_a;Q=?briN8U|uFT zET5|whGxkoWr@DHjj`4(EDbCUs;?TrZ@gwswL#ahle zhqM@v{)M=_2Jr@OSl#4u?NQ=&eAq>8;!%c9g%tyV$T61pLFB^`sjZ@Kbd`1e_Y+M;F?#yv(1zVP&iLr*s+8 zN<3Ig_H4G$Lt#h+U9!+D*cSLBx#DquUiU2vEYlQKQ{z$cZS3oq4k+5`D)L70VQ*RK zUI{qikUup*Zjg!>HC(siq-s9rQ!&IAviJ?!PX>0qEIOdlNO$#=F6xV0$LqkW)sGby z2Ss!q$sfFBwFZFK-Wtf{{EUKcJcRiY6{lI@=m?y_-=06%VcPtF$L^-IXS93gory?* z7&QRP_imUQRIQ>nAEF?tA;@lT4zjp6fKPab?Yqu7eDyngw`veS{|$xGcbrVvVkH`W=FrX zhVVb%vvAg*dwpOva4~(reO%)DjD!-RPmt zV}ePNF7k-~@gY3sBP-t(NhtqM>UnGUIAl__O1>+40;1fFYT#vQak?MES&z_Nv{_-f zPGT`O102$cl$Y=ZxQGYnB2`0Mf5(r0WDylzKt@GcftNUr5rK+?jfwtTk>`W?|7+}9 zz^baYw%49q1i|elQP_yOHB`K$plEmpMFnqRk>Mo;C8Ht*L$fl$Brj=&NewJ3EGjH3 zEJ`ao;W<=v4xO+lt<*57u&je8D(m20|2x(kE0OQ~|NqVB+54UA9b=9;=5@_A*V=3M z@;dt81k=r%w0sow-$JzcS$x5}f8Atxw+%zLop=0BcC2e&>H=a;vN2FX>(R4 zMVO9>QE<{)v;TS9+SS~b2L%eXh__Z<&97w9I@8fBJcH*39xAI#FhS=(sHf9Wb7;Tm z=zbZ}{CUN}!=Xne9Wx!XJ>Aetc~`5sH`dcXJm362+65KhLf3#$QfTpi75X z&4AncU>W+tX}U(KTMPDKzp;5U|C(!?UkuW44^Ll={4NAo4@!b|gYLR%C;NxG^G)13 zKR#vK7=CL39;9sU`4ZQ&U+dSL7WFfxl%K1>Z>gZ)`~<&eX`A0s7H<73C+`izT{mxr za9c4HX_AlX9-e8LcnVs)2f7G8hm-YSC%!*Lp}uOe!%Nrssu+6Cp?c8czA8dZJwbUlhXr!Kr6JvV&O1<6r00IJKmap7c|5W-qid41}1S3D(YZ zEvn#FfJ60YA|yZamF>_Z_V9kc6*$@PBhJOI;-WLT>xx=%%0pxQ)o7JGfL8gd#DY7n z()Ee7dNM3U$uHRr#1lafB4fRu!44L5jjrYY-3iBYXV-Kcet6BCt+sxWeE4hs zpSy+>x!SnNdoHj%YdU#pHBM)*U%no)NIZE8VeGF9L7nM^f=Gk8x>pC$oKC8Lk2m-c znr(jfK<$UUx~96XK1o|UsflXTN&29Zx?3vET*>xdysey<&`hgPqUcmKUG73#mIkwqZS1uiHW>$Gm{w&T*6+_BEgu^Po#PCWuuZ&iDoMhB_{=kH#A zpRM&?+98HXMS*IhntGhx2vkD{9>BH{Gw&!Syyv9zquVR`hit;Wzco(N|%3s zNx_}f)e4C-I;-#=MPFi{VHXcs^i;xS8It6FNe^^Z{Zm?Sa{sEi8$al<&2Kyu*-of# z-z#uv4_4R0GwZ?X0oks0$6&t*Db<(M)>(~vwwg#&>{2kn1 zf>ne+?pUK=S%2}Q{644OgVp7IB5)DN-RaDYm_%e!x4IW!f?VTA0ZXk}M5z1z>yW@uHMw=l7d`hh;^s;+$6HPz>Jm-2=l@bp*5d=LCONS*A`B{3&| z$g~k29S(ebrCQ^2;JR_@jgW$Oal*@J_j#>dyghHnpXnffSdI&UbMP^6{%^#|wjQ5C zd=BE1Epa~X@G0m>{I8E!z!+bvoW+u|1|N=>2y&c1O}K8iFzoBaR96(UXCQ(kjr*~QQKc5&tl+6y^;e+Pw* z^8erQi%6e=6EuHZ0j3#`PX<1ffu-&WgtWM17%+l0Uo6N8TiV5K zLuFn5XZk|uIvk4zI(qtyGrAhaS6IuX8K@D&i@JEtMZlUaX#adfS|hw>8}=evBfVxM zANTT_+kyGLy=E;i&f_&(fKC0p=319wR9)^hOMyvIUb70A1*~O$px2BJLAq#Md;=SX zV5w)7`I0S6K%-_U_lTlO{(&5w@4=e&^02_csz%)#_`+y}l z^Mqp)IRARo3@~jm=7Mm%+oK7Q3J_TtD2W>xEk)Y^eV3uCfi=JqU=>#Qhk#MI4yos3 zEQv!g_l9E9i3XNnr92Dhiwm0Fz#3p9%P~&`GBrx<2I0&o)X7MrlP94jEjlj4<)CBI-72Sgx05$-(14B1@ z&2nHA@E|Y_SO-i3HWsj;2qnQ1s|FYY^u;a6Bw!ja9he2o0pfhE9FpzkJBEie>V z4U7UdupHP1Yyw91LHf;JGZokbEaKxWa0J*2EI5xy%~oXWK?e7sje$|y(8j=WU>hHA zhrBOJ4om|2-Veus`M`W&6R;GR^#Ga(SORPS)&S1}s~$v6_Jh0_y&hNtj02|az&>t1 zB27Ec+ksIJp=y9xz$Rchu#M%w@XL|mPOmv0*b2-B#+9H%%md4SRlq~cKa5VxJkW>& z4-5y^Jc6bHhL)n{fLXiHcIOc(dKAN=KT5V6;}ysc%#;JmF+Cpy)&T2(O~6K=FQ(R3 zU=%O_msR}CWh5{Q7y~QA)Ib4zLMW2u#EBXCE-D0Fi1$@_`M&nx{}=#-~w5 zSpAngi_QjY1+D{TJqHJYHNbLU6YwA~t^%WikN2X)(Kvn{eG1qFi~$zCfYAXg--nt5 zwgL-*1!*s07$A}lJj4pXdSK1Va0J*2bPYm{RHAnS?j;shg3ygXLB^v^K z6NZ3Uz!+c^Fp2rMP}RWDcTly!a$p0n2H4DeH3|fb1G;dPod%2=S^!TGi3d>yoCOSh z&udl!o8Cv81EXru8G-pg1DggVz))b(-_bNc-#Ro2FbY@>%m-Ej%YhBR24FKV^g}oR zOar>GCsG28DnO(Gk$9l*Kj8o{?juwU<0qK&fvumSa}I}r&oF}lqk!4KG~ha55wIBO zdlXH{$G~cqA4BH`Rso}9P-CBCtqg1ht_3!HiSd6N5#QrDsQ{yZ0kOy!7zs=Q#sJfR zNx&jt7O)Dq4%h@N21cDgjRDhu^}sA(6EGim9#{no9)XO39-!|@^Z{V#NxqMRNEC=g zz&KzoFbP-$Oaqnzvw-`6`M_#m5wHPR18fDh0s}_E&R1|8mpvG@~TI zd|(bApFvFlqkyHrr0+3$fN8*bmR~?Y_!t;`CG@-)uE01G1qT)s;cnM4L_+ZfR#!Z# z8n0Q&0M-Dv16zS*z&Ko$Q~{HKwZJUkabOfKdfNCH@46U21`Y$$fxg{vJQf)PQ-Mw4 zrnv>!il?{BfKicH3y#J3PeWw77K^~7-lo|Atn!%VqVX_<7qhGbwgL|V zs|K2;?*uqL)HKt8`M_LY6>tl%6<7gmx&jUZlZKgQBd{EJp84UX89fo>zjY)so(PYy zjaC7S10DkA0~>%fz-B(i4fWtjkjI;57O-dnY5A+Cz zE9C%_fQ7(v;BH`6qG{F@Ad)s28L$9oBqG5Scm~V|Ch+kLI0P)g28L@gj*^RI_N}6)0Mkvg6j+W|%^68>d@-6Bn3Z9g1$BtDB61d(mWe8z zij0Bbz!Kn4V9`=kJs$&$8JA%h4y?*D&6sIOcOxM%YkLUhMTeeuR3|J042y6h>0h@r0z@p9QBePKuU=*+w7!SFRcFdNvk z6$Jo>7Tky4iAWOgI4c0#_;?#UpMw$uhXNabNx-=67!ANIU@ou(SOlyAmI6cXM-u?! z9x%;%mIIrBQN^YicNGe>6Bz^JfVIGaBr?s=RCokT0JZ|tfWD>h6qp7q237$NvHVf= z_PKE2G1K$_^MP@|qTOg3VAT_**$Qk0x~@h+p2YA576H?NHNbpe18~dL82`RyNC=`F zSPN_go&{#@LDgLY$AGhdQBR|3fcd~uU|c!c5Lg2AO@qN_;5e}AIn)RrSD+67)AphU zfHgqlTBLg(oe}8!0t$RB#(xtcSs_%cd74+(*hz%*bCFdvu% ztOBO9d_NrHV_+Sy3D^iMdIdFn9e7|g(6LB_6uoajKjC%tmW*%4xjCvDxfN8+vz${=3um~71A9`=W5n#z7Tp=gZ zkBimi_>1t6B`QpXpQFJ`)BwEYU@i{b$=(a5r;G7th(~NYJ{h!Oi5iFB+Pu9)4RnmB zZRoxuB=^I#bBv8mQ)osu$&&531V3IGk#la1cOfbHUbZ}WTdl`1? zqUiBuYNlfgomr-?!~=(YvtV%@jmiRv*ZX9t+k1px;WYy#bvQ8GA0zY%a^9dK9JMs) z1~tjAbhy_XNqd&5e)QlCYBp-|#0_evqmuHL!%h*sy&RR&OrI}Tle$+VddEPD4QHKlv$94tU3e-AJ^2%VC8-Hf(O zpv0R|CmFQkW;E$>`t)WsL>bqRxK4_lR~tk)2ckus;d7jxo1G{et3;xE#!yHOygW|*bC69k&CgLc z!lT1X=Fq1(YKjV2MiIB-&Q|0NH1Ae57}5>5s<1)XH+W6Ef3vlNPBbq#fEAdl!$Afe zz7@t6(Wkd!Z#-Z*bzY$&CTw4hwri)E)D;%M;e=rYPMr>}6&$MSPc8>s3uUfQ-L5zb zQ7;xGJ6&^8CQec+NtRg&bTRjVOQk(X(tXyA7yaX2&;U^~eXs(}RZQnrpoXg{WF_1T z&ZfWQs$u>`Fq&?~2M6+4I*8+PdU2(iB`_Jnbs_8<4rijF&gH5h zl)F;-`n7>B_M7ypmI(LRY{td(#FnoL>cRYN*R?a3h9dZ$qCiqU&!1S-}uS z#kVQnUUj*+7~}L)ovw{)6?Zefo;D6)s=;XBR7rFK>h7GpOLIzs7Vn^yP?vl)-EYw< zT+PwBeAS=U=c|4g8hi3lsaf=I=+c7uSL3~ZSVwXb{Ug$N^Ev>*Of`j0q=*8Pr7@T+)MtdCJ zAd?295E`Lw;62oNt%~Ti?;fxDFsGgAtaPZkot*(mL98a33_6{^dqX8V2_f}v_ZQxwk`)fZiT$on*Cz$Oy z-kyyH$L-94)5e42eZ(s*1~m?x1ug^Jd_RMxuT$5LTC@w-^*j<&cvkRv$$^UEF30=0 zuE*pofVqrMOKiLeJQg(TP`^14+uep&5WLg77F-kU$yVLSbGM3D;g8dTyVcu{tDXh>AQ}LQ1G~)|y|v)3uo%rXgX0~>(d{_i2zEVrDd*~g_fd4(#Oe`<}gYJ(lLdkOb$~&YNs-Rp9!z z|P=JAWh+Zo||4pMG3)FCQ{a%H<-rP$Q3)L_z zac(VC%dlcOQmDGk3&wt@)oXAXNP#7;vVeZ5eefLTz!(Y6)q#rv$LZ~r8<#o>T)+$D z-H7KqQa7jocQ_PyLgVuc4;wbN4oWeUw?TDNvtFQyMVQ;mHYi_}BMA>7;e>VVEOR2> z=U&@^I}a`&oHZ_?!+OD&^GOW9{^&NL4x;w!i8zRA!L?ttB!jEzz%2q-O>^1Ap$;P6 zML*bqD+O28f!hbJlJ>wvkA3Y#Tty8KRiLCOc0nuR?9m|b9Jl}hsII0CTqIZFzDxT< z47kV+ToSl=aCVchy>xJK9k?8DG5frWzznyO~X*#~HHdZH6K` z!B9>Y0Nra|!d9Hv910wd;Z;qs_o7QDQ0Bcjo#2FXFHR>O+JmFmq1aisUFJE5Zxf`0 z}3pPJ$fNJI22_+s#*d18rj<*KKhYiBzP9qG=siO$>=lzG4EUNF^~p_2xp&tYS} zeg8@aR}O9&n?>NPa=;m{;DHS$)KsTuy)%HTzKGL<_b`v(!KV~l5x5YZCU0?i)Pv3d zEYy>%6DufAcgPK;!dEZO2_BGq+hX0T^wTEQyLT(%0q=QD?9CX)Jf~|VMpi1K!B~PN zyhnpKt2zD|h#z{7)^AqBI+q|``aaHf4(h#4MbgKcRd4@eAj@m%*Uf5#Ki|4&tEFLE z)C_;VP0{vuTE9gNn71AAn15V4rIvx4)q&$%7;C|`A8xha^1<1&I(LlY;0pgie{8`+ zB5jC!>L_BX8e1@aFybG|8sAz{UV|dxss^8Q$f6)y&AnkduR?A_WlauJn*k|7i}5`} zzI~=UEY4@RMz!7&sx5%zAhiK-RgjM_3ugtXY>T}a-&xawax5;xqSOMwv>=rNm>Q&Z zYPeIwd<&Mh`_8oD`de{BP7S)Xomi`8cBbO{l)Ept@Ax6;%EvBV0PzS*1=j|yh(5ee z4ez}LhrF%t!`d`qKg7Fwbu2b~pHZ|IRE#hgX=+|v%dA@~n_7n}+e^60{Icv3hbyaMd%!rGi5qkF}78ws_6!4Zah`V?Wgyz=B2y7D14KxW%KFq0Gj4@Z~ME z<^eT0FnT!Vu5-A`uyz|dO?MWD_?%SMv_KCoQ+}N}!CENg|3bea!8E>?l>h6+^Cf3= z2wZME4wN;r8^D)>pTh)#2cKqe4ZqUz2QemtW3Zz7jqZC;T^*Q(cnft z;K(wx8qN>~zf5DdgVyg*{dz|u-UOXA(cufwwTLHxAFAjtJJcHgLx`sa(AbACmAOV@ z>I zTB2t88>3LL9<;thE%47kJTih#mZ;_ab%+=Dq!|yZh-rLl%D|1A1?&L#N93c`R7`d?eZP4@XJl}R<@Pl^q>>mfODKRfIXlZAkT(; zJqRrF{L*LKE+VyLp$o+COP5y3HW^>n_xE5#k4jka|=N@UKKXXDAJOR4ok*ABP?{ z%rq}>kLgEmJ*uwvF9UZdhI&7ydh|PlcxtR^e#1HA%1G%mknWO@MU9|&kEt1*qsPNe zoN2ypZH9!=;m1^;Vc8)0wj0k#9Jttg@2?S@eL0Z@t{B|$QRLhWht4DJ8;@?F9eQlH zx@p1o3D6mHv1@Qum4Vw0Za(5xmz|}%>_PBN;IYE90_Rx=&KP?!Pb@49zK7U0h891r z1}qImpUQ5r^zVYCyz-2On3-ddm%X}*M;Blrom-!s0ht~(m zh-QON8%N(huBHvELOgoBdCA3IEx06bw!e``a~xd8cv|oTmf&rOS3`a$+r_4eH7O(q zS^kAjf{(a;>0}uK`!N)p2V5Q#=!ym6UlRB&;M@DhWn2Wl9(-TcM_?`&+*xoqIayU= zkwqW_aF4XTVkx*NaMP@$$QZZ}T*gEi{G{p~QIGhdNv63(;)PP}pTXpwz z+@aE{mY-?hO51Tfxo3kbnNHu9seb;&h##6x&OK^C;333YpgVzLv6`f1dsMFx0h8fl zifJxon>-iJ*B#3Pe*BD!^BQ;DIB@YZ=#@QcssC=o8)s0&Q|jt|t%x6-B^^pH7cnCw z264x8O+f?Cq6eN*1D20R+?f48^}<1?Lly-Y+MhRdTywBQbfTbK)_lm4Aq!*~0&`oy zC4uW}F{mTpZg3g1DdK62`dY*rX4AB%aT-61xG{%rep*fI6`zEB=9uPcNymeA7Pw+? z<7vZYoJSg;R-ygYfh)TT_di*Ww~BbBgt-vo)hLCm;VSA;j+y2d;%TWguN-;uUFa>T zbWb^!?P-Xwol75=tHJ(7h)3hD!ZSP@As(4V!=6#Y`ZXb*orb5sIgezV2-9^QTpxHT zk#Q)E)<2_q_(vk{x|SY&24zWL9?x|n9+-vr+Ign=Pri2QN1dKk{r#)JoxhGoJgWv2 z@LlZV=@%yguD4cj$H1YpTYEJtXeCOLW|KfR%^t`S^+PJ_U+OAEL*a91tb}U9Up1n%;nhYMDS^ziQpK4Xi?fRElLNrVUj{ms_P=u!#6Thl}ON+{ zAnjI$;Bvtn!Bv9SxwYO}Ili0TcwKFA1Rt1uK>ZXD2y<37d`x4iv9UOd_EzK8fRV;^ zZW#8$FamK08YP&{RpUO4OT;0Tl3`31aRBu_tim#5MEr(`xnn3i5Z)sE2yNWp^B(gt z^EA;*^fw8gD!g^I4({YuJv zPlXj6fS9xL@PB_Hth2ri>Fle>a^Z`Ge^#e5UbFS_4mA$d8jK^t8(TCn8OI#X z0=cbXq};Z@UW@NJ*odyyRc9Bxn?EP$X~YQ6vjvBKl=lJr9SkuyVBwQGpU))!vBGEU z(S&tfhGa8^cRi)~e~bQ&RyL7Fg7{@mPICG zE5~(M+qNsGr|>O*)qGFMb2NBvoU-goJLP2C&bwOwg!n#B^94qW2;#-iDoGGy-KjB* z3&L*|KH(#6=yeUo4)C0Dtz>NXiYJ9H6yEL>FNvM{PuKuP5&umMhrdaJwH*@h%h))B zbshNQ;4jvuw!z=0C4<6d?V-%|#xG*WbCa$i{z*UQZ+Jy;zC#9`Q54SDkOX$g!h{d# z!1uTKo<>rKVK7wmo5j9uXA~k+IfKRyf+>=qr2{|5;(Hni9WqF#BXyWBvn+AAQ7H4J zhid~Nj~pMW;emHs;%>NqIp#y0d$v*LhbnCT9*cDwwUS6DF^uQI8~Bk;9sjLxyYM#n z%Xs3K(U&T+4}`Biplf~N&i$A5iTz1fdv4)H3andX!Ge>q`zHowduA-)Y|Vq_^c((e zKTPx3U$Vjk+QV68?cC8R%yAnX;e&hlAf;4NB&^dZ>;>jC!l(XA^VSs$Y*pGhAJ=?e z$>A@S=_CBTGoy!px2{HNXWhoustj7cv&VuRnXi7;7`UrTu`P7rZ|bm$o(zMA&1c!h||?$UgUHewXg5f<;X#UE?2 z-6x(T$0rb1h`1$QCkv6(Z))+EBKF`f+Bjeb-U??evEx4)P|s|uPZw$2Car|sG%Jj= z#EzvJ*3da9JMPnIh|?$+o-w<0N_bo=@7G!%h~>rywHx-?_=MK_w+0`)G8JxIhF0O) zF8oO=>-`RFVA3fTj}URSEH6iimoq5jQ~0$|LpCMi$bF|Md&X*8FJGp$AD}!IKPBS& z22IZtTd!G0{Qd@UKdi#LrJNMS+=sNCWuo}AZQoxPe}nJ}LxjsvnXUD$doqwYDfTls zIZ{J{h71ebt0j#QtJ9>2t&OyU(>!8n6+9zaE;;#In{Cj14SWdB8yUwi#1ZT{_$|?I znXRolH5i`=U+Aknw`Y!X!k0yAMQjaQArO-nDv!Q9szPG>TL+l%19f7%J>!Kh_S1ZS zNj!r#97T0!inx&fNEgA*b0h7C7*EffV%TPZ`w3BYeW8`@x#SHBIfkj`LlHNoYVl;9 zqj6gJm_eG~DlW7M-@?CEMc{we;}Ar7Fz4g9dm3#Ef)O0qA6Z|u-J|1EqO z|7|nE<)ZJ`O&8sGMH6+xM`?brkvdu@5HLna0#CK(?X&$XO8gRawM4|ZEm}N9?5(6c zh#mJ>T8^z6NW&|1gpscG~6FjU($t;5n-$rzW8^|-zr(H z7rx#{kC{s0cTr!?W4|_DV}bjqZDhDMVy}gM(&A1ycXHmYd$bW~Tft5HVaq*G#ErF@ zmTqCh(J2-uiMaA>E#9udxQ;fkC(A9!yhF57WopfFQ$V-&?g?3koswuW0Y+)g_<=_W~97_E~&E%u+YwA^osxLzy|5plgX@}<`LO|)G3 zTFiSv96IUAxj)TqL{<~9d&gcDj?`I=(n`j)w1LI^v?`0M`8o<=q=>N_!6$%+MO9)m{4Zoa|H?v?SM+alN#L@*^bVYjpL zvQ)!jPT^-`*0t@Vh87by?Qj(4mh_en{UDuY*A06(JQ ztQ=kF2z5Wevp&D#^}Tf*1N?3F0`AJ8e7D>x|VXof1LX{5;fMzjoB{k$s~ z{UChhQBBCSXQ%KIM1Ul4K2E!s6KcC1iEdmzTs|Lg)@?PPiKA5l*DLMz$p5EmU`TLV1W(bWHF zaZhd1m`JfdKs-;x)%`VZ7xP9dwc~aTTWJR?my2?-6x!~#m2?>5*tbR8_z!LC8=a%^ zq41T`ckC7TW=b@XtWm_dvV0jU$<7I1C}a9A@w^kwJ&WRpYZyZtaOA$auP$c2Y%0wb zBP%T}_c{@$%6PYH^Z`1B)R`3`&TZ4lW=iVUg)f$kp=rX`+UAsQ_94Qb5Z?2k!(zq= z-==*XM0r1AP>kuPea&dqS`#%GQ-v>+i&#HNoi2Qgcwy(ZoQ}Yp<1TXi1bEy6_kK}M zkSPi$Co8;1v8;8}(u)07v<$hDu;=|>?5yt5sqF3$NIQ_)-TiXyxkuK*%f&eU1dol6 z(=d(BvGQV3t~{s9H(rW)i>2jWE8=2Vb_9y84cf>;YnKcEZ?fTEu(el|8+U0V1#%tm z9_@!XmLCPT=HKtNc&XSrX}jR3d9U!l>pX%fqy@(Lp>R%Jd`xRaXfTFr@e~o4Nu!Py zBTKY6PsG(7wlfPYaSA^K&c++R)5(&=IKK{t`54L6o+17!d|{kcyi#(*@(;e^2Xqz$ zQtUZ+-UHJx8>uYN%3XZ5c0bBw@dOda$Si)9j~36S9T4N}ughX@0Wdkqi<=kRS;>7c^m?JJM{v!+^=5yq_^O+$&-{ zEp4SM6?2aYpSxcBJ640iZ`t89UUY{g*!+DI(k!WP3a9~Nvoz8oAuc@W1=5wYtn zEtWNcF;DpFjhY{LjnmSSqII3Nl|y~c zqfYLzZONKhD%N_jO3-w>x2tOmwo>!jGsqL;Zf*gM!t7#fCDHBJr zcZqVnbh~FH$NPjY?6CcSUw5&QDhu52i&n-yo$RQjKB2W*EXZuLZOJaHU1eRcsAEU# zXX$dxkknzqSIVt`_q5pHw_&q>%-34cuHvz@;XkOB86q}hiFBQqn@{^$oG;?sVr_1} zh_OiyvEMT+<~@&5ABbX0kyf-fw>}X*VXaQNK+cTc+9}=6VcNlj7qx~=aK=E&Yl8>; z?s4|NMS9{2@gSY{usBb|F+XYEo*)YG0(G?14iS6gq!uWt`S%!BtsK$r`U(H0mCW&; z1)1N8R->$l7mL<8;frNn86|}Z8m_Gt%0-nu7xWh1CADbxP+XB;K)<-wf|TXZvL@;d zC$v?PI_3@SYm0dC2u`e?|FVmJFZK1JW*(DdEpj2hTavv>b6L!9`R5w&$Ri1pMEtq- zsZB!=?Puli7-kB+j76Ndu5@na1sqMPmWNEoeA?BN%0UfsR zpV3BM*MNN(HaUg%D4#IL->svR(_)#Qf#85$cPsoVyk~&s`wAa|2H-L_nwszkAN_DF zjE=LuXIbC#t?w-UcCVCFEn(VPqNG}H>6BRCmHb`sk!Y6f)hcU5^Q`cNGWRD4e?fRp znI`V&q%mNG_A}uDo#S!Q?w^D|#s%LF$xMBCftkdpPpYR!S3;A{}HvT4j@vE9>5dH-1@Il#HL|iCWrpY=}>{lOVab%n>di_$( z&y>_x&^d@hri-|8mFE9OXMBA6xEBd+$d$NVgtb;G_jcQ8oi=)t)W{x7obr)~TfWpr zH%gx03m+rXl06CjZkv;S)lKyM=#(#t;Kp);N00SD5=7Ejjc5w-gLt$p9-*DVp%vy( zB8xLc?D1NvED|fqQ{yB}ki&7p+xvj`P^0m3L|7H$*u`c6MZ38Sl~DPEh_#Yc-2j{nxsf z{lp}$w%K1FbZu_9YPq*=uO@p7UoX?7-6XMe3dY?jB5sjOnZ9Cm8HEHuoG)U}0i9`g z5pS^WM&PQ2Z%Vjd60HO|v2K%g#VQ)&*`J6w<5g{>w+7>Tn;)(TyNjL|zW8&UTcu>m zFEq3k9*!a82!wYNm_V7!q`S=(#W@rUvELF~KX#QUR?CHp-Lr~>uaw3t6$1~`4mR+T zZ2GjBRuSy;Hu`3^&yc{z&Uz(< U$K>ZAX=Rc=9Oa;h={~*x4-0IP3jhEB diff --git a/build/keys.o b/build/keys.o index d1c4f08de3627ca157c7e969ed7999d839df8f46..59b81d4e703b19dc58190466b2d7bfd44d6569ec 100644 GIT binary patch literal 39448 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 DCrGYg literal 38520 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 XeVJB%sGBMLkxe?lZz&uf%<}&~k*dD1 diff --git a/build/main.o b/build/main.o index 939e7bc185008a15ccd2c88cbfbc308f68201043..dff840f875286a5c82838bb842eea0b938fb2da8 100644 GIT binary patch delta 6350 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 diff --git a/build/news.o b/build/news.o index 55a3472cb2798012db7fb90c95f2dfe9bd8cb770..5993552920e7a359b84af1d2bc5d87ad4eec5e62 100644 GIT binary patch literal 21296 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 * AI Integration (OpenRouter API) */ diff --git a/include/applauncher.h b/include/applauncher.h index 1ef5f2a..1431845 100644 --- a/include/applauncher.h +++ b/include/applauncher.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Application launcher with .desktop file support */ diff --git a/include/atoms.h b/include/atoms.h index 4bd88fd..eae169b 100644 --- a/include/atoms.h +++ b/include/atoms.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * X11 Atoms management (EWMH/ICCCM compliance) */ diff --git a/include/client.h b/include/client.h index bb095f2..3954db5 100644 --- a/include/client.h +++ b/include/client.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Client (window) management */ diff --git a/include/config.h b/include/config.h index 507644f..3207293 100644 --- a/include/config.h +++ b/include/config.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Configuration system */ diff --git a/include/decorations.h b/include/decorations.h index 916ebe4..904ab68 100644 --- a/include/decorations.h +++ b/include/decorations.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Window decorations (title bars, borders, buttons) */ diff --git a/include/dwn.h b/include/dwn.h index ba4e466..9305eee 100644 --- a/include/dwn.h +++ b/include/dwn.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Main header with shared types and global state */ @@ -32,6 +33,17 @@ #define DEFAULT_PANEL_HEIGHT 28 #define DEFAULT_GAP 4 +/* Common error/status codes */ +typedef enum { + DWN_OK = 0, + DWN_ERROR = -1, + DWN_ERROR_INVALID_ARG = -2, + DWN_ERROR_NO_MEMORY = -3, + DWN_ERROR_NOT_FOUND = -4, + DWN_ERROR_DISPLAY = -5, + DWN_ERROR_IO = -6 +} DwnStatus; + /* Layout types */ typedef enum { LAYOUT_TILING, diff --git a/include/keys.h b/include/keys.h index c09a23e..da05a54 100644 --- a/include/keys.h +++ b/include/keys.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Keyboard shortcut handling */ diff --git a/include/layout.h b/include/layout.h index 883746b..579de8f 100644 --- a/include/layout.h +++ b/include/layout.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Layout algorithms (tiling, floating, monocle) */ diff --git a/include/news.h b/include/news.h index 6eefc6e..96e2bea 100644 --- a/include/news.h +++ b/include/news.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * News ticker for bottom panel */ @@ -13,12 +14,21 @@ #define MAX_NEWS_ARTICLES 50 #define NEWS_API_URL "https://news.app.molodetz.nl/api" +/* Sentiment classification */ +typedef enum { + SENTIMENT_NEUTRAL = 0, + SENTIMENT_POSITIVE, + SENTIMENT_NEGATIVE +} NewsSentiment; + /* News article */ typedef struct { char title[256]; char content[1024]; char link[512]; char author[128]; + NewsSentiment sentiment; + float sentiment_score; } NewsArticle; /* News ticker state */ diff --git a/include/notifications.h b/include/notifications.h index d44f8b0..22f669c 100644 --- a/include/notifications.h +++ b/include/notifications.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * D-Bus Notification daemon */ diff --git a/include/panel.h b/include/panel.h index 0392cd3..174a8f6 100644 --- a/include/panel.h +++ b/include/panel.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Panel system (top and bottom panels with widgets) */ diff --git a/include/systray.h b/include/systray.h index 546508a..9420c1d 100644 --- a/include/systray.h +++ b/include/systray.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * System tray widgets (WiFi, Audio, etc.) */ diff --git a/include/util.h b/include/util.h index 8e833c7..0bbb5f0 100644 --- a/include/util.h +++ b/include/util.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Utility functions */ @@ -9,6 +10,11 @@ #include #include #include +#include + +/* Contract assertion macro - use for programmer errors */ +#define DWN_ASSERT(cond) assert(cond) +#define DWN_ASSERT_MSG(cond, msg) assert((cond) && (msg)) /* Logging levels */ typedef enum { diff --git a/include/workspace.h b/include/workspace.h index ace5354..8e0837a 100644 --- a/include/workspace.h +++ b/include/workspace.h @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Workspace (tag/virtual desktop) management */ diff --git a/site/ai-features.html b/site/ai-features.html index e227235..64b7c64 100644 --- a/site/ai-features.html +++ b/site/ai-features.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • diff --git a/site/architecture.html b/site/architecture.html index e4ce219..561937c 100644 --- a/site/architecture.html +++ b/site/architecture.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • diff --git a/site/configuration.html b/site/configuration.html index 5e26383..a340781 100644 --- a/site/configuration.html +++ b/site/configuration.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • diff --git a/site/documentation.html b/site/documentation.html index 15d24f8..1e9fc46 100644 --- a/site/documentation.html +++ b/site/documentation.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • diff --git a/site/features.html b/site/features.html index b72b795..605678c 100644 --- a/site/features.html +++ b/site/features.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • +

    News Ticker

    +
    +

    The bottom panel includes a scrolling news ticker that displays headlines from a news feed. + Navigate through articles using keyboard shortcuts:

    +
      +
    • Super + Down - Next article
    • +
    • Super + Up - Previous article
    • +
    • Super + Return - Open in browser
    • +
    +

    + The ticker updates automatically and caches up to 50 articles. Smooth scrolling animation + at 80 pixels per second keeps you informed without distraction. +

    +
    +

    System Tray Features

    diff --git a/site/index.html b/site/index.html index b555703..48e4cdc 100644 --- a/site/index.html +++ b/site/index.html @@ -29,7 +29,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • diff --git a/site/installation.html b/site/installation.html index e85c15a..9b621bc 100644 --- a/site/installation.html +++ b/site/installation.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • -
    git clone https://github.com/dwn/dwn.git
    +                            
    git clone https://retoor.molodetz.nl/retoor/dwn.git
     cd dwn
    @@ -232,7 +232,7 @@ sudo apt install -y \ pkg-config # Build and install -git clone https://github.com/dwn/dwn.git +git clone https://retoor.molodetz.nl/retoor/dwn.git cd dwn make sudo make install
    @@ -259,7 +259,7 @@ sudo dnf install -y \ pkg-config # Build and install -git clone https://github.com/dwn/dwn.git +git clone https://retoor.molodetz.nl/retoor/dwn.git cd dwn make sudo make install @@ -285,7 +285,7 @@ sudo pacman -S --needed \ pkg-config # Build and install -git clone https://github.com/dwn/dwn.git +git clone https://retoor.molodetz.nl/retoor/dwn.git cd dwn make sudo make install @@ -316,7 +316,7 @@ sudo xbps-install -S \ pkg-config # Build and install -git clone https://github.com/dwn/dwn.git +git clone https://retoor.molodetz.nl/retoor/dwn.git cd dwn make sudo make install @@ -586,21 +586,21 @@ sudo dnf install dejavu-fonts-all liberation-fonts # Fedora
  • Features
  • Installation
  • AI Integration
  • -
  • GitHub
  • +
  • Git
  • diff --git a/site/shortcuts.html b/site/shortcuts.html index 53a6777..513d4e2 100644 --- a/site/shortcuts.html +++ b/site/shortcuts.html @@ -28,7 +28,7 @@ Architecture -
  • GitHub
  • +
  • Git
  • @@ -285,6 +289,36 @@ + +

    News Ticker

    +

    + Navigate the scrolling news ticker displayed in the bottom panel. +

    +
    + + + + + + + + + + + + + + + + + + + + + +
    ShortcutAction
    Super + DownNext news article
    Super + UpPrevious news article
    Super + ReturnOpen current article in browser
    +
    +

    Help & System

    @@ -389,21 +423,21 @@
  • Features
  • Installation
  • AI Integration
  • -
  • GitHub
  • +
  • Git
  • diff --git a/src/ai.c b/src/ai.c index 81ab432..3111c5a 100644 --- a/src/ai.c +++ b/src/ai.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * AI Integration implementation */ diff --git a/src/applauncher.c b/src/applauncher.c index 6ad02f3..4c91df5 100644 --- a/src/applauncher.c +++ b/src/applauncher.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Application launcher with .desktop file support */ diff --git a/src/atoms.c b/src/atoms.c index e024882..b83d625 100644 --- a/src/atoms.c +++ b/src/atoms.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * X11 Atoms management implementation */ diff --git a/src/client.c b/src/client.c index 14c582b..d0771f8 100644 --- a/src/client.c +++ b/src/client.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Client (window) management implementation */ diff --git a/src/config.c b/src/config.c index 3efb77e..4f341a7 100644 --- a/src/config.c +++ b/src/config.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Configuration system implementation */ diff --git a/src/decorations.c b/src/decorations.c index c769912..3ba91b1 100644 --- a/src/decorations.c +++ b/src/decorations.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Window decorations implementation */ diff --git a/src/keys.c b/src/keys.c index 3167aee..a8b4ba0 100644 --- a/src/keys.c +++ b/src/keys.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Keyboard shortcut handling implementation */ @@ -15,6 +16,11 @@ #include #include +#include +#include + +static bool super_pressed = false; +static bool super_used_in_combo = false; /* Forward declarations for key callbacks */ void key_spawn_terminal(void); @@ -354,6 +360,17 @@ void keys_grab_all(void) GrabModeAsync, GrabModeAsync); } } + + KeyCode super_l = XKeysymToKeycode(dpy, XK_Super_L); + KeyCode super_r = XKeysymToKeycode(dpy, XK_Super_R); + unsigned int lock_mods[] = { 0, Mod2Mask, LockMask, Mod2Mask | LockMask }; + + for (size_t i = 0; i < sizeof(lock_mods) / sizeof(lock_mods[0]); i++) { + if (super_l) XGrabKey(dpy, super_l, lock_mods[i], root, True, + GrabModeAsync, GrabModeAsync); + if (super_r) XGrabKey(dpy, super_r, lock_mods[i], root, True, + GrabModeAsync, GrabModeAsync); + } } void keys_ungrab_all(void) @@ -412,6 +429,16 @@ void keys_handle_press(XKeyEvent *ev) KeySym keysym = XLookupKeysym(ev, 0); + if (keysym == XK_Super_L || keysym == XK_Super_R) { + super_pressed = true; + super_used_in_combo = false; + return; + } + + if (super_pressed && (ev->state & Mod4Mask)) { + super_used_in_combo = true; + } + /* Clean modifiers (remove NumLock, CapsLock) */ unsigned int clean_mask = ev->state & ~(Mod2Mask | LockMask); @@ -434,8 +461,19 @@ void keys_handle_press(XKeyEvent *ev) void keys_handle_release(XKeyEvent *ev) { - /* Currently no release handling needed */ - (void)ev; + if (ev == NULL || dwn == NULL || dwn->display == NULL) { + return; + } + + KeySym keysym = XLookupKeysym(ev, 0); + + if (keysym == XK_Super_L || keysym == XK_Super_R) { + if (super_pressed && !super_used_in_combo) { + key_spawn_launcher(); + } + super_pressed = false; + super_used_in_combo = false; + } } /* ========== Default key bindings (XFCE-style) ========== */ @@ -770,7 +808,7 @@ void key_show_shortcuts(void) const char *shortcuts = "=== Applications ===\n" "Ctrl+Alt+T Terminal\n" - "Alt+F2 App launcher\n" + "Super / Alt+F2 App launcher\n" "Super+E File manager\n" "Super+B Web browser\n" "Print Screenshot\n" diff --git a/src/layout.c b/src/layout.c index 22631a9..f7bbbfd 100644 --- a/src/layout.c +++ b/src/layout.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Layout algorithms implementation */ diff --git a/src/main.c b/src/main.c index 97a96fb..178aa7b 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Main entry point and event loop */ @@ -456,15 +457,19 @@ static void handle_button_press(XButtonEvent *ev) return; } - /* Focus on click */ - client_focus(c); - - /* If click was on client window content, replay the event to the application */ + /* If click was on client window content, replay the event to the application FIRST + * before any other X operations. The synchronous grab freezes pointer events until + * XAllowEvents is called. Calling XAllowEvents before client_focus ensures the + * click reaches the application (tabs, buttons, etc.) without timing issues. */ if (is_client_window) { XAllowEvents(dwn->display, ReplayPointer, ev->time); + client_focus(c); return; } + /* Focus on click */ + client_focus(c); + /* Check for button clicks in decorations */ if (c->frame != None && ev->window == c->frame) { ButtonType btn = decorations_hit_test_button(c, ev->x, ev->y); diff --git a/src/news.c b/src/news.c index cd1d35e..e6b0a86 100644 --- a/src/news.c +++ b/src/news.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * News ticker implementation */ @@ -12,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -24,6 +26,20 @@ /* Fetch interval in milliseconds (5 minutes) */ #define FETCH_INTERVAL 300000 +/* Sentiment colors (RGB hex values) */ +#define SENTIMENT_COLOR_POSITIVE 0x81C784 +#define SENTIMENT_COLOR_NEUTRAL 0xB0BEC5 +#define SENTIMENT_COLOR_NEGATIVE 0xE57373 + +static unsigned long news_sentiment_color(NewsSentiment sentiment) +{ + switch (sentiment) { + case SENTIMENT_POSITIVE: return SENTIMENT_COLOR_POSITIVE; + case SENTIMENT_NEGATIVE: return SENTIMENT_COLOR_NEGATIVE; + default: return SENTIMENT_COLOR_NEUTRAL; + } +} + /* Global state */ NewsState news_state = {0}; @@ -225,6 +241,27 @@ static int parse_news_json(const char *json_str) strncpy(art->author, author->valuestring, sizeof(art->author) - 1); } + cJSON *sentiment_obj = cJSON_GetObjectItemCaseSensitive(article, "sentiment"); + if (cJSON_IsObject(sentiment_obj)) { + cJSON *sentiment_type = cJSON_GetObjectItemCaseSensitive(sentiment_obj, "sentiment"); + cJSON *sentiment_score = cJSON_GetObjectItemCaseSensitive(sentiment_obj, "score"); + + if (cJSON_IsString(sentiment_type) && sentiment_type->valuestring) { + if (strcasecmp(sentiment_type->valuestring, "Positive") == 0) { + art->sentiment = SENTIMENT_POSITIVE; + } else if (strcasecmp(sentiment_type->valuestring, "Negative") == 0) { + art->sentiment = SENTIMENT_NEGATIVE; + } else { + art->sentiment = SENTIMENT_NEUTRAL; + } + } + + if (cJSON_IsNumber(sentiment_score)) { + art->sentiment_score = (float)sentiment_score->valuedouble; + } + + } + count++; } @@ -630,9 +667,12 @@ void news_render(Panel *panel, int x, int max_width, int *used_width) char display_text[2048]; get_article_display_text(current_article, display_text, sizeof(display_text)); + unsigned long article_color = news_sentiment_color( + news_state.articles[current_article].sentiment); + if (draw_x + news_state.display_widths[current_article] > x) { news_draw_text_clipped(panel->buffer, draw_x, text_y, display_text, - colors->panel_fg, &clip_rect); + article_color, &clip_rect); } draw_x += news_state.display_widths[current_article]; diff --git a/src/notifications.c b/src/notifications.c index 221a37a..e3edf19 100644 --- a/src/notifications.c +++ b/src/notifications.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * D-Bus Notification daemon implementation */ diff --git a/src/panel.c b/src/panel.c index b7ac118..3257de9 100644 --- a/src/panel.c +++ b/src/panel.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Panel system implementation */ diff --git a/src/systray.c b/src/systray.c index 9f39b61..07e6867 100644 --- a/src/systray.c +++ b/src/systray.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * System tray widgets implementation with UTF-8 support */ diff --git a/src/util.c b/src/util.c index 06cb92a..b44ed76 100644 --- a/src/util.c +++ b/src/util.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Utility functions implementation */ diff --git a/src/workspace.c b/src/workspace.c index 1db163f..eed8ec4 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -1,5 +1,6 @@ /* * DWN - Desktop Window Manager + * retoor * Workspace management implementation */