From 0b4df537d1140302be7a9ae987d1e7acda4f3fee Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Thu, 3 Nov 2022 11:58:55 +0100 Subject: [PATCH] keycodes mod --- config.def.h | 68 +++++++-------- config.def.h.bak2 | 117 +++++++++++++++++++++++++ config.h | 68 +++++++-------- drw.o | Bin 0 -> 10744 bytes dwm | Bin 0 -> 72448 bytes dwm-keycodes-20170511-ceac8c9.diff | 134 +++++++++++++++++++++++++++++ dwm-keycodes-6.1.diff | 133 ++++++++++++++++++++++++++++ dwm.c | 16 ++-- dwm.o | Bin 0 -> 54472 bytes util.o | Bin 0 -> 2240 bytes 10 files changed, 458 insertions(+), 78 deletions(-) create mode 100644 config.def.h.bak2 create mode 100644 drw.o create mode 100755 dwm create mode 100644 dwm-keycodes-20170511-ceac8c9.diff create mode 100644 dwm-keycodes-6.1.diff create mode 100644 dwm.o create mode 100644 util.o diff --git a/config.def.h b/config.def.h index d5b4e3d..34bf472 100644 --- a/config.def.h +++ b/config.def.h @@ -62,40 +62,40 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {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 } }, - 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} }, + { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + { MODKEY, 33, spawn, {.v = dmenucmd } }, // p + { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return + { MODKEY, 56, togglebar, {0} }, // b + { MODKEY, 44, focusstack, {.i = +1 } }, // j + { MODKEY, 45, focusstack, {.i = -1 } }, // k + { MODKEY, 31, incnmaster, {.i = +1 } }, // i + { MODKEY, 40, incnmaster, {.i = -1 } }, // d + { MODKEY, 43, setmfact, {.f = -0.05} }, // h + { MODKEY, 46, setmfact, {.f = +0.05} }, // l + { MODKEY, 36, zoom, {0} }, // Return + { MODKEY, 23, view, {0} }, // Tab + { MODKEY|ShiftMask, 54, killclient, {0} }, // c + { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t + { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f + { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m + { MODKEY, 65, setlayout, {0} }, // space + { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space + { MODKEY, 19, view, {.ui = ~0 } }, // 0 + { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 + { MODKEY, 59, focusmon, {.i = -1 } }, // comma + { MODKEY, 60, focusmon, {.i = +1 } }, // period + { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma + { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period + TAGKEYS( 10, 0) // 1 + TAGKEYS( 11, 1) // 2 + TAGKEYS( 12, 2) // 3 + TAGKEYS( 13, 3) // 4 + TAGKEYS( 14, 4) // 5 + TAGKEYS( 15, 5) // 6 + TAGKEYS( 16, 6) // 7 + TAGKEYS( 17, 7) // 8 + TAGKEYS( 18, 8) // 9 + { MODKEY|ShiftMask, 24, quit, {0} }, // q }; /* button definitions */ diff --git a/config.def.h.bak2 b/config.def.h.bak2 new file mode 100644 index 0000000..d5b4e3d --- /dev/null +++ b/config.def.h.bak2 @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, +}; + +/* 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 int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +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 Mod1Mask +#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, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "kitty", NULL }; +static const char *slockcmd[] = { "slock", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {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 } }, + 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 const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { 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 d5b4e3d..34bf472 100644 --- a/config.h +++ b/config.h @@ -62,40 +62,40 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {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 } }, - 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} }, + { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + { MODKEY, 33, spawn, {.v = dmenucmd } }, // p + { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return + { MODKEY, 56, togglebar, {0} }, // b + { MODKEY, 44, focusstack, {.i = +1 } }, // j + { MODKEY, 45, focusstack, {.i = -1 } }, // k + { MODKEY, 31, incnmaster, {.i = +1 } }, // i + { MODKEY, 40, incnmaster, {.i = -1 } }, // d + { MODKEY, 43, setmfact, {.f = -0.05} }, // h + { MODKEY, 46, setmfact, {.f = +0.05} }, // l + { MODKEY, 36, zoom, {0} }, // Return + { MODKEY, 23, view, {0} }, // Tab + { MODKEY|ShiftMask, 54, killclient, {0} }, // c + { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t + { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f + { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m + { MODKEY, 65, setlayout, {0} }, // space + { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space + { MODKEY, 19, view, {.ui = ~0 } }, // 0 + { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 + { MODKEY, 59, focusmon, {.i = -1 } }, // comma + { MODKEY, 60, focusmon, {.i = +1 } }, // period + { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma + { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period + TAGKEYS( 10, 0) // 1 + TAGKEYS( 11, 1) // 2 + TAGKEYS( 12, 2) // 3 + TAGKEYS( 13, 3) // 4 + TAGKEYS( 14, 4) // 5 + TAGKEYS( 15, 5) // 6 + TAGKEYS( 16, 6) // 7 + TAGKEYS( 17, 7) // 8 + TAGKEYS( 18, 8) // 9 + { MODKEY|ShiftMask, 24, quit, {0} }, // q }; /* button definitions */ diff --git a/drw.o b/drw.o new file mode 100644 index 0000000000000000000000000000000000000000..e6e86e54762097f972308d442c8b502ee0dead42 GIT binary patch literal 10744 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 literal 0 HcmV?d00001 diff --git a/dwm b/dwm new file mode 100755 index 0000000000000000000000000000000000000000..7720a530e6199b448a4c3308f62bd5acc88ed7d3 GIT binary patch literal 72448 zcmeFa3wRV&_AgqUq@j6rw+Na+kVc{=2$)8|G!W?~ouq;dGC5M0(D-_k7>I z-~Zl}CaczCzt&!R?X@38R;K$hVoWAUJTcNO5@D^kxEV?RElKXnJ7nBaiquDPOM|7W zrEZXl!%w>$e{*wqGzLsO0$OxbiUp)}@$|x=`yx1yVUi@ED4igs>v-J!RfmotIx3)K z*KtZ`rq^U0my+H33y0t2=%|3kbgaBap01In7_%Fj?_i0R-UevrxVc5^(mmxC)JUDQn)@-V%@+9*P;Hqqn|pbtK;eFxV(T~$^?&q zR0cgcUj&N(@091~>4ra{=QI2XH+vDVnAbxZkMuodC~eInd?(P zvJ-l4tSG-@?C2XSibqtGR|e}w)TN9aF?RIG+NzPG7@z7zrbITCIW3{dd(!V`-f8EiqKbricYk1@L(=3l)K{C`1N<%XAkUXz4 z!|A;iKP1ESqZhzLi0=AU6+;NvFQ1_(r0*}utTC6OTcgN3Q0}GV{}_ed4Gp=Jd?bqe z7f|%22 z@k`MsMWK_QxRm^tQRweSsef9OdM=BihpVF0=Zh%$d!x`tN9o6}qU3)hO1ox8q3?~- zu7)W2=S7j<5QY9i6nbnF`r;_%7DUnW2T}5Aiz43?g}x~Y{lzGH^F)!~6h(f06#2)a zwD-0s^iQME?~GzUFGQhNN2yOy6n*|J3jM7p^?5Xkd?-qNGNb72zoOLhSQPpbQOZ3Y zWgK;j;%DxSQlI)L?d=;y-W#Rd7o*hwp(ym5qm(->3jNwBdUzlTJugZsD+0)d+HJA#3dS}8vV#3^!lWdQFaFvVX}6{sqzs?d2ERW&8^YpQ~k z#ZrDoO-V@(QdZ9QmDdKOd~ZobNuUJs)g?87yQKW7C3S)H#U+(sW!4nl;jcojB{foh zUge^~YQ1DBe@bEPLN4SjsSVUr-6c3VcU2Yy=rX?Y212`!-I zX%&UFwNzgzKZ`V8=?PRV(nUqXbQN@HGOv>A&5Fmb+PfCzRsj}O6{F~!lFDMbpGXDB@M1L0Og6LDVcKSY2IJ6R7o7 z6%|qgp=v|DZ!NE=NUJE=rG+6W>6v6reqfpN)r+iU$MSK2a zx6J%IdKigo3Ktb-)q08o<%^+kPGIfKDMCXlYo&}L7)A}0>nSd#w+@0{3UGg6fSFWr z@uaG%iVgujcrTLRnUN6FKu++E+CX^#js~Qug^No3g*CPGj>Z)RD*_ksc|qP_bwzm* zhIvQMqNw~*sJJpf`sczDNNH6SRW&ruSP4X7Bbt;+2#qU424olMbpiBNZC;=>MTk?L zR6&t~H=n21ot}`VR;Jg%1Hyvz!lo1kipr$gk^m|}#yxKywn~b)<6Tr(UMZDg3=~Ol zcSVb;8B#0Nmd~#&tYEb2yCjVE5_-q~lu>PYu~fvGu(-4u9yd@*%*rB20#=k%N+oqA zMT@JY+DgtYt*TiF9-Lo|1b+-C1(EWAw4|^+P))fNl8Pi$EZ^y*O`Eaoom&MFoJ1&v zf{R$^wUf|DeUpb8rKimFWlc((H)`Zfqb2b=YUCKqJ=o(h{1-!eJor!lt#bs;C}(^Z zDMT6pjWQkY#O;u{7`wETkQT5*irxgZqn1R8#ZSk7n6}wN($f)>Qv62G%fEgYSgbUM z(}DxavDFnLl>(>d^g%a+gkHwp^k3%<^a=xA%;%Wi*?yK_#kaWGYj^xcsL=j640KUP zVkR2s2wmErWCI-m;}sx16}L|Qknt-y{E_o zu*^UgTf@YzHqd(;*Bj_I1HI8e7ky0ZM-2472Kh|}`sD`tvj#ft zZ;EHLf!<#b0k;_FR~YC`2Kto-`hEjF-av0L(0^s1A2rYi80f7A`c($HW}q84PEQ-? zgADTL4fLxGbm@?rVPqqN4Rniv?l92p2Ko>KJ>EdS#z1!%=tB+kL<2p+Ku|D*+5S;(ESE_l7XIYpbs<93k>ud4D>PseYk;MZJ>`Z(CZBJkp_Cb zfqtWbzTQAjHqaXlbXv=a=Me*alpq3bGSF`_(4RHXM;qvy4Ro42#IwafA1jD}O$PeS z2Ks&jJ;gw8G0~!^r+88t4`S zU6;_Ab_3mGkdHUeCmHAt13k?^Pc+cI270oAo^GJ080Z-Wy4yg{G|*)OT{h7D26~o( zo^PN}HqZ+U^ji(|G6UUbpjR8{Qw;Pv1AVH2UT>gJGtk!?=zase(LkSWpg&@uXB+67 z4D=iW{aFJ&*FfKFpywIrTMYCW26~f$KGQ(oZ=mNJ=q(2NECcpwBnZWdps;K=&Ky6yBU5j;dGP|PG}Pmi!s)0Z z>}GgR!s&=3oXqeT!s%!u>|pqhzXwi78eu!bza{)?!X<`(N%&yGPya;i|D13K;jIk+ zh;TZx2)8i&FyVAm5pH7mn}iP~d^5v$5l%-F;Y|$RN;n-!gc}+DH^S*CB3#e#KNEgE z;nfU(lJG>r3mE=e!jlO1GyDO<>8K&>X865?(-A{Bnc?>kPDcx22g8>VPDcu1JHu-T zr=x_h#P9`#(-A`W^uJmE6P`?XE5m0K?j*d0;n{@KQ9-zg;gbo!iSW$~pF}tv4TLu_ zd>r9)BoJ<7_$b2ZC?H(V@L`105kR<_;nxsOTmRt#h7TZ|w*13>hW90$w)(?vhW8|# zw)n%z438n4w)VpghX43D@KnO>4F8t!TL_mJ{w3iP2|s;-^*`Zm!dn^s5#h9DA8ujz zVZv#vKHS9cHwjN8d^5v$5l&n4;Y|$RN;qxFhZ`CGH^ONvK3vc6KNFrwcs0YHBwQxE zfZ@L-Jd1EY!yh1gGU0B9-%B`cv4@ixeh=ZawH|gbd@13yr5?63yoPYvN)Jm6UqCo* zp@&cZ$oijfKjEzmpH295!dn=gO*n0phnpBanQ+=74{v7pB*JNHJiLkF;|QlM@o*!< zM-fh2;o*9Q4@NWsfop6caUlKl#@Y6rA{wKVE@K%O@L^y3(hg%qam~h&v4mUCU zO~Q)^-^}n`gwxh^coW075>8vv;YNo4jd0qE4%ajM&xF$!bhw(~PZCZOP`H5Mza_k! za6iKzAbbJgZie4W_(H;y8GaAp6@)t&zLapB=v12se)-(mXwe^Y|4D{aN1?p_lR>J(8k?kps z5Nm@|#Vi}VTvo>nMpx{}rNm<})Y^Jze}Tp^10Q!rv=Clp#oT)no0Nk+cT_Vuo$~eDRXN_Px(CWie=mfUKEoj5Rm_6{w7uO? zGl~ngH@@#i_4c8LVMRi*g^ARASrWnP1h!Xtz z24ba}@a{ak{V7WH2faO~;LAXI5hPjJqusAlkLuLd8P!blvli4j+jWj@Bgva(;>^)G zPwSj_^fauV9-VWq&iPp9Bv6{`bxyU;Ii+*90@M2FoEbXjC!JGAoHKAHXv74a(^IcO zDRDm3Ipo*TmUx|$OPn1#$D(tbI)~;D?GHNV6buMyChMGJ;;1_3eVuc=&bf{_cj}z2 zI_EB((~meabx zVrs?Ec^{+Fc>tNU;U(Mi8X21NuxAUw1?)e~c@7#6?RKO)54<*n$R=6sAII|E>)GM} zrEL8NtU`Z89;i(nfc6%~-GW%8@ob@%lwC=EsP=!IiG)#dHod8-wIuv|8l-v=ka-p) zDrC&fcwt3eT#TENETsH4sST3HqP=Tee56o};Kf5%F=jKn8U32Of!-og2lI4BS0 zpP|==+Y%hwhi6H|{4Eib54TD(6Mad~#Oj3gC`P-S^?7bW8M0lc z%WeYD#>2^JKO-K4Bd9~z;ymDM@Fm1Ss*t12kBdBXCT$?Akw@|{!zMAiycy({(V{pVs2k7LE=8;e!tHIaZ>yYdY6NU9&1 z!rT4|b{I+>_8YV_IB^T6(1_fCs!^9XXiAV3G{)IPAW^d;l0#?y^r$4Mey^-N)>4mj z7z$@VX-h_~KjH;V*LHnRO$h!)EtQapZ+YZIqQ`k(Ra%vO1?)Uh{FFudFUB zql%qEWyWBV8%~%1855wDRnr#e-E#KIway9 z#eaha0UJQr0e$A6(X743=>2Dd4lDc^1_P<@0JLLzg*AE~O8KtZ-HH^>ra5yxw>8@a z!J$UYX?f?ViSo|#v9f8eeCX%EW$ih1 z=Q(svPxY-&?eh={3SOQkD_>|!VK95m7aqj@$GOeFD39dZ?p1zp9=`XU^}lvY9;L}M zWWRUZJqGT`A|_c2ieyloeXyiQ073Kl@-~O6*^@J_aRrNEKF&Ofwv9qhJ@CsSFYeD z=Fm_--J&Q=Zq~_59IR^;rk2`7<~g2cR=6xhdqX66^J}DBa~4V7vpv`Zt=b;kWoZez z$!f>@)M@C_OnVlFn(`s_XIAVg-Ovuos^5>`*R7>|!#t%GUUSEC=x0v&)I>>|)6Bb9 zR{oA1Fm&))%0Kj@$@VZ6FgZ*4iOQIirJR+OueZY&O4=iC-2se9cOLgCCvH{yo$x7N zXGM0)J5R(hHDaV|Q&9IT7bZQZwdN?)gKT%lbAx5(3fUzo?QhA#)@X3$<>aWj3Di8> z>U&V8tY#+DK!w{`>`}hMDD*0O(v^cSuWo3fy$yj9jEw7VIJA|%1_L>V=@WEE;A*8J z!JV#r8R({_S(J3lJG<>-h?_6Z#qSB4mx<{9jl>MD4MyUYRoSn#K&heBLzwVT>!K7g*W~=!fdQU|xEno5 zClQY%k{<)Pw-<(BY3slJ_ZTiTk#9q2s+fO+q-}>fYHWL`DcyO}c`_X#0_sYMSgvk* z8!fA=nSRrqhau%fufRii6X1Sx6DH8uu-mq$xK~51+`Wo%Cka0m;yI@*sQ=3l5iR3m2Q)4+b7typAgN-J@&|m5X+=sW>#cZR_MpLfO(4R zQ1Ia7@x$LKz+||56umj{wlYy}SR*AOO=<*-)Ga?nP`oWeYwQ08z3PjJHp>*{5W{_H zZA!Wm<_N!k9QyGnU#BCinl7t>1UrHWukt1Z!}&htoDY30YklG3RP%!SNzK5$Ce1~T zU>cg-8whkT8m|^_61}G2H6Cz6+l^W3VvK-g7O(Q7p3#e6>e|5A_bAQ5`=+Ri9jHd| z2&&U|8@xpRq=vX*lzHv7XnUd*>}|@$aA9u0?Rw-q!HXz35!uJ5D;L_Xn&SE{c$L?L z7~TUP;*9w4YWHlTUQc(PZNsu8qGMj=Xy~-b+v9ww)kF<{XeavEvfsAai){xK6)y#< z(6-)f{TX6g{T#9&0&+l3UQ-2{ngknS)v~RA0PHMO*p50Sdv2gn0PVRCX>x3Ba%{{@ z)Y3t}Civ712~808HpHb+1fQ(^sA1P7-!sd*1}zErU{o}~SY&X_Uq%K>Bfw3XMgbF$ ztyepa#m($lWDgF>w)!(NFDgO1FN_)XFi^dk%$Dj?Ao3V!p89{8Y-=81+>g=dK!3)c zqI^e-Ch`>FB=juYiEH?tCd7ZX)wfa35qOgG?qFEkgqkX+U>?})$Wr!dEhlK$rlrWC zx_ETWjwex9O!IfTs5&64b@7_-Ulag+yZtlpvXnhYsVNxBdiWa#5z~vd4|d=@j5rBv zva7zL1Yc_*KptKA5Y4~W5Rrhq^a^XGxV zGzksx!-CjKU;$#I8MOL=>!E47+1b?Goa1a#-lN%{r@4mGT!kt3%4|4u__G5uDDhcs zDN@azMN_=%s4cS@K?Q9PBHIAHjGNy0KYS*VU8NHTd(P(0ti-9(D>X+vSGFYGSDM z1lmqOkl{)U()@;{Q74tj4U@}^Y1Y^2X$Y`13|CCDYiU7nxJ)UK`CwUHPdTV}Vx0X| z9=bjkNDz^AJxlkAtV}9s#%krKoNWaUxutA1Jy#x|W(i)anlGqGcKJM_}^ z=H4q0ZKQexK0}u&<~P?#QnN>S)29yF0Ta&gHuSy{>)dU4cYf?KeJigy5Xe)fC##+m zuj(0XYVo@Edu-Eox_-3zK1gcWih?AYyi1)v!E4&(bsYxpu*Y@UYxC{(ChhXDS>0ok zTWl}xay8#=R+_Vvw`4V|y6qVsRwK}He?N+%sDB95mQM}nE4#L=ry5>nXh3##+ea`l z{O{lK0A?e2gn46N_4^~Un{BU5b=3b5Yg@erm4QCL&++)x8IICbKU#(%FaYc^*=>7p zZ;#VN>fQd@b705okoMOex6rHGayocZ{fP^dcoOVcxnO%G4^>S4A8RT4*uE2W(Eb3| zHA_}b(V}l|(`KlX`-gVu(AkwN(o<5}4cMFqcZ8-b-sH3FA9R4g7c zT8OM($1Q~4Bu2s3f6{R2cWpKGS1j^jGQ$qCqtXt>7m%fxtydF+eXdAsg>(E(PD7=)Sv#@4i zuaqUS&rL|A><^G!Zh~J{HoA2==!CsKTOSy9#x~5C;Kpxng7=K=_MHs(ov~dOqFOS# zO!T%s`xphyk!&-Y)DV?PVsU`b&DCmXg8tS|Rzp;f>|!#oVeCdIp?r|`g=GB3{}j&` zU;u@_Dubi4fI=I)=DrxuT&;+z@@ZXQd5u0XrKK?@&)?W76A-VUEI@Oszwv=YeS`_Y z0g6mLj@A-jIt?J6_%qp0Xm^?DyJU48m8rbSeg`NrVSTBriw9X<*PEEXVZYZ6WE3h` zxu5-B=U^1t7w{_U2q^0k7>QLyP4!`rp$fgX4n{4}4!CL92CYo`u_?OZ7+KXZ?PvWs zXAq6av)YNzSsjz-G_N_Z1=&fo`*H-%%9EE)vEcW#+p(K*^5CbM^ijr~ys}4KM`fFu z($U-SN)IDT*SB}~QCW>mJCok@D1TS`F9X@j=qgoPryogc=snzd*tBy}gKv!FwaH(a zcH;N9ZPV16WOZ_i=^L*ryt0qFgBowzm-GV`Q|jc=>e30OgUXLy*E#UEvF!FG{fHW; zHS`;9+T}VjsUerLn{vw3;zEW~zERER;No0+Y(CB7+6^Du8rnwYAO*2JI>wK8HYS3? z4d{%`{yQ=jRVAWV4GkxrYge!*4A6Gt(Ixh_3cPue-u5Q#0lv5xDO9pY#^1j<>x{=X zY&UH9@3zEN81d(}8$Vlop5Bz5E zo4_}JNPOFHjY{pN7o@U*hzYxgS809p+|Qn*_tlq1qfn5#D;g+Cf7b_q*Yufdr_Hxt z4bi`7<}sn!O=vbBI~X%&u&05|2Tpg!pVs7cJx6vK9N=}mL^c?_%%zg@gFU>i5NSGa z1-9J0+;i(&V&Q8Lri$o?P0P*$Ioa4pV3X2NF^AS*4*eUSL$T|@r>M|}k+!3-oW5K8 zK7j2^<^>T#20npBs(0sW1+>;;QA}W@8X`+mr@$i}Lr8>;y$NdGXj79KOitSANovw= zK}BSBTQ#KG*vu~W)Ubn?=RBFi_FdGK`C8A8T(Jb&LJ1;!wC}KU-quE|@xCBXeA&;X z)egjJ5(*nY9g6i6z%01bGd^@pn>k&@8r0dO$M+avy|DvsTm2p^OI4||9(ccgl+%QC ztQban;A@jj2V5ATwLWjsY1fyw%)cuiK&W@p2hPLiup<8&Mr=jvk`5;ASAIZCvBk>H zQ`L>E^{f{f;{0CIY0r3CaoHxFZks|mC|`S%&U;O#^qf3cfuwkoC_7u{?5@DE;V-f~ zFS0w&Rj3`uNl%2@q%?;USX8__Ui35VgND9xWGUyfly5K(y|)VE13t4iLi#`A-A{-e zJ7VxZm|fn~?jg?;+MOc&pj~#Qu7Dt-KCG^L(;0!T!rawuSOOi>!gMf2ald&a6JZn4J@qDthp>awocG!Q^otYT zYt>gY591`E4+*l^%zl>NUV__WX=qHF0T2?37 z)*$Yr`S>l!%0=b}k+B!+5cSr9hOH4bCpoXo)RS0!N+A)cc0*ltNU}h}hOmEuq;30% zOgMElWfR(s33e}bh!Lfj?;(n6*FO3O39!Ir9!T0a(yNY7BN63uZ9dCmPIWk+I&IZ% zYAj-_&`LknkT>BFL<|cyCfFucBFeN-a@U}5R#HKkh*}FQ!6_(NBD$Kay@7=r#6AOm z`=+CAN$ZcDRIHd5(CWC1C=F#XUe&w-@|XhE)K?*ybV>kh%v#m(Z31(r+Nv)8hjXzJBsr50K#NXbE)o+&8av1Io5{Fw`)swVwNij_t7y zoT|os?|$5kdZv0%s^@je%ct!1>9Za-@ng-W!SE{II1ke}Rny#__l{!=5-Dt84E2R% zw6z~zZ4beQMz?71U^)95oh+wgu2D{@<`=UgGlHlpAbY)npQw|OoQD!bW<*B?7_wd z@j#Lq8;lpVTlq(Thwys8#-KP{()#}>M+U>)})$~86jCaiN&^R{s`Ct=;c%n>VF6bRP-q1f4m#==l-p? zBo;04%=XN|HV%wBNyA=}%ltHil|8nGmr)i5K>sv;+5!}LJ1g=O6}iq>WFy*1Dk8fP3$rO+bv?y$q@$UrbSK@k4JI?a0)>bJ zdNgY~%AmF=VLB^M9g0`&CoDhmXVa*mF-j|J49LHO1A!OFiFipogaL!9yB?$6m=%khRd2$249(of?$#uC~fJox|uio z56h6FAI(7DYkA(zl67(NzYx}TWUq&T=A{0wO@74k; zSxt3OSpl>MNm%i$GJgeUFgUbqO4bis+#j&D(+PM?YBBAtU`K^*Gbpc;bLv=ieX$gI zCPSVEFgBO5!on^>Oa1Ym({YN>jb7h2$=GC3|4T3OBNVrp5`Fw3649#Hb6a@cdwSfY zZ)ISES1jt*lH{QydiEswymv}+N)8VC_qikW+ES zU<7!F^;9~@?fF0>0JD?h`eJX^?rz_dbd zVb1<488z5Q+2j7#U6cybq&~gV??g7$>%Xzm14Z^{Ya7uvn!vEy?oYdE@kkA)ABeTR zGFU4`f%@!*oeU`W2a3$F##))ECD8GkdMAaBw$-n)IySq{?zIQ3s>iLc05E(EWVMlo z#hSyxLGU`apjK)fS>husS$+o77Qmfn8Sgdj&6I0+yHDm!*3B^+uo@DHfGlEym zOn^X4AYKj8uu?(;nZRhT3Cl;KfEyR+uZC#gC?N;qrYH;r%R(#~d`gHd$2=1hhU)U_ zw8S;=Fe()d7vJ2_FUe!t>2V!eabx=Gj|0Q>LFw5_N=Ib(sOKCOGdq?2^rGzaCLL&q zOVaD9P8+V5qi&;0O={?8GVODHuwo?Tlf?63bC#aZ56V84%@4}Xq#v+(Z)$H$Y{2TS zKhaxX|D0y0pqKDkb-ItxeHR~GXb80w-iCAmn>e}z)*3>8w`GxEd)L$bTFcY=?Eo1_ztAN7`Os0{GxDf#i zy9vOysSv@nP)E0qm|O@`s2Rs@)o5S9weWq<6=Zifv_+7hG-I^(mmB;M*;TRce87xx z+V&+oj)?3>(Q(>42a)dMz<$`&1IUp!0qitAWT`JFuz{?mez}+hgZ3d*J`y4Nr`3Kk ze4X3DXcY-)t~bH2y+~tV)o!Y(eu1DlC$xjc9THv$PVK1u!^o50LD9xhq6X%v*bTD7 z;K4PI$p*yGe2tZ>rWOI!uX}0hp&^>h#+(CpEZtJ$kW}gO7yQ;9r3xv{>B{#?7{}0__r6eLv52l6 zWqWZC9oTPQ89}jX>Y*Tv!qloXdGDPNqrHSwo|JvT?p|fYd}QN^>~7l^*%SK768x`x z?f~`s6yZ83T|ZF8xgJi&HJY@xP>tA4A#AG7K-LJOX%}%JUY%!sEL>OO5>#_fswv_D z?Dqon)@CC&uliKkLvHBe3w0xH5ckTH{CY@0D(%yqYKlXP(4IKt_$y%gbq{SSDm{Ca z&vi1mk8cuh!hv0IGwhEqeAtwzjeQrVQp*xe!ESTHlTcYq6?AcfHl(qSPEB|kJ;0hE zs|}=c=UHC==K`WxtoA+>Zmj)s)BqFQjh@$fqy5;7j?zjciWmoHYnY8{qpDC^{f;iV? z`{Sgzi<%D2{k;}GH?jhjG#z)n4hL_<%y0m-w(Brrn(!jK_6HFiA>4CA0EaJaSUu_( zI5^pAX;x<@sF}lQF{1VP1_!sdQRNI!|gR-qMelRP%76V${R;xT|qd?~Gi8lkn}j za!+b0gK3rUIc;nZXm6^lCAqR5sAtY=s6w!h#;k+uv~q2p;>Dmdv?i`n}4 zH#O*5*Ho>fjUB)iF)fm9=f9dBpQJT`f5oyw%wh-hlSYq13r37blzAV$=l}Xr}>1&&vR6 z|Er-?tl#k4HIp=uIXtjenVF)@OoUk}nZvc!Y;(vwKu;7)KrzPwXbULjP|WA6aX61E zNNo1{MGFTUMJ+4S-aUiza9gqsS9S*7%UNtq@hwgo83$_$(&E+nPV34t?YEQ$T4^B( z^6>@VVVZr4`0Ba})S67`_ozIE#G0Fc^VwyAi6#wPr@%*aN8OkAg;B_9x6XB)0oJ5)JQ^(Sb3v0j=d zLUA>9OBD*tM~x5Y1NI^0ENaK5G^!o>qyF!b+8`J^v0Jy{a2297EL}71WzSoY9-nWi;L{-@lg33-Ayec~?&<3+6r`nP2tTr1C zF_|>1;Aeb~65fFEfkn)ZFy+*fAgGyMI?Nd;t9=Rf!yq63;K6z-+K$T_N~X8X!eK9x zRUTw#S9s-TS*!V3Rjf^2EDnDF7cZlfdH4>PEGVh`?XCjDy@B=DD zUrJ8GwmOb_?0x<@8rujr?qA&fj4eOY-WGSpcH7QxZT9}#K*x^x{!-hGhnDoi?>>J8 zWl2vQ4`tfJTd+oF$Gf=ai|n0;RmqguPtELyQ6leBGW&%eh6III7b?JR3a#*?j^}8B zl;PL1>4;vCb_@Q9?65hfsryML^>t8ZhqKt0fcZrrqTiN6 zonxj#Si1!`4=^Lnhx9WL&`f*rRm@#e+>-XMH(4Hypd#Q+0v-0TfMt@pi~)B6Ups5t zNR?`8u`W9TLrVX$<|#c7ALz5gC-!mAgT1{~6Iu6n>Np|_IZl;f|YMKX0?H7>$B z>B{5Rcqv$4a0%kG64X%}Bu$MIzl%p{HRsd+EUL8+}DFkrLxx1v?qdrc#>%M`PhR43)9> zkGLWTz0u_zXzr!nh1@Z-_ERv$6Ems+&bjs4r(I&R)I%;UI0DZoeLK+O-HK z(IK|&^kLTyqH9~xmk^u-!Thibn_`$x#yk!T+LqNFETC6DV&8coC7QF1lk^;EDNsLN zqM+>9cIgRpUbqZ7vhz>+3PA1u8uEhckd@I1y4oxta4*cXs~lPoL(6)LUmHYi!{(U2 zRX__jq}0D$!7_=WcL(aaubgUk(Ix>q3GgNiWcvfy=#JBBpbcb28w3a^*?w?@!nDDf zyo+%hbVCJeJ~a0gWQc1n?G4uMhMq)A)iJMvjT=R5-QaUw`v@z3Pq2^fl+mk4=(xu< z;x}Lfdv;7@v_feqSD+`XvSiY81LV@%msdeV%8&J9Kx7$+r4k>ZSTmksWqp zDEfSZb#Hnie12k}9KXFVh0yt-!4fj3p{FpAcD2E#X7GJ1+EEvS;t3R`uUGq{OJJN% zwpP^~ls__mNI$(Mmma`XDYlcLeL;s*7C3Kqo-M1a=<9K3WxRPEReb=Jdz8gGEP?Er zR}eI7k$;iK%p0gkS9+qp?tg;jB(}D})>8lT^TquMS}%S~Me17uGWOWk^Nmcpq%#|r zbgHQz#IyD}4PYu-j*~lXON*bohcMi@YA?vcsC4|wjvKAs$~wI_FhlxV;&ojKJ}0F$Wg1r z&ZhP_e&JezZ4HIH>N-6bP0dE0@Hz3?pSFv6^?ufwVzfCSfbTutq+;3ru$|ejVE3gu zO+i{&Rhb7>QzOMRA+r^@_D_}<^Q|zT9Y3<3{FDi3e?*r0EIf!wrS1h?D{O)cOz*B8 z2w@}I?^tZm|0)!NPG1cPsQPgdTn_;(1Xd9VTAn7f?3NqWP)*o2&_BWTu$?`MR?>mJ zHU#x=kCt;NrxmdFe6Ic3ZQIyN;(1zyvQMqxY?;U7L2jb91&X9O-x0ctKIq*?%M*5i z%z1WJ_!9&_&a<<_wXnSWW?J7QYU_9cOeXtyu$s%*w3?UIX^vnwEZ<|`0LJ%uvIx#- zA@)QL=FHHhQbOi2>3Zg~)R!>dbr8WQEs$M%f>*TNpnd)sNnumTyofliJ%Q^fjAA8e z55n)s%7`3r+RU=+y+AK~mV@Of~CuJ1ZU)^OMD%t$LdO%9Vbv7RP)R` zDEH<-A~k*}2tR|s9ZX$;HVh@vj=-RQfvo+Lx>^}D6z_AIu?^vD;yXR`?pX7UXq~Cqz9DsVD;ATS1ZDqXlzIYKo*3t?<0 zU391N3Y>EUdxe%^Tb~Z@1K4-P)yhNBwvKSlx&?iXIOF(xt)#EE23YaBLTY?!BY=Kj zt2JXQGj>oW3gqo9ViUc2t}a;$z>c21YKdFTPti7#y!lGVCqXZtcx=Dloo;*OxF@tb zCY-1zy@n-)kzoy!pmx8Od~D#V>F}%fkf+vSVdtpCg#t;sJ-i;%1T3V_Nnr5hce-^) zK0f!aa^N~yIX#mWJRUc)ic@k|$r#qVDYQWRj|BPQEIqmTFTj{#*!&bE?|#EfKHy#YjiXIAAmO@Bjm3l<^3W1jRV_E+*@Jg!}I+w+%qV`W?V zd2wj|5%LTs$(OjfYLJ3`1V5qaaJ*kL=}q`y9xWYuFqe<*81M$m`sH77lDUpm>RnN( zPiQQ?g;ZGDRZD@Ja@2|1QN%j>2>3HGFvteb2!P9cpKV|a+6b~UGAFzNgN%(Q>~Ye* z{&(9O(PG*{-2sSuoCxlHN?d~WP%q@8JgWz_%^o!lvkmqE;vuDGhf-(4>2?^SRurL}-a9jFS z;CfO5f)Mgy;bzuz=IyuBM1lUH50hm@4{>lPfOo7Lcxa-qgIr}BORuIri8R`vt+TgMV0qua%RU#YYHjer_ayY@g;@`3ohJ-VxK{= zZ8yuI2?+?q_p#k4s!m6jw7rYHgKhalMAWWto9Vkz!Ixz{fQ7%iA9?9>c>A>d7)Y-T zK{B)eTc8`6Phe4QKB0BU5#i_wNKwGselFzKHo`7+wW|GxqD2=S=3jh7ryuQ)qK5o~ znFWht^jY;Ru8831$o%g)SYYGUELk;{J^GLx0(Zuj9kMd7KwChAyInJ%A&E8+I)@kB zPO4_BTDlUb-y6VJWm}~W+|*I8kmydR8fJSb0F@5mjS0 z$Kn+G9}vo+Z_?HL0_+L3)RU6f^#Zu^j{|eWdJ3!Px_r&mf^1yPZ2e0*)DnrHM;y3B zbxa$Lc(%PKI#jLX=W8aayuP}c6JCoIHp+LsN}321!XbUnG)1dVzh+|_yvMW?*fG`m zBTF^iEi2EFtTUo|*I?}HgDf4r7t%X39ZQzEgtE?5=9X!Vh`lM;{TwR@YU;|_*kxDU z1+<@j4e%wvb)VYL51+akbGA>}hj3?anC3(AAt~KsYhk97no23ud88TJ>OGj&`DGE? z8am0>Mt@2zG-pDJuDU!$quHxI*BfAlelF(Of_JtFJ0?5}Cg}qfLFAr#0T>RNzIzEd zgmyb9>@Go;x|6`-AMP7hvpTHeEyz!I9#A(jf3Pd^W_GN8PON&2!#KB3eJ#@ZzV8F_rq4V7W3E_#TTIhT~YXyCge8slK}kQq}HSso4hkUNkgblUFS(^ z@itVO*e4h2oyoX?+yrff^O4SU7WWENf3gQ(U8%31uSZ^pge|TkwhbY?$NE!TM^-LZ z?;NfAaaUlk>&Wt|SpNjj%7lH+qv?3Cep`p%)1m#TW4hio^)Ot^T->R>VIw(QrRCgF z>`aEvJ687hD!XoAYV07cxXFprBs%8&2W*F0h2tmlMAVdx6ywFA22p|4S;{HwSlP|C zHTNP|H})KMecFd}Uu2T~pStavm&u4yznlpbp!YDPKk-*aIZ71TW7DtE`~XwIfIgvL z6Hr;RRCbwI-A0C|?Zd&2>@q8qOxc5(RXIjGjO(#LqWE}3H5gh2jWqr2T-?MGUoGqZ zB+^mV6{%^Ii?IBF(eme$<&XQAod#36WckeGv4Aprk?a?i|Md)`<(nV^YyELED#9(l zAF?#uR=t3Uh1SqNQSSH$KvLgD1_pC}f(Fem%sBw*4s$LAc9A*ff#AcQr0l~t<}gua z&Tf)Y%`=cct{3`oA23%fOU5Pd8|Zew>B}3~_1~m}%FpLMwaMo~KM!6pTHWSDD)l8Y zE3Yc2;1kCc9#h!UFxsNL<5dnOo$HWZ*)2V3C%y*us&%8i%FjthlyA;`Xp`R!{V;gN zO)5L$;kQ0w>n1czxDztz%6X6S0X}+4dbdM(B`&I;$G_eHYvksKJ2|@R#y_+aoJpSk z8vXtnzB*;M$PrwStKh?7Iecncw({i-?6zEo;nQgN@do{rr+tX5NW#?fK3mb4$LC#Q z3_K*pzy_c4Js$&k7z604p^%3OfASZM2zH<45{7y;w#Q+pt+`OX!BCH3#lQ@89~fFQ z?NzPXP39;J6?dcAW+ive`nMpsW=8*-4T4%+6k*@nu5Jq4Y)gVivL)dQWLr{hLbWaF zv4nc$WJ`KFp^?Go6E-pUGW#Obmh^f;6L7g;E(msQBhS`?4ZAr?I^9OTI8t29}OSp zxc=JO>w8KU3s%$LI@cvh$PuV=RO^3BUC38f>FnC-lA`j`@{;0_ow8tmvKxO2-BCn; z3wXlEUJ<95unpN;FVn z;-!Uw!U_j#**Hf{$(_Lx=%uKtxFq%3;^8`7pgkq@?ezgid1WoqR5)_7GSg(A*HKnj zSzJ+4GftXwZSh>nRnJ-f%j>K+9HoWj6(z;vh%sX9Nc=VQ@m5Sj@n>#byZEEr=BUdt}6T;dPi}2ZFNQAT@tsCTGTUGQQXm~ zBc;6DjFfpfx!GA$Go_hR=J~Uy0wE|x|tl17vQRNjG~QfWjjU~MV;w@PlAaEml&%3R4QjgoGX#z4$ZypWusnq~GoCNNji$`9Hn*(tMHLe&;Xw z#`;xVB0cd%`h(RMr|$tCJ;I@g_BZkN3pX%C7n1~^?ugPO(kC!XYUd06iS#L)|Ih+A zf75~B59ic>^7;#X2>yspd~6*>h$Q%fIX}Sj@0>od6Tfr%8#v$2)4%h!?+qe}{73$h zpK9cb_II`~k^V}azH|Qy{f*`P&w2SAZ7+WyC$!r?w{MYuQYSwBn?dvl{y2u=?}Bst z6yrniJ)QU*ZSP;f?`+>9{pCD?XrIupXrJH<`xJbUemqbA?h-e9>&&0fi7)zBgopWuu91z)sJ@cVR1FUFtXi}HJMIZ?jwC!&18 z7v&4SC|~eJ`GPOX7kp8^;EVD_Iih^>Tl5IJfTDcC7v&4SC|~eJ`GPOX7kp8^kQ3z# zx=1JZqI|&@QGl|M%pc zDAVP3-f^+~9W_-8ODZM)v`+l(qxAe~Vkvv*-wCguh?OH^^Kp{ts@U-b2=o?0`n$$R z#uGA0m;{fVTh+>?TPM0Qv#9J{O6! z0JZ_12E6up131le1HOVw z42^(k|AlXH05{>rNgO8o4*(MY{kS0IC5U@X8vyUy7KtQdvV9KF2YAoxkw^vLD%=rl z1pE?kKj59XMEh^Re*q@L$y~NG61ffVJ-|l5TW~Xb3t%ze+kjsI_JcEds2P`+0iOq~ z18m$4eFA;}cpR|L9_Rz`8GIlz8k5dGz+AuxU^QR@KFHYsSbG5Z0{#qm8ZdyPYYQfc z`L}1i*4YKj15XWq|aN?Rvmx0G|aM_zubiYz6EMCx7L;&IKaX<+{=+;kg1Pyorunch7KhPe)6M!!R z{_0cc1@N-Z(0>>=um2PF+h3BNI1YOP1c^PSrP-3H&ThJ@cXvx8f;lurq8L5-u}I`P zlJIu76D=7(KF}}}*pq+P@HGZ zn6s?OYrADxQ$pQ6R(DLLHN|U9_E-}qSsjzC@klVqY8j5C$MNHPJQBfu77TE!eM5}b z8oxF+&FTon(W{3^dYbpXjdnnUu4B|fp6*@g`xvx8krdN?hYpzTJ9I$0pVgD;z1=(+ z>_MguLWd@%Ta)Kl?P*MX%ns=v`5FM(T&kmw`ZbIC)l2=FX-%%QIy@J3?sABoMw)R* zlL%j}w~N^n()^-tGp(CVF(<5BOtQ7fv=Yz*LhPCtyrqM38{i~R@;E+INJL-{zicy# zBO9p3ob);76gCEOt@g>*c-Y~stltyBr@8D5_^kcRCT3gXWs-mvAWil`dfEaxGv*)< z-l-iMV$jyLvCvc~?k>@4u&B)AkR1To!6eIcnxiWbDC_??_zCdIuIM3JJZLV^N*M)y z7H~LdDrl35hT5#9!4rzjusW8r5@DJwZ7$?qfSefTlpp;C+BZSNl*1lo|Df#vZ7ET1 zWj0<(4J7$Tz#H@o<`O2Y)1C*-1sa;eo__dEb9o|YaEYu=eq@k>*Q20c1NuWmpW0qm zjE|TFJ+1MX%~rc-uho(POGF3QQFV-eh*F;Y;M|rW?N~~Sb_S3q>2WydkAgm*=rXIX zpN&bNl+Fi!EBJZDN4l6CtA)~095LvRk;pJk55<%q*(4guk^{8W;9n2^tr(k>E)5C2mnG6{As zWs#r2cxs4+MQw=7B0qsq73vn-EvDzizJiA6Ma~1s6Y!IaadS0dod d23_f?n7jE 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 + #include + #include +-#include + #include + #include + #include +@@ -102,7 +101,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -954,14 +953,13 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); ++j) ++ XGrabKey(dpy, keys[i].keycode, ++ keys[i].mod | modifiers[j], root, True, ++ GrabModeAsync, GrabModeAsync); + } + } + +@@ -988,13 +986,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg)); diff --git a/dwm-keycodes-6.1.diff b/dwm-keycodes-6.1.diff new file mode 100644 index 0000000..952a539 --- /dev/null +++ b/dwm-keycodes-6.1.diff @@ -0,0 +1,133 @@ +diff --git a/config.def.h b/config.def.h +index 7054c06..f59d1eb 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -58,40 +58,40 @@ 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_p, spawn, {.v = dmenucmd } }, +- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, +- { MODKEY, XK_b, togglebar, {0} }, +- { MODKEY, XK_j, focusstack, {.i = +1 } }, +- { MODKEY, XK_k, focusstack, {.i = -1 } }, +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, +- { MODKEY, XK_d, incnmaster, {.i = -1 } }, +- { MODKEY, XK_h, setmfact, {.f = -0.05} }, +- { MODKEY, XK_l, setmfact, {.f = +0.05} }, +- { MODKEY, XK_Return, zoom, {0} }, +- { MODKEY, XK_Tab, view, {0} }, +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, +- { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {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 } }, +- 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} }, ++ /* modifier key function argument */ ++ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p ++ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return ++ { MODKEY, 56, togglebar, {0} }, // b ++ { MODKEY, 44, focusstack, {.i = +1 } }, // j ++ { MODKEY, 45, focusstack, {.i = -1 } }, // k ++ { MODKEY, 31, incnmaster, {.i = +1 } }, // i ++ { MODKEY, 40, incnmaster, {.i = -1 } }, // d ++ { MODKEY, 43, setmfact, {.f = -0.05} }, // h ++ { MODKEY, 46, setmfact, {.f = +0.05} }, // l ++ { MODKEY, 36, zoom, {0} }, // Return ++ { MODKEY, 23, view, {0} }, // Tab ++ { MODKEY|ShiftMask, 54, killclient, {0} }, // c ++ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t ++ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f ++ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m ++ { MODKEY, 65, setlayout, {0} }, // space ++ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space ++ { MODKEY, 19, view, {.ui = ~0 } }, // 0 ++ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 ++ { MODKEY, 59, focusmon, {.i = -1 } }, // comma ++ { MODKEY, 60, focusmon, {.i = +1 } }, // period ++ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma ++ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period ++ TAGKEYS( 10, 0) // 1 ++ TAGKEYS( 11, 1) // 2 ++ TAGKEYS( 12, 2) // 3 ++ TAGKEYS( 13, 3) // 4 ++ TAGKEYS( 14, 4) // 5 ++ TAGKEYS( 15, 5) // 6 ++ TAGKEYS( 16, 6) // 7 ++ TAGKEYS( 17, 7) // 8 ++ TAGKEYS( 18, 8) // 9 ++ { MODKEY|ShiftMask, 24, quit, {0} }, // q + }; + + /* button definitions */ +diff --git a/dwm.c b/dwm.c +index 0362114..60dd817 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -31,7 +31,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -101,7 +100,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -967,14 +966,12 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); j++) ++ XGrabKey(dpy, keys[i].keycode, keys[i].mod | modifiers[j], root, ++ True, GrabModeAsync, GrabModeAsync); + } + } + +@@ -1001,13 +998,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg)); diff --git a/dwm.c b/dwm.c index 253aba7..02b17f3 100644 --- a/dwm.c +++ b/dwm.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -101,7 +100,7 @@ struct Client { typedef struct { unsigned int mod; - KeySym keysym; + KeySym keycode; void (*func)(const Arg *); const Arg arg; } Key; @@ -957,14 +956,13 @@ grabkeys(void) { unsigned int i, j; unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; - KeyCode code; XUngrabKey(dpy, AnyKey, AnyModifier, root); for (i = 0; i < LENGTH(keys); i++) - if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) - for (j = 0; j < LENGTH(modifiers); j++) - XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, - True, GrabModeAsync, GrabModeAsync); + for (j = 0; j < LENGTH(modifiers); ++j) + XGrabKey(dpy, keys[i].keycode, + keys[i].mod | modifiers[j], root, True, + GrabModeAsync, GrabModeAsync); } } @@ -991,13 +989,11 @@ void keypress(XEvent *e) { unsigned int i; - KeySym keysym; XKeyEvent *ev; ev = &e->xkey; - keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); for (i = 0; i < LENGTH(keys); i++) - if (keysym == keys[i].keysym + if (ev->keycode == keys[i].keycode && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func) keys[i].func(&(keys[i].arg)); diff --git a/dwm.o b/dwm.o new file mode 100644 index 0000000000000000000000000000000000000000..4db276fbe60b25c82e34922ab7a6eb4d9a25554f GIT binary patch literal 54472 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

(-fu(j5Sp36%UVJo&N1Z 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 X)F0jEJ6ic2&*>76OF=%``v1QGVsaKo literal 0 HcmV?d00001 diff --git a/util.o b/util.o new file mode 100644 index 0000000000000000000000000000000000000000..e1356931d602cd441820942e57d8d856b02bbe2b GIT binary patch literal 2240 zcmbuAO=uHA6o6-wYGbWQs)EIOSa6Uo*fj~LG5!#3wW|cFwLR!Xx5>sv^ViKpQWdON z51|x#^5j9#g9i@^-V_@2;K7R*ueKn9pdf+=Q6av!J5#62_M#7F-<$9K%}s?B)v|u9WzbBWD_}SG=CYlzPtrwG#TwTnqxF(G&3}rX%5kJ1}tN? z#r8+EAvzM#GW23Z8>7{Tc8|_LPDFc17aaYV-gopf`oz&MXbZG4KTDTU&mD#*Ovh-* zXuda~cGQ?3qU!4*8VZ32baxCRz|;E)V`mN$rWws8cXA`xPSv*?b9>RXsKUeH@wTHr z_Xtmy@GRmfILBcP#>Q;rUltvskQTQ-ll;4yM%p;nU-q8c*m6J+3BVi9{?J zKcM!HS~=A)8FvgMG%SG90Yim>#|o(=K$I3TarO$IZvcj})m22fHcFI6RO##P3@t!# zFYq1Q_W||MaP)TIRCt;DlH9kA`^Li|PW%e;BPqh)_Etz%XO9{j(0`W`6zMhvEW}h$JijZ zQGMq&z84M=uX2w2!6D=jHv|{`B6@AQ#LNlM%y#vpuxzVn>da~|qUTIz5`CgpBf4F| z35Lh@IMK6}QpqYqNV&o+9j@X)jhWdie1551*Q<5~n#rai6$@IE7xK1Qvc%5*PpgoQ zcMf|lOPWu9$`EXfm8B0Rcz$Uaf?ef@t@4D8z|a)8AAdJccELa{_Xc^&yAVPUFWwCd zYyN9~oYzc%mPM>D_A7j1eWBCfKpXG3EXR1j9vOly@`OGqF*$Tf1jx`Q_8c(0m-4rY zDGi?Q-Iw=$rXUtWz4?!L{sgRh_D8t*ig l^yXttZ|?z-7>CZ^HUciZoS2dxu>A5{eE-*1B3;9q{|CE<3abDB literal 0 HcmV?d00001