From 778d1df1ba47621fc7a92a157da9dc1ca8fd69c9 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Sun, 16 Feb 2020 20:10:37 -0600 Subject: [PATCH] - Additional updates that give Firefox and Chrome separate keymap files due to shortcut differences --- keyswap_service.sh | 4 +++- kintox11/binary/kintox11 | Bin 258912 -> 258968 bytes kintox11/src/kintox11.c | 11 ++++++---- setup.py | 30 +++++++++++++++++--------- system-config/.chrome-nw | 7 ++++++ system-config/.chrome-ww | 5 +++++ system-config/{.browsers => .firefox} | 4 ++-- user_config.json | 28 ++++++++++++++++-------- 8 files changed, 63 insertions(+), 26 deletions(-) create mode 100644 system-config/.chrome-nw create mode 100644 system-config/.chrome-ww rename system-config/{.browsers => .firefox} (50%) diff --git a/keyswap_service.sh b/keyswap_service.sh index f8f4316..f0c41b5 100755 --- a/keyswap_service.sh +++ b/keyswap_service.sh @@ -14,7 +14,9 @@ cp ./kintox11/binary/kintox11 ~/.config/kinto/kintox11 cp ./system-config/xactive.sh ~/.config/kinto/xactive.sh cp ./system-config/caret_status.sh ~/.config/kinto/caret_status.sh cp ./system-config/cleanup.sh ~/.config/kinto/cleanup.sh -cp ./system-config/.browsers ~/.config/kinto/.browsers +cp ./system-config/.firefox ~/.config/kinto/.firefox +cp ./system-config/.chrome-ww ~/.config/kinto/.chrome-ww +cp ./system-config/.chrome-nw ~/.config/kinto/.chrome-nw sed -i "s/{username}/`whoami`/g" ~/.config/systemd/user/keyswap.service systemctl --user daemon-reload systemctl --user enable keyswap diff --git a/kintox11/binary/kintox11 b/kintox11/binary/kintox11 index e376c776798e704e85aea09f68dcc7b4bd2e13c1..5d3b6dbe491e4e53ad9a0fc2742fe146d68aac49 100755 GIT binary patch delta 25929 zcmb8Y33wDm6E{9JvzzQayGb_5=03;`Ik>MtK#*_;IRv>uj&KPIDjqC?s3C%cQ5ysm ze0dcR6pR`?kRS^9dVmKCiW)^E2q<`hsQG@?vx~;>|NNiln}^=+uCA)CuI{d`?w$z^ z-|A~l>8s*>WqFEx%FIYvQ$9<7i|teZ^E{80ofK=n+mEJ8b3jr%ZY6<@BUX&9&c3 zr#ZFSQEpAW!f1k{oZgZM^^OVjvXSnL3zVYNt0XCnK9>CNC*K(2ETWRyyPUgK%f$IN zR2rq8UyKrcpmB#ji+UQT_0-Bil2%b3ta%tsj#Ng5@-dZ_Zq~x&P=0=((yk~LWp*eZ zEz31!VJN>Kfy-5;C-VGM*i2b$W>!fv=6U0&p|;Aq$Lc<;n}w`oyD>X9&X^VJayR?~ znqWK%==xY!*7<)xxg)|)z1QSn1z?ErZfqP4u00vMF2a2{EH<))@pKj|sI|Jan(`%LXiE&5n;L)qQmDvF-kOHo4k z7ygysZd}amHvHk`ic-G9ohqZ!aww$9KLeOQuPR?r+V>O}T6=QT>Ee8Ud9`%}%F373 z&$l-<=&6e#gR(Ca13w_~+eI1Gc}bLPY|cx`I|+PcLBa6yrKP{0M6$f<=q;pL+Fv*#Ag ztejK+()=5WCQrO^%KY*wZ+TU@ZGV|pVU*WE1K|!dJ_VVUUTo6u-fuk6Dq(P!)h77N zZ<5_b;9h)L1@0AsAzT6|6QBH5Vx14?-((@Gd!H{~T2Ea5ka4k951ms%lvMRTzVy!H zWDG7$aNb>`D7#pO#$scB;eC{2{8^YwQ3^x`hQ901JsfS6;nr!V#|MK;v<4?uupgpP1QJQ+O~e z8_A{BX0)Q+r_2Pns|sXcMYF;;LWMUO^V-Dp-4@D?Fj31)R7n8_i#sYx)iR3-EawQo znG&d&KuG}Lh}!qs^tPo`l*k$ne=Nn3(TaAiWu`c_MoCvcy=(O8nr1(Iw+WkX%%kbR584z@s81<(x20f3teN#V?>l@*fT>w z)KMzyD4o;wnIb978dDeW6kn{jXRoJH_%pbiSkk@(>fD{{KPm3*(vI@!EmLea3~} zna)>GuqT42OK&6f>cPPm8ZfL@lE&E)~9+scAmu?vS4En;z>7PSWjKTer35KzMKbmFi>YtrlaC4a5D@U2k z`sy2|ZvTKx#smHRRBQMK#1DDoGs%>-1e1Mty?*!85b(?-vjM+BvoNnMmhP6KFGysI z6RN-B7&ngLY|PITn-p&vD+eTEhHM>B5WH>ys$B7c!Zry;2y|1+^*IMv_)nq7W%c^9 zQCKq11j|=E^be%+s*f4vZt$;O#_**VV;AILnj={)wb|+Q1#yk%&=3sxjy#_84wsh} zK#WBRjUO|(Y8k-Buz_BB)tE9cQ`Jrwo%^JyH_9lg^*0h_Iw(&^V-eL;jV}j&Lig0x z4Kh@^#^^s}6Ad)Z51EwF4=7U$^;B39JnWwI7&g4T>X)Gds;5;9s5;g7mNEaD7WAO8 z_L^k6*{HiF7laMhv~;9>$ifBF8sm)Ep?P%9C>wgz!3J|_7mL2^vXL=t4sENg8J4HU zFL|HWOeo{NS5e1nuxiSHsvjEr8y}1)iGJx2_@L~;dR|R?wQx1|sg1ohi{R&W9a%sx z7}H12qpOThM`pvnpi$#c{e)3j(NDbtwH}Z@)r#Axd~#Ex-&iv$nQk#&9Myvs7#By) zQ6t_qreD{R)))_6ca)lH=Zs!TYU10*Ph+M=e0UHu=`Uma*k35u7(OnWE*N)=n@lT= zhHdh2?uI_o{&mZWyDMxOj~NNpOi{!;0}}(@>!;CAM#7XS@YWYk=@~Jj9zr~19Gvn<+V4n~ zued$!0QZ8j^!BpU@~SuW2Vj-40({#z+E_C60obOfX@jYYF=^VhG}L%`T08E;X({xc zp-=Z`kKEJL)E5d&gEkj5^sT<5MSSD1-mL0Vy-U7nJiQy0#q2TqO>avpjo|chI%yo7 zoNgYt)D$fqw9>!d8=rP@%+48sy9BLmqPPu|CskR zsVUDJ4L9YxChbI}D{3)Dqh2s#=kKGX#;5Z~&>u$0f&;NJ&vA3!VE?wTeDdYj(x8gQ zCc|@cdulX#-`vHq?OCX->W8tX|6?q_xs=)&2X9V`8^*v=Ou3+b?*>*L)ZlIW-e|fx zHtCb?Owg-^jfdOaqr7IRt#8%Y#&>Eu)XNJ^iRvn7Sw>^zWUWifYJ*nji;YBr~O08#^B|F+K(5uSFxLO-%&%a z8IRxb5xr#0zw;#RGp<|og7e%{5C{U=8rv8N!QIrm_Gs`!4E)+{cda6tYm_cMLvI*) zcdy0}d-d)|X=v?r%gz#PWuJRX>7cRf-q&bUZLj;@AWTpD@+5fS*~?Su+S;p^r)X;V zI%CnwfDv3Vk=`-BTConE{8uXy46(9`?l;mO=uGLgV;*RS39+WuSfxg)k*jKjNGJNn zcxg=;-DLc}=4eX({VZUw7V+1Yx3OelX;T*1%I|vPC=&Y`w;Siz_R6;brRq(LINO;D z+SlpxoBLILSM^1&svq(`9YEhUc3R2mSa`BgSz(NO!szuP>sJ zM(_27MSa0$S^ce9Rd2qA&TE2k%=rt^4;TTBv+sixOW&{!sA?G7W6Zv(s~SPSez@(; zYOcC*oYAyClRh;vAKj_is*R5y&7((GKh}lPjjoTytG4CFh{q<=3FGC*-k}$3?|rnr~_r(l}g{qf4#=7>{V6V_=s`Srjaz!cxRKLzq{C!0K;wc*wcGz z=lu5|(XU2_r?Tl#?YO6YQoFx$=M`pI<#L@!1D`$o!*kNs*!gxwu(aUuY~RnrrU7jU z&CN%RRa<+|XT}FxyU=*U^YmQ$-UvROLPfQYJ?$kLWIVg=I*b{|_GHz%(8$}~k&VFi z?vCnPAs0`9CC1a+uO2!YS@cAoUwgI4OPgO-!sGVKR1C`JZZkXS*6Yew%x~e6;}$BO zc?&n|qGiFIFj?>2jI{^m_l!Th7?d)Zf$lU)mUq6 zedZJ;8mpgunJSEdJCf)>#*7{LX}5xNxV6qu-;Msey$g-!cl6T>7yMJJX@+~}-O$16 zoh>NVsN1<+wJk8FKG#G~)lRM5=E^~aA%O?pu5v%ZOUAq-sp+2KO-=3C$>{Cz-lJaS zj?h|?E7B&h-T^q%*m)$CjvDU+cjmQ_u^DcgE4VEIzt`}6oC>pE@^Px_8D(7aaRwHP z1pqy3JcQo{;|2TMy2O#XCM0{lD@6&{gpG$ zo|X>@@HEtpy0}M!;R*ba3RB(bkM6YDSolY(&l_hVp#Ab$Y;5^sFiy8F0dGKU;Lm4O zT4n5Q>i&?8es<)AxILeVbFkR-uAopA9X^41)YCA~3_-_;+bxK2oGw#Xs}PNpo@ z$~p5D%@WxbIn8EWfW{!2%MsaPHAHIUL=Wd8;$_Yn;{um!7=2A(5VIYG1w&h#DAPw6 zz9B*M(x^4vByQ1YpuWbfDAud3=gn&K#fKWDC;pa&bFwy(WdJJn6pWCF_V%qv+w8}L zZlP>iE!uPRh!|_30G$@MSf~v-#nXs98zDl(Abke#m)I|fvlbedcn4~Z7-!!M*baLQ zv>Gwq(F&Pe_8c+HN-F~M(F)sgPa#^NyTQO#ZKfBA->s-aUhzgfjw+P2s1AJgQWgaZqbQ4``vOSO`=Bs2dJ)=TiM|dHn-cRM3`z$E z+Zj|CVcQC1y}Nikg5t7X27i&t{d z_gW-ozQgPO$<8Lho(9YB{y9WE5?$&3MP@AaQDTgZIwXIJy4@PZ{0b%50yi**h3rGX z-y2vfb^t~H7Cr2aBuSSWI3<3yQ6B9RX?9A~pJW0zd3n^04CIP_cIxe|Wu8$KIS9a8 z6;GOY+)nLuDN2IL#uj*9oUlU!86w(&nXpE5a!`A6iMb9+4DLWLxi67B9a7{5UgF&E z6v4UT!0Vj5Z00%!-sapNCeN}!F4X4!lWZ1fy*%(9i>;_q?25p>XrG(R+^|3wrc=$_ z$UrGKLNjw?0zV6flM)L)Vw4CII5*INSx1_=`GL>5%%;ZtfQH^0Xe%n5l-FlDqc~Nm ziZy|5T)Rtk-T|pM1j;$*HglT;*Kp2b=5_?ea85UKy8<&sy^|93sSJ!#ZTV=*;XsNw z?LQ8CYh31DET%fOg6dMDEV&ArkGhTC9f0>$^%8L(hjPp4Bb2+ zV96F6+%(DL-Lo0*tD5od^*8TU9?83}2SZ@CxB)rck`1Q)RJ{+FRs^mSYdti$kCb;< zGoHhn@f>l5Crfy(nad6EjPTAOW|(yZR8 z&FYNTWm~#1t_)C@db?t@TI*8EK;ru%4+iLiqG+&5u=8(%^k^{qT9ii9;Fglv zD_6>R=)L-P^~miGHw{B*S2UHG6mK-6cr#3~E*=#7!xUDxXb~gD?;AsjDXTGC-2XFW zD+^?@L44a}(@RO1FP6kmYm@o=&6s}>X5NW~`|uyk8)B%elWf4J%_u%=MsfUa3ebOU z=5hnCicx;*VUmB-jQnIX@^71wp9+&_iVs0<%KLpY@*l$FQW@v}CKqL~VR?URMsYDr zAzOIqZwko!d$_`N;-y#&-c0djY`9)c`{&5AXdxRRxmdN3jX)<1h?AW#FAm+lTCCtG zQ*4O~v+*@!6V;4O^gr0d#-sk_qHBD3MkF>PObQc98Aq z0tg%vkOFrKNP&k3s3V5!$^f-CyQ@tzHf_UfWV_q_%?8?QZ{~6X8RAkP+}owi$h(Ef zr4-$pk(d2Vep3SV7$L`6pJwFcVRG5(zG3ov;efdNX_2kuA{k&C(_f41Ef+~?V+Lq) z>FcN@j1-PUYF#dQU(<~D&}O`cg?Vq`c`&>g?-3#1O2XsfZg4ZF{Fp1;#G8q*n_I*W ziLephvlX6X(wD*R29m-?rSflr$|OqcENhw-uBjWZD6`F6aX@mJW9B*rWD9RFr6^Mp zHi*}f!lPut6{alr&CS|$OSnxtMPf1~s<1H~lj(l5o9}K$xU3oBJz+u{J7)KWMf_R( znGExLn@C8Z*5<-wG~@DMGcFH>xk&HeVY5qe107(l-D}KT%fLlpq`<&_Dh{MThhK;b zDKyr!+FP2j-ugFdF)NkI%s$wq#e}TCcqNs_n!vq(19Q^oYFa4fq*2?%+j*EA)?69r zp!89kd0*3Q@Mh8{i`{7yNc@XoA89c&5U1~Db9zM6Z-yaFFAx`iKyL|WI-(UKE1lW| zpW}}HLi3g3Ml?N*J%=x~D2JbExrGgycO_>uM*B*OwZ$T{n5+0&3p8-1KilXNTGVye zZKYq$Zq+wh;3LkQW15qiZww56`WY_yR*Um`@B($^5Oy`eFsZ? zTJx>p%swvpPK%v|6)U|;s2SJ?I7D6s^`gyUP6lRvfmohFom*`LVoVQ^>Q>Fgy0mQq zXPdXJZAcn?=%Mibz3uH>pxC3ug$y)2imaU9(VBsZ(h61ZL+b}-DN5GVxeCRQoi`(v zn!{Uz*;7yh`N_tmmYN;U2D76ueJPgWY-tQR2%Mu#4+CsM>H&EVngXQIgxt41n0*zd zH^q@9Xo6M&^gQMaK(Qud4Ip;31dtpPvH_4~5QO5%VnQ|pvK50GkQ5WL3y?8Z2?B=Ere)wbgxjTL zRVtK5a?@$437$v$=PM&xhgyvNKpfU}=@zcSG>^r%$T9ba0 z1g&CFnH8Wmq~9k&8yIvix3(?mk4n%E26bZfx1-4CB&a^fuxYHy4itGn!VWVikI_1k z?YIOrFz7a}vJ>eSB(WWhR<9+52t+Xk#bc7VE&o+v@97_^yr4GOFCJ~ZfeR@GpJ z1i8(30~F146G$(XbeoyZ%3@8V$O;Ln2Po@$g&rjr?=LXaw*|9qQRp#p@Fvqzb98Gk z=X;>i<0Ov=vOBZ-H5alKo^prZi2!sFrTFr*QX?_rN< zTNrX4kUx1~Z4W~(0x}Ji&@*AkVhpukcsRZkZuTm)Q83Q_Fk~?xJAz!=lhrl zjaDORypfb1zzT)#8`}1ABWg?|eTKcdZ#IIp}Va_aCH}0cfdN!@S?@ zZz3>=pX^E8&Gx!8IT)A05!`pbdw9UN4VgAv^U8t|8DN{u;1iT=}8MAEF zn=AQ1^2!V`X}H4c8}JHp^FBypX50jm+Xwlw@|qn%X7^!;-GmbM=IEnPw!DOoPUuJ| zTT!B6-J_44%vG%!Su&T0@F(6rs1CYf-5d?+rWabu6}0-@tqfOakIXz+Y|8b(74h2V znoZpkYHB$PQ-4L6w|PG7jVzP=$0)5|VuFsz83MXJf$syJlb#jww-h2E03@oHl$`jRv z)GE7klA^d=82Y{8+$k7K;pZwSMzvYk)6#~EFA6DxP70j=r3CrdI^z8}yu|_pd2Fqk zC)BFfA`eE*gKE`0s8-Fh?1+twZXQ~zsywu|72%2`GB0L4N^G0pk45IkGL~&O=4oWh zz)Vi_!FJ>tGtCFvk!!mpa)I4u{f)~@z{8dh{R*e|fX-W?YJ6yzmuM_Ej%IpDrVM8no?I9A|7eEp;c_ zT*$g^2eCUj>V2dY*H5U(o#KjxdM&O_xXpE^W>f&%=ISkOE2b8na(LSAHVI<@D|Z!$ zZN-!vd=ld_*D~D3+?_KO%P0?D_b9Fh!Pzn{LW-gR&!(s7J)BB{U&u9@EEM z!e~(}G3GISjCo8SV;qO(ew)x0g=dhy z9mGpqm&D9Ap(_f{I6Et2hl{T$JmVcVBD2etBR*^sx}xwd_iTqK8edU(tIhNxv9K*A z=8S-Xe2EEPbMc)}kT1o>9iR)Pcwz;Bvd#WsL4+M9nJ{!HBvIO(g-NKazq?A;M?9OsKFo;vWL&fgw*k0(N zl)reo<;3^nbb>h9p7K50n5#owm(Hpl zhTFBHp|`Iy9}%~ApaB>%2Rp#C+ao4+qz(nrU8u2+;wke4!eaQ^a+mT-qhdI$_&6O$_fu zrzxkdduRH9XqAZSie17w(XT5G7kY^KUE#~N7hOuJ<#k7)3QDnBc@)tpG^|4o6a`2D zOWC2Nnd!|LrR~S81kEak9FB9s$eOkEZ)A%#fioRvioKr>Py2#hu+k`ATI+o zOtF-3cWlJadK4k+B8(PIHGwAqIEGNrRJXl1rK$9kc&`t&*UK@zslsC8aj0Zwis*8x zr}^Tea#Z-Pi0n%Zbc<;0OZ}+4u1!B0N;IMF-u|?hpjF#I$dM@?97z4KiZ={|IxmV} z22!0GktCiOM8&=sG?c#8y6{Y*iAv_P;)g-hAvT4nN}2pOG3*TLAyC5q#N zVJ%wc$r3eb6#I5O&x&rP={#RM7GN!-LQSqG z9lu1kP?4EIEBc_yDUc|h4RKJ(EEdtjDI=~g>NYHi`Ek?;cpF4_TVrAQ>t8x-Yc^PEFxyrDR?fhsI!DuNFyT=?%OK@zq$I#MC}K4lSQ1 zI*y}NbWXfA4(Az3LK{yLhgZW|(=qaG2JwmZigE~{z{xB>qgXZ{^&J%DWrTtVHmAo) zE?d5i7_JBfUt;jm=j7#Hssvy(Ld$7&FOA0;Aq@9l6DSpz(kTt+ zN(kBl{f>N zCPr7{TCzTmAO;9$*iR~A869AcjIRGtTngS$h-j8zz<94ezw6$gKBcV!e1 zIYgIH{f;Ns7Y3;-x_4NLW}7me&K7&!aIMET6h7^C2Dw=R&GXh*J~}&O)lZ3>gp#73UP1 zbr21H4S{7v#3AM@&&;0@bBO6np2{H@dPBr#izz=i3Zij{h9CJo1mF32kJxGEQUP z+Yg+YZ)n4BZ%qV-l{d7O{8+}e@`l#ZGO$ci%6Gb~ysx#aks#|J@!nn3Dw?<2cHSn~ zuuYIWh6&FSOt;XxSqxH~p?9;MM%v~)CVDKvj%T%)&e0>{fhBU|vt^0g_HL7Fv!bWA4iJB^YYfmkt*S#LjlL5>3H?inPd~db$XF;rUp2zIIl^?Pew-a zbI471Zq7t5)3Xbixy~EYkZB<^w>qy9d+w&pLEm6p*=$|7;kN1c^}GY2-UGTm06CXp zodj>enVVpgt|Prk=(O3 zCp#{lJefgbcoU{4>aT++?p^%EZ(lO()S{BREzvYoxzD2elX(;A%Z^nbbTV%ueL3+FoKAqH@RdZ~#Z7mA zBTDYWsNfx?uTu<8v{W}XbG%P zZ7m}PK#l$c@KgNxpdp>9XZ-HOGzX+nn z`bQug=Pw6NyyEx-ywjq~ZR;SUlV4?s?w82wQJjB?^;Hx|jzYtt2gI$jg1_?{Mi?lk z0B9rA#0OQ>qTO<|BzmkI{az=(c^Ex5Y9d&~IG3;pV*{LtcfNw!qsO-3Op>#!C|FK` z-1ks@^ki=tV7bn|oVnh%6PcFI`Djq|l;mER<;Bj6V%BoXjY~;``np74$JSO0ybU}& z=?&uP<&@s48rq}M=+&~&8!Aj2gG#Ae2&#lho)wos(zzY#pt9%&N%HIeLj2k=qaIPy zk=4>NpeE`Ws`5e@{AucfJwqVFSgdjy>oZ*HKo z@Ijy32zT{)(YO(prb(jX6TpcTk3T{29v+djq8IB$>6Iqle1aBw?!iE&#jzcni1KHM z0soBBxP08awYhkaV4{T8IVzz!kJ=3N=EL%h0)9%>hML}Plp2fdCl%E7&+K_}n#TXVGVsCW~T8X*OA+Fk0aV^Xs zho~qmeNfo*^mL*jVP`WzskjAVafo^tIAO0X?ki7)6P^`^s2VkWkOSN~#Lw_ml)+sn z3*slL5G4O_L@O@CjB|+E4U(`I9`~eYP#W~WA*w#TBJB0X!RxJf0@xg)CaS(c(lx}; z(FSK$oP*`(5cMSaD#D(10G{F~Ya^K;J07s7dz;989 zi^8Xf?^cF9g}blN-O9}tzr#btAwskCWA-# z`b4J9>yt!I+ikY*F()GT%3S#3vAR6_;HK$tIM`ZzxukZbbE*M5W+Js`XgYdL!ntumFFC))nw%=d)=Pp z5~8x#?Ws1?i-hax(A|Qbn2-TFl^tw7#l>BrvV*OsN;n2cz8Lg0wFq_xFJB7}%dGPE zL%!A~GJn|M>tLq&!vc{TN;P zF}n0)bm_W33!t`zI+tEKE--bKT>k9ccoQZKQf#~pUI1}#*`8J$Ma&?8djGic`T$*zV z?$x6wB|d@C(83jRcUYmhu8_Oa3z?R#kh`-3;upKvFNmJX404o?7aeznw0os;=}Ef6?YNSg?@=?M2TH%2>k(^z^y`mhB9J#qkz9ARM;A=O<0c> zAS6x}eV(DN^rg7_87!X{#mmp&RLddSJu7oFpQRBIythpmEDk)2C32rQ{VWcNn?#!( zRPLAVOKmT1bmRui4urIQV$}}H$y>{kyeJJy*NyNs5OSgzR;P30*CW4%Veg2B9kg3j za>e62aU6S5oZ3mF^Sd+VgH~ot>oBSF_enq=8<_&`LVBl{A$iCLg`-iUfQ zMEx1)8eU8NSWCO^f-oGsbI9BI2_!hg#zc2!DYFqQiLS13h&gyClB@G-h*q70!y_%= z?HpbL?S<5N27GW1(T`_z4*L!EPSklAU>u@mYq1@Rm3(iOIX=O0#pfTxs6kO>5+*bdk$FAE~gdyp}{(o9RX3j@KwLz=t)q z!~~rEDmt$vwiFl3t`8SGUW1pMFW!8OQfGEWGqnd2SZpoyBFA2U?D5gl0kX^iwQ6TT zAm(-k1Q`%|&0-A$Rxu#-t_3UDF5hxchubcqAZDhbj`HwJV~XQJF?bKf_2!ov)Tz;2 z8t>qj8q^swlZIo2?aYgh5uCy;_52Vcm+O3`>gVsuqL@rke-=;g!PzGQjNe zwp^WOdkt6)-jb*bBAA8Z;M;O_q0Cqud|R$Ak`>w{uKr`|xBwVz(3D3N&pR#|Sm>}oDI^U>E7Wi3M1mtyn*+!l=#PhCOL z)I3Is+k+{E0F*BeP&eF3r5uC{8WcSaQcMB27`M?$+~hxi^)q8~%jr9c<)%-r$F&PW z)^xG>AXVWS$?+CVgZaPlEy(#FvH2}r;_j{c=q+*(%@JSzkJ`0tiGf3P4xTtykFfD`!}uwC9FR#_iTz5* zY42TNT9mS_5CG3S9&UI>jYqGuMX@xqC?1vFR%>qJ0N_}TKl~oW2c^>*p*#VIjh$9A zso2k{7NO^~;x`TAN+sa*i6uZ8TDo+3kblFy+|D)LTbu5>VC^lD) zYBRk^oH>k-N!eUE6B7o3Ad1bEGsVTCN3rYcOqKBPC(-bL(Q#l4TnE21ALEgyt*&g_ ze&qao+Um-YjZk#n(YSJ@8f-dG8CRanxRh94fasx!RohXISoS{JgU_Phhv6;~f4xsr zC|Gy>2eg22h4tx&xDU+|nIGW_tCQ&e5&cLFqT3O;9YJx=5jx(z0t1J-N{Q*54Xy@W z3GCV`0420cl0|K~F|Fp~K*`3PQ1}+cCUuXHy_1w6HhxSCf)+MGT}bx*T02PPselP+ z`6~!e$OJ9rsX!OvS)vq&&JrZmp(|9W^fY6J&JwDj7LzJ9M0FPIv=1aZ%?fR{oL&IC z3y705>~A3b2l}mLKe6o-N><^Dy!{E~1ZB~{P*EPx2I8+wqNoZdRlY4FGHRPrFHm>Awnq$PiK4<>nRD}Zn-<)dQ15U&9o@@ zfh;s{cega>Z9R7-o=6O1e#T9P(uTu|MTp10#`g9k%u7U}+%kn1b#n$q^5l+uKW-j~ zETOOR%`LdaToobA}!;BhZ7`HBEv=8{1^e%-dC z^IfK?@Ma=Y=KO|BM*Ckz8_JzOab^rM@M1?gZ)Uu)vS_+0J?_c2LX)FWmv4hf@dRq}ZS?UlP_2yf zq=_?@ah@@8_**L9vl7S0e-gtNPqH9-O`ZA$9Z@~IfIy#07-g&!CmSfs^DGc)le;@w zr(}FD;=iKgH0}=dO}qyLn06M%FpD=h4Cw=nWW6nhe}&yKZHg7_-Jd@K)%3({F9nW&2xH3DK-Cnb)B zXgO@OtdqK41F~Et?=nh){G+ZQSAKY-qb0iXSA!S!Hi{+S&0h-y4%U&byzmA{#|9`r z{MJB3mODSZV~UE2&U+BZ9HJ{#cRqgx$-&oOF9=&b#R7Y3QBJ`jwY4yBqbt!Fd>eiE z8E&tlEQW;q44(?=hKqGyV~crGy!16C4wZi?H># z@k*qP8AaM&#IGkx)SSdI$VKtlNoe;oLEqB#G)heU7WW42g!mR^8^l-N(uZnfym;}H zyiGWD3XbphBDN716C3O9Yy=@LFaC3yT6?4$F+kR;#2ykSPQz2ipZxd^n3dw*?{Jv$ zrP%Tv-4OOISQ70R4ta7yz6AqvLcT>Ar~m0&WbZ_y)NGPeI{M3`G66Z#x5%bvuTW*1 zzC|v7Wva!PRQ&x)&XHC{42hMfFM+2PlPA;f%5+EkDmiz`bh%7FCib79%xQNsC@zLU z8RN&#RkV1W$ujF19*8VMTFGM>pF)UK@|PpxVC|;4^TJ*Q;9+mW3U4Dn?59}ar{qf~ zqpspCeUuv69ackA)`@w3H6X@~Q*W=^<5G2^yt+ef)lalrob;$2oZeTgkteO5=~mY* zb-B8_-WvOuH39F5P(Q14wKeXfHR@HX_c3c)-SHUpn+zNq?d_l*>T8pKYZ!m#r|yBf z)QJ=AX)tsAum;Uk9c~eDs63H&eSA(O;Qb9Q{!j+d_N$#w(4? z7bVYW(fI4wbtJS3+ZF1zVYrz0xK{T60bY4pwfWA>H#;QU16Qc(XoL2eSG=)9doXa& zX(IjeSAz>OK+M|-iOzH6*Br`Xu@QOI8z)}gsa=g3P0yit2SZnJeC})8YafLOKpt(hY8niYtu$jqZ7ohT?AAKcfx5tJ8crWF>(cjdEJR*CP@WMR4*+Fxy|x2y5|``+vvFeK zUhM~JTUYtIc1l&X)^*pssU0Wr;(jeEz^^Dqas4w*iR9veWP|7dJ|(|}izk@Hear}N z{g`AEt}y|HA$XCjp1R2>Ff@d9zS1m);gruD6Kkm%2|)*;!0l$PUX&mgct1qiu*D?l z8zTKmV)gw#R9vy%gkv$5j|y*-o1=_3^Pxxygy7y8CVaLTDMey0*Va2!Ja@AR$3ick z(c%IZ-w@_H+63crR6h4fYP@m7Oz0((*SkRWVkxN)eTfjlRgRfhKblw`IEgIizc)2m z;;Xm7tCNfZgF;yHI01|rLd>ogzW+h4TSCPXq(g;6)==>(lL^)u=JmXo$H?!5kc*!- zv5XM%aj_A_6MqU7&wb8>F9;P!ps_6IjtM3pJp@k)!Ie?6 z7{WM1;*pHk$Yu1fSopS96xbOe{kOmLy2J{69IkP#Srt}m`J59Mz$;+G!sJsD6>muI zwoq}LNPkC*>syFoZbwC^eK_iqPqz^K-yic048i~XE#G)?7uW^n$=d$z<#27w#7-2` z!)ElHi~{>Zyy_n_>nt-P<*4wz3*_%4R!MrCDdE3A#B2&tFAj~}lOgIvF%Q&%Vz|HD zunE&mIJ-Ff^f!wqg^JTcTKmu}Rc;aQGxY-~_Cjm_9<2`xdJn~$Levd>XMtzA87Z%b z5)_xbA1W@MZ^FZ7;6w=i?@wrdHf4&0Bgi7poo13{hPbAP3*ZX7wU_Je8p4_on#7$# zSR*7>pfXf^Rj~;l5-Pq~q#uIqeAL9+6~a>ZtRGKEhsr^-s^eyKQtUj08ZU*A($>pJs3OyrkI~_yh+>zu>E`pd|teCM(bc-4BN-g zVsQ!CD}O*S{D%}biymjSAYR$Q-ybg$#pg8d!{@YO-;Ne0RXCn2dYnU*;pH+MAE~?R zoEB8+);csu$2$J16;EWLC~2X^8gnn(MB0y9 tJhmI1egyTmVj&{?t{vu1ph4{Y5%RA&Y-Se<`UzQIqnW)&&;>2^{{VB2#Y6xA delta 25887 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 0){ while(XNextEventTimeout(d, &e, .5, event_ts, last_event, &event_ts, &last_event)){ - if(check_caret(run_onInput) && ran_onInput == 0){ + if(check_caret() && ran_onInput == 0){ // printf("run_onInput: %s\n",run_onInput); system(run_onInput); ran_onInput = 1; } - else if(!check_caret(run_onInput) && ran_onInput == 1){ - // printf("run_normal: %s\n",run_normal); + else if(!check_caret() && ran_onInput == 1){ + // printf("run_offInput: %s\n",run_offInput); system(run_offInput); ran_onInput = 0; } diff --git a/setup.py b/setup.py index edfb6ff..c6639f4 100755 --- a/setup.py +++ b/setup.py @@ -25,17 +25,20 @@ def requirements(): check_xbind = symbols_gui_line = cmdline("which xbindkeys").strip() check_xte = symbols_gui_line = cmdline("which xte").strip() +check_xdotool = symbols_gui_line = cmdline("which xdotool").strip() -if len(check_xbind) > 0 and len(check_xte) > 0: - print("Xbindkeys and xte requirement is installed.") -elif len(check_xbind) == 0 and len(check_xbind) == 0: - run_pkg = "xbindkeys xautomation" - requirements() -elif len(check_xbind) == 0: +runpkg = 0 + +if len(check_xbind) > 0 and len(check_xte) > 0 and len(check_xdotool) > 0: + print("Xbindkeys, xdotool and xte requirement is installed.") +if len(check_xbind) == 0: run_pkg = "xbindkeys" - requirements() -elif len(check_xte) == 0: - run_pkg = "xautomation" +if len(check_xte) == 0: + run_pkg += " xautomation" +if len(check_xdotool) == 0: + run_pkg += " xdotool" + +if runpkg != 0: requirements() try: @@ -119,6 +122,7 @@ if os.path.isdir(homedir + "/.xkb/keymap") == False: time.sleep(0.5) os.system('setxkbmap -option') os.system('setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui') +os.system('setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui.nw') os.system('setxkbmap -print > ~/.xkb/keymap/kbd.mac.term') time.sleep(0.5) @@ -130,6 +134,9 @@ cmdline('sed -i '' -e "' + symbols_gui_line + 's/\\"/' + keyboardconfigs[default cmdline('sed -i '' -e "' + types_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui') cmdline('sed -i '' -e "' + symbols_term_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_term'] + '\\"/2" ~/.xkb/keymap/kbd.mac.term') +cmdline('sed -i '' -e "' + symbols_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'].replace("+mac_gui(mac_levelssym)","") + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') +cmdline('sed -i '' -e "' + types_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') + user_file = homedir + '/.config/kinto/user_config.json' with open(user_file, 'r') as f: @@ -175,12 +182,15 @@ if len(defaultde) != 0: user_config['config'][0]['de'] = tweaks_selected # term user_config['config'][1]['de'] = tweaks_selected - # browsers + # firefox user_config['config'][2]['de'] = tweaks_selected + # chrome + user_config['config'][3]['de'] = tweaks_selected user_config['config'][0]['run'] = keyboardconfigs[defaultkb-1]['gui'] user_config['config'][1]['run'] = keyboardconfigs[defaultkb-1]['term'] user_config['config'][2]['run'] = keyboardconfigs[defaultkb-1]['gui'] +user_config['config'][3]['run'] = keyboardconfigs[defaultkb-1]['gui'].replace("kbd.mac.gui","kbd.mac.gui.nw") os.remove(user_file) with open(user_file, 'w') as f: diff --git a/system-config/.chrome-nw b/system-config/.chrome-nw new file mode 100644 index 0000000..7fd0b99 --- /dev/null +++ b/system-config/.chrome-nw @@ -0,0 +1,7 @@ +"xdotool key --delay 0 --clearmodifiers Alt+Left" + Control + Left + Release + #Home + release + +"xdotool key --delay 0 --clearmodifiers Alt+Right" + Control + Right + Release + #End + release diff --git a/system-config/.chrome-ww b/system-config/.chrome-ww new file mode 100644 index 0000000..9717ad1 --- /dev/null +++ b/system-config/.chrome-ww @@ -0,0 +1,5 @@ +"xdotool key --delay 0 --clearmodifiers Home" + Control + Left + Release + +"xdotool key --delay 0 --clearmodifiers End" + Control + Right + Release diff --git a/system-config/.browsers b/system-config/.firefox similarity index 50% rename from system-config/.browsers rename to system-config/.firefox index 7128056..b9aacf8 100644 --- a/system-config/.browsers +++ b/system-config/.firefox @@ -1,5 +1,5 @@ "xte 'keydown Control_L' 'key bracketleft' 'keyup Control_L'" Home + release -"xte 'keydown Control_L' 'key bracketright' 'keyup Control_L'" - End + release +"xte 'keydown Control_R' 'key bracketright' 'keyup Control_R'" + End + release \ No newline at end of file diff --git a/user_config.json b/user_config.json index a6f0e46..31e42cb 100644 --- a/user_config.json +++ b/user_config.json @@ -19,15 +19,25 @@ "appnames":[ "Gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm" ] }, { - "name": "browsers", - "run": "", - "run_onInput": "killall xbindkeys > /dev/null 2>&1", - "run_offInput": "xbindkeys -f $HOME/.config/kinto/.browsers", - "symbols":"", - "types":"", - "de": [], - "appnames":[ "Chromium","Firefox" ] - }], + "name": "firefox", + "run": "", + "run_onInput": "killall xbindkeys > /dev/null 2>&1", + "run_offInput": "killall xbindkeys > /dev/null 2>&1;xbindkeys -f $HOME/.config/kinto/.firefox", + "symbols": "", + "types": "", + "de": [], + "appnames": [ "Firefox" ] + }, + { + "name": "chrome", + "run": "", + "run_onInput": "killall xbindkeys > /dev/null 2>&1;xbindkeys -f $HOME/.config/kinto/.chrome-ww", + "run_offInput": "killall xbindkeys > /dev/null 2>&1;xbindkeys -f $HOME/.config/kinto/.chrome-nw", + "symbols": "", + "types": "", + "de": [], + "appnames": [ "Chromium" ] + }], "init": [], "detypes":["gnome2","gnome3","kde4","kde5","xfce","i3wm"], "de":[{