From d04cc8a540f834f2360c4a62ce4391378bca5e4c Mon Sep 17 00:00:00 2001 From: Jacob Rus Date: Tue, 29 Mar 2011 17:53:09 -0400 Subject: [PATCH] put in everything else --- Images/full-kb-opt-shift.png | Bin 0 -> 37586 bytes Images/full-kb-opt.png | Bin 0 -> 38143 bytes Images/full-kb-shift.png | Bin 0 -> 39013 bytes Images/full-kb.png | Bin 0 -> 37286 bytes Images/incremental-search.png | Bin 0 -> 23056 bytes Images/keyboard-pref-pane.png | Bin 0 -> 55874 bytes Images/laptop-kb-fn-numpad.png | Bin 0 -> 30396 bytes Images/laptop-kb-fn.png | Bin 0 -> 26979 bytes Images/laptop-kb-opt-shift.png | Bin 0 -> 26733 bytes Images/laptop-kb-opt.png | Bin 0 -> 27324 bytes Images/laptop-kb-shift.png | Bin 0 -> 28198 bytes Images/laptop-kb.png | Bin 0 -> 26392 bytes KeyBindings/BBEdit Bindings.dict | 69 ++ KeyBindings/Emacs Esc Bindings.dict | 71 +++ KeyBindings/Emacs Opt Bindings.dict | 68 ++ KeyBindings/Greek Bindings.dict | 69 ++ KeyBindings/Leet Binding.dict | 64 ++ KeyBindings/Leet Bindings.dict | 64 ++ KeyBindings/Windows Bindings.dict | 100 +++ cocoa-text.html | 935 ++++++++++++++++++++++++++++ cocoa-text.text | 901 +++++++++++++++++++++++++++ selectors.html | 558 +++++++++++++++++ selectors.text | 474 ++++++++++++++ system-bindings.html | 231 +++++++ 24 files changed, 3604 insertions(+) create mode 100644 Images/full-kb-opt-shift.png create mode 100644 Images/full-kb-opt.png create mode 100644 Images/full-kb-shift.png create mode 100644 Images/full-kb.png create mode 100644 Images/incremental-search.png create mode 100644 Images/keyboard-pref-pane.png create mode 100644 Images/laptop-kb-fn-numpad.png create mode 100644 Images/laptop-kb-fn.png create mode 100644 Images/laptop-kb-opt-shift.png create mode 100644 Images/laptop-kb-opt.png create mode 100644 Images/laptop-kb-shift.png create mode 100644 Images/laptop-kb.png create mode 100644 KeyBindings/BBEdit Bindings.dict create mode 100644 KeyBindings/Emacs Esc Bindings.dict create mode 100644 KeyBindings/Emacs Opt Bindings.dict create mode 100644 KeyBindings/Greek Bindings.dict create mode 100644 KeyBindings/Leet Binding.dict create mode 100644 KeyBindings/Leet Bindings.dict create mode 100644 KeyBindings/Windows Bindings.dict create mode 100644 cocoa-text.html create mode 100644 cocoa-text.text create mode 100644 selectors.html create mode 100644 selectors.text create mode 100644 system-bindings.html diff --git a/Images/full-kb-opt-shift.png b/Images/full-kb-opt-shift.png new file mode 100644 index 0000000000000000000000000000000000000000..3331801e72f97c30ae04bb6c15621f5568fb8113 GIT binary patch literal 37586 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 literal 0 HcmV?d00001 diff --git a/Images/full-kb-opt.png b/Images/full-kb-opt.png new file mode 100644 index 0000000000000000000000000000000000000000..501af18abe88f97328a00ce6ee61ac3a4056453b GIT binary patch literal 38143 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 CW(2VS literal 0 HcmV?d00001 diff --git a/Images/full-kb-shift.png b/Images/full-kb-shift.png new file mode 100644 index 0000000000000000000000000000000000000000..da0d4f56cbea152a664ce0cdf8256585330a1549 GIT binary patch literal 39013 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 literal 0 HcmV?d00001 diff --git a/Images/full-kb.png b/Images/full-kb.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab18eda56c9e00627a98ed049a25b26a76baa10 GIT binary patch literal 37286 zcmYhi1yq~O^9GtyT#Hk@6o=w&fl?ewahKvAC=xW3wm602PJmLRK(SJsl;ZC0?yiB5 z+@+R+_-80#p-JO}|nMw4!w<<*VwD~&q#dq(VKt3RECy*zznxZ1J=Le93vzt8t;J;9r z0@kN6qKFKwBfzNji2EeE$EY)o`zeMNW9TCdFO9rBmYdu2wA9)|0cLeghe=i)7B!Kq zE{f0L8Tmc&x|na=YTiey8)WIe$@*9dxAo&vc#Z6nbsTBBZ3_Ue+~$gt2)s>o5qXaR zSSRJ(6n0GO0y4j|@gZlq>U<{gPnSDksxdH#U%qNQm;e*7HQ(o?oH>^=34Hj|x99mm zXTow+tLE7~nnjU(NnqazIA^-4fo%d0N9xj4$E0LT6T-?T?>~jg=YLtv z8o>0VeVQTW8$VwBH~#BKd%xYeFM1yh0N-e)B@G)GF#$Gv(z&*|FA{7DeYq6O4_bDf z0{}ZK2cjY`^~x35JSGHE;}UCs7it_@?wUwNU;)JI9bSFcji^rIA|?jSYu49gvm}nk z=_;uFOd%yR_!2DSFW&r&4Dh5N>^*Q3$#VX;W2aNuRJA9rK1-s%$8X^GzAyuQt}3-r z!~BW&P5|%O)y2)Z#qT+w^?vO(&*!2KSe1l2;Su5GqUD)=rF)`+uC}XYC?rnKO=kiS z?xVQm2n8)spt^Uy@Wbu{2WLQk+!v9@;MLQ+^wA9peBYk~Cx!}7!9RmYjUo9>7k5QE_0%!ol8oc)0w)7& zm-Qc>TVM|5o}T|INpDD~THRnnKG8^jWkt%G+P`mY-}iH@`YehV=g=kqhp9~+<5ZsG z{p^WsP_jSX0}1_kI_b$Kr(e!JG!u$6+<3Qf4Z~5S{ zGIuNH`qQA`{W_`3unT+A z*O+*dmbal2fl>R;%3v9P(dJ99t-YE}4qe^1dFtqK_DL)kC_C=_r|PQR<+b{ywsfe~ zJ7axw-47@QXJ?ZDCHw786$685QPKK@!-Kr3|8y!U3UqgNc6SY$AwC0RGLs}K0|Wrf z`oi2l_##=7ruROC<=FoNL;;WvnEBRws-ghfWnE0+E0;&p%ou|+Z)Sihg>D+Q0M$n} zfC@knaP`z0Umi;y@T?t>pAw<*gy!9LM@JmD`4e1qU#O@bzFjxP>^TSBejv@k?da{g zmEVR$r7-%{>#XK!nzZ?w0`M3(aVQ$};qtel-OL#P|LgbCb1K6WtDAMc$Dl9560e%( zEthn>bJB*~yr*VaC0>O~CB$cK{+{xW^$XDoo79cPcH1j$G6G70^JjW9QT!DU%455K zRN_L*{ZKcc^ru=)?H^QmZimUDFS!5Ex!&&;{i?7Faxf7$9E`j3sF3UFM}Z^S(&tgT2qJWU6h>Z`>`LZ1r%9*GUSsG&xiTTDjBz-YyZ)Vv2rd zwpG>D0ssQgZ6EglfYl-Z;8P_45HtV)j5q)Qvh)CeC|Jkktt|i$`%mqSg1-O4Q7+hD z-~Of-2v(O$!Y@$8zI`^C*DRSyeKN2PyAXQaWMi?({dN|*$|Np*6@lVjPs$I;}f|i?8wdLSn ztRV34!a|nXx;n}IqU6T4PXshlK2Cqz!sOxp-;Ju=7yq1}_c8@-Zzjl1t!Vzg(pC1q zUloiIpig^D1I|j|;VZejwWkpzOe19_dFp|IQuX!q!KlaE;LBn0I9kydugxB~!P&6* zs?WLPc8XqKU!POw?nW&C&Ov$AjcdL%R8Lzr_4jX)gM)*Gv**%&71|$Luaz;dB-ByV z#p&Ghh@DYF`XJKftI&_ZDw0fX*RjQ|z^9OD7)a&7mn_q(V|;O_KBEHLhMau=8R*J? zWuT*t$Zpps{vMQq zr4#okavaUe@#=YQY38pjx7_U8X)W-3{qm&cbfV5tJA#OACv~)86+%Y^mH$XkTtfB( zsJvGR^EBB}9O9YpDpO;o3jHU^VLAL2N-ea#wY9dj$lbVpLU*?{fL*(Z1Uy!zW?fVS z%_Iig9|r3-M(ZV$OrpT>OvLh^lq3S!_Xo*$bKg{Yzkh*UuVruLJqoTG0K0j1eM+3| zUj%Tk%vjOnHhoc1pYi&TB;EE^J56ijAOMR`E>@2Jea!v4!|Um-u;A*7Z>@UC-;qo| zP#R;0GG_0u7g_^^LmqC}I5;BH(x}umG`M(qi;9XcW4m9UuC(nhHt;irTqUx%-G^N6 z3|}42j&_$cHfH?$_Zr=G@oc^|ppLyQFyv}n1>Kgg(iSv1G4WbW4KF-AJS8=?=`P3f zAD-Jvt4Z=o+wM9fpbn^x;wZqu#1!~AaUrdz-I{eoxhn9VGPV!D=5(9T5QTn2df}n( za2ZE?b3Ns5FWC5lgUZ2k_Ub_4D0Bn!<($ZV zw&$9H)g`6TD3A5AHk*jZRP|vCs8N7tMA4E=yd4=j^ze|2SRuPcaXwmow%qlUc&0?E zLy^der$gZ-L7$S6B4GU&u(7$h_{gV5rlzJwNH6hiW5Y%(@Hz-RrN@U`ju$UFe6^EU z>4|ZYSQ9fc_BOsNRUxY`)HF5SUTSYAr=)a6bL6RddDXDDaeTdB&VJOn2NJY>(PR;v z!Jo+i=7<-!4jg!en2%CHGDpw0?2?j``-AN1#MEpK2hPo#_khM`_L+Xa9PfUhid2){ zy}R4~oJy$umYt0)Jm4_2i#sN&FxtIphy(q+wPnYb3&#&PyHv> z8MPR-TfboBDr#yY&F5GUNgUj_3BIyzzTkXdY{LD1AJpxD{WWjo2+C8+g}@kG zroPxw;CYOA%&nr5?IR&##wB9{`by`7VlPwd{Wa1In(V2AoopGBu zt%q#btOnISW2r~5^AL3xb^ndD8hK%2qK5}_PrB-;gxh&QBEJ#;#t=sp3;DBbSGcEp z<>mZ90*z1EWY588sBP23>lJRz_tvMY0UnngmypFCG)1dpBf`e(n9+3bL`}D zfl>Q-B)U3!oz!6C#n=T{_LxRN|->g?Ga&rR`4EaLI;AZY;1{1Nw3Y#>Cey4_pSr&OnO}E z$>``}yKM^4&5f65Idy)!6izjH@=#xDl;G7 z$aG)B@86AgKKm0`AThYvU*avx6eP`e@xAdU(F`M>a$(ga3h(`!y+03kpde5G_Lej5 zs1$^Yhvg{a^p{xvb1S}FDzVQA@OshEiU&HTix|HnV8=e|k40Il(vOA6++GMo^0IHp z`R6?$3H=vU5s&*?h&-Lw=H~1xy=gEPM~)A^)+$63`4A+*`f=@@01Y7xA+fa>-L8c~ z1T(W?aNlH3H-~txTGEsI+@KeZ=UjoGpM37%jDt(_vVW57E%(#^f`%z?=tZ!adBf{Y~QDDuslP zYiL*&LPjlf#_#uaVW_ZdQxdf1W*BVQcTMZMAL0LG=JAX3&Y0NY*#B1U`94t|uoQKB zG@rb%V0wSGuV`b#f?hZpLTpww7It>*+_x$g77QjPCRvqj1G98YIuvNvcYNpcyr7$d zZ{+!0UNGAKi|)5wE4R+0T}R!RB6<4R+J%96=2&j5_uAz@YKgM%7{(vH;+oE>CKyJq3vLyY&cC9?BQ(&eeOwrUMXS|i}$x4yP`gFqx!KX$NQnv6IoYrkkJQnth6=` zJPh>7cFYyC^z9t>5Mxg)&gq@ss&Uu`QE0U#Y>S(}9;xK_`f#J}k=OiL;ti(tl7Z2O z%~c^M(kh38mu0MYpU5MSy`;NX-jS8RwBX$sSg^E2@C6?3r;o-Ked+X(;{+i){onoX z4`07+k;|60LggK5x95kz7d{SZznp(sT8dKHN5x(Jx^p5DvXw_E*%LHK}@93p`N{N`P+6b*=6XgTB zbnb1VER)_j6_v525u}}L)Py`ra7d?uG#Cp;xu~CR-hsN^PUKpsjp>}^yVl=HAU~FE%b}ZH@z-wV z*CaF#ENw-Kyu2S5XRW&P`N;T#Z|Mf$hP#1Z4I)b4z`>_C;F+qNiH)aNgUdR(Q zi#+T__8ccX_OxmxBrfq}>cED#YF0<=F6%O*RO2!*HpLJP%O95V{GmGe!-cB$*& z99M1HJ234BF4$LOR)jRpw=anvjveXQas_7>mOin*)tA|~1*ibK?&zo)e6h*^^0&_i zODm)xrBd<9-Yum3nbl&iQEz)+#IQsBPwgQTZ`ac_BCRPf)$w6=Qy(#hrCuDM(2kj| zt)q_35cqI=s_pLn>a_KexW(_-=4`FQ=XfEtwpPgRXs%-F%S zjzK@|Z2oFx##OjHFS>1DSj?v-x1xO~tS+M7_2S-M}c zg;IT3R8#xrgWoWGG#VMpw^^H<c?GJE);#Fp15(+xfTugrP-e%Xrp+`-b=d(X&ySU@UTp&qP5Wo7Yf@ zk?eD3On`0%MLVoh6&v*cFIB4q|ly zNr%eNPc=5en|Z+G;UMqU`!`dl?^mJhfgQ6Zy~L59S0N8y|GUs(mY%7px}TpI`WzL4 zR@<*mSD_ghG_B+1>C(`rIK=OCbzh@fWrJ>ttY8pA8Ueuf@x6v#=9ofuCIhBaZBFmg z0vWm=sN}I&!z?p;noa3vy9cIXXB&HNa!vcvGhb!b&%PH%SyuHrc)Sr|O{SPlD{&Hi zPf5he)?J@yE1Jp76)ln9)RcKg%pl-D+3!-QATlN>DE8qd)=<-sRMDKQ=6-FjlAWC8 zZ8kAcunPjyyKB8B0r3^qMN;Fb-^IK%rCqO!IT>W$Z7gc&^26EA(hFT9F_J`BO z?xi~6?@09UG{#zJO+j%}vtCn`g9lSJmQ}Y+cmtPt%~+;s_N;0j&fmc?rR>17y}1c* zOI#<7aiq3Lu=~)FYvfAvu9A?p)i4K}mA8v71?=4(4+Q>1WmQj7jxXs#3xU*-ebknd ziwXS?+?+~%68x67@CY7#{{fB8P$h-bl^O2JNlAn{i2otNN75hS!4Jm`a(GWAZMgpj z4*!F1XiV59)>e?8FMqjLYJGWLcDnL5ON7h%9)SoR7#LvThE-G$nxu7(aFkB&FPsx_ zFcrKl`L2=9my({|P$&K@P#b>YkE0F?ygrB;L|O5``ja_u-oPA&X{p85cj_?rW-94^ z{P=WGH#~x!P0zK0CF0Pp^_8$cM)b!hOp|Y&3 zptMxA&i-~O@yA4t--5H9y}gn?gc*U+&#@P4#R!^8;1^RD1T)l#{nPmRs{2lAr0F(k zH@^>BOY7rwx_Wy3eSOSJ8fo@7NAu)k7`6Ay4t1o?a4s&cUJ)2NE|u~CBK6mT~ z(~Ax>7t5|3PJzxytLDY1CcP=zmZp!lO@c0asHEAuiJ5iXl|_DaTCWU8C4T!)HZtB; znykI@BAOLuJ5Rk7B0aZx795hWK`jN*xj)+@N@B&5yHp)M7kzfE>kz!rnqwbT{M!bB53avy0pGzmTS9{N zcKG%5Y#bK4RaBNBTnzeT1b2~>zrIaN8inr)GmYWCh3o?VPU&d`tRbmOyWbpqGxO&> z#h0R6SlAsIZGhZ*@8-8H%x(Pjq&xf-Wpxm8`a!v5hhuI(iW6?R3TUUH-E*J?K+*?4=9V zx~e|BHU#$3PFOdSf=pL;_lvG=&%>ida~do&$Yhm79(2XDW5THYZ^~3c%g*TfCpopO z?cIIY%9)W$$H^aK4d8CsHq%%>C+^JsOzqpw(EPo!j8GHf@6u@p6Z{my*p+=f@q9))wZD9D`D)7U`R4>iq zXmt2oW5Oq}*yVL-cB9w0+gnY-H^9?#vwJwfQp15TX5HU!bdH|8)1RYVuemCl*=Z2< zND?a8KaxCF&~yUp6Ge|41tznnK*jwYz|b9-%u zs4o_J)B<7huHNvho~rM(PYdr^Q%0*zzOS1X*~Za@3`<*aoR&Elx*2Q#DG0kTecrOn z_yPXHca7=xI_!>EDFY23~aW)KqYC%HO%*fjyQwBq!gF^8&4q z$I-BsS22YW_Ca&H7vnEw^nzcUQpxn6mV+D)gy&l`!9R^wYs3N*5|Wc(g(I)z+C%Qe zWY2F0s&AXLakrm zX?xDV`2{%>znzm~J{f`u?iLtHrueWKwlG-G+?mkbdNW^>__OuC`+CP_in}&vgX)eCUIOUg8 z^s4v%HkiWKqF*^#y@G3heI+(5uO|ZDKAhb2^z^WBzLk`oksYE|ED@5Drp!LB4hBEU zlyGBo0GZ)_cu^frs;rW-nG$MO+`w-ai|}a8{6*q0t-&g<#sF%-$sk}Al z9x=**pUzQhXLSV$+HVA=^{hZF(d7MO^Z)*hI+Slt?_WxCfrOg&t?|f#*#=>AG=zfD zMI0Q3b4Mx^|FhoMCTXNfiOr{$8&>tywFPTJ?fz#URuHF6OBs!+AlDJQK98$v4-4F^HW3{hwUSc@ zBkF6MT{TKpxZF%08L5YX3AI%XuXRHm7i1FlInrNcAvvr+%$aU>2Cz5Tyjpim{`Z$k zSeL#FJjnJwfmkic{10bLp#>6;W!SGg7D@or>3Z*~jA5tqCW&})pS#6+qoFH_ z+ettr?RVC7+^4`7P5e*kRyKCd2Wf(jpKe*C9Bz2Cp2bc?z6Fi#`}EanUKiMKE)0i& zA8{gc2D>u_S$&v#w@B+UJ@?si0xs#<^IW!JK06&xl(~6$EItLhd(UL~`JsLdfDIaB z7-)ubl*E&4z}D365=Aq^%z&6BkE@FA)3XQ~4p<~3Xs~K)&|oM?IKrNek^Os98dcfx zK9f}LNcX5kUg4ZhiblZRdA2#?jbvD?12VbXHp>Kf9mx1lBrQC0GU1T?nI9sMg~QYm zrXLwKtkdhNA^y=5nXva%hWR!qEuu`tA@x0xyo1kXGuzehDjA5vdw#m`=8QR%R18#E zzy~YE;8Efw^h75>yU3=Sp(Lsy0E5OEfx)-&Y0ww^~j z@#Q-ggPEg30?58Kv`0=@$$uN>vp>rOIUb#`|1N-UT~<}x!7D7p59R3%?PF_z4foZt zdvm7---k$UVi$d6RdB_)k-vlon2Gy*rFR2Jr4+MkVsIwKEr=&m3UI$}DI=|{rutQ7ZUjOmTcf8j6(d`_H(bYBK z(P=KQJzEe2_Cwa@9w>aSrZi->b9i?6URz+h1OW5!56kLE-hY{09kZTlbsV;gD?8Go z&n6sv!8)^aCQO{5^8?1k0=jFl{T^Mv{4d(}WE+0yb7Trk&h1xJy-4z0PDeHMM(R1x zH?@&mz;9dviPYZr;#ehlci6j&y$a+H^`)qC>N0cXculrARNJWhRiO*Cp2p!{b|JNb z*!9ffK1ghh!$(Xrb=-xn-G#A8mDXgF65`R5{LXNX;u0)acckwlaGl-wChvmeuVY#o z8K%Bb_-(4#LsFBduJMwSiVTzC(?*WHMACmQ_q#Y}jCYpsNf%uPVq4bScmA-*+J5gh zRt^Xu-mrQu$%XgI&LR+)IYYcu?TK+a6!1}dBP{-VfX#>!tJ9DLPLhBT15pbI;%Fw1U`@ zquxGymm;x2uDe&-Flj@*xW4Z$-Be{6!hGSb1U*|5HdBk|DM2)j%cPPgEIZ7mFsZ_Q z+xIMg-QT(|-N;jyQfIbq>3B+1M;b%MhE`68;_{|R^kScOkMam22Ts3?gA=9g8NrVW zSObHSkMZ5C67=p;7^YQ9@GP+p`=?J`m2{jWt20|m+Kau_Wy95G&nAF%f<{>)n_bC~ zKY_ZW@XNgS>1|kpk>HxsiJ&G&ePYGa++G!O#eS^Oq+}*Ed z@po+Cd;W({;R){l-V)HALOyDo<_?#x;Dw#LQo}6f&Y@4=1%0eBs>H6%yy*(L(i)R1 zl1&NDH$~D)K-%Wp_VLm{b&0xGZy)os{R>JMBfCjiAZTMDzTu5K)5h9)~2hjyZIYe>7}7GLnFZTvgkYj-XK2c1cz^#F-2nMDg@WYbT^ zN3Yx{FMS=I*+LUYX9N+!Lc_EMHMHmadGnw43+5OXeR-N+TtrwmwbJl3;IadXD&Hn0gy1>nMuC5?JtI?9qu}BqA_1ny zH?uZ_V@q1+$`qaMOro@hnJwLvMT)(0R^FHxycANwMh9O0R}r1rN~}LMh*|as^P?oB zl?>iNHJQKN= z9x^K|Jo{E0pEtQ1#>z>o-#%xq^g|T;bG~Q3!W9>=`oguKu$0C&j`T<4GabAtgnS|5 zFET2XN%v(pPFBvn0ljBsv~wy{Jnrd*yB;Nuru+Vn9d2&3IQQzCt>bnRWxY_%l&0>; zL-Ddi#qMF6uYm_7k_%^gg0-&qR^BcCPygyFu7_p$Nj2NLldwQ|2uLuu7Q^oRnUPGq zkYNML-!w$HB05$akqOYjzsmR|Vqd;O%bLl`$D{Ho^!T||=>Ly$@cUX+Ay#_;#?!gU z$?^86#UT4!wSkAc5vhu!3_%8KmC}R8xj~)*3uHforz3WD zcB{(kp!<*#3UY+fYnP@AG{R8^`K z^VI1?E`O%{Q2#6 zY(WZC8mJwl$OY7)urQ7^Mdq!d%PVNR`3e7zOOuZ*!71EgVXYCAQNg!F5(Q&H5F_oV zi<<>qfxDK6Pibuhb5*`+4OQb`fG9Kx#`r%HESyWPm@}+G_|A16OCcYfn?#o-1XN~x z-hb|YLEspo)z<8LxMKjbKE8DXp@9+vHFy`USal%eJW&+YKRP-}@;s>0x52vlwj`7p zQF!-we%EwKfCE%`_6&l01hdJ?%C5by6Awd|x=>J2CFSOR6^9@x{7_o4RsvV1h?tm| zz47lj=v927O;>uW4?*YH-kis7P-Q8XK zsI$hZocH@3LkL0!9)5sA%cnsb{#I;=KsxW>(R^Lx)YMeeMeJ{gv$J#WZwQ*qy?dlQ zBiK!1jYc!${tW$*NhDJab%|M7v||q6zi+!HZrt{+b4*MWK4YqCJ8`e%Dv+#^etsVM z7Qs>mRglf&TN?CeXc*L@^ta?tny;{A=hO(hXY znk&CoYUXtpGkbF_J#l9OZXcSyO}#)okc_wGrr@V(H|7@hk6s*6&WEc1C%?mp(WHxP zW+*hP_yu{>?oT8n=!uJ*4$OPLkTThcnQLS%87ghX|IOOPsf+uyZlIJG#`yucE4*)>}HKhRL$;D*?w9d#>Pv>cbL{d`nxgqP5b?PF>lXVW$vR_py z0>$6*=&9u(udb&=)M=6?&pY@$5fw!GB2lbAN|NnxCsFa35S4xu%X*8c-iLO}N?cZ^ zO7LRE)RYLb4YMSfuNv-6V4mDg0HsI3=Ve(HulG>mUQEdOql%!Ev(Tj_B2|=J+fA`< zb6VvtCvnSao_w9Aga5+U(K?+oX2hb`l3x+rV}TO?mFdOwx*_-?!XYqZDr9_a(cpYj zS|%G74aMi#mvPW(`FBq5@vt$gdq*n1+LY6YlkDqoQOIT9VkR_q$>q7(l0{`hT!S#Iy;eHPu`GYkm8 zrdw=B%k=N42MwPo4BhSZ-_hTnqh}j8cUxAk4abW&dheJTJ?9|G8~Um8 zi&gRsYO%rodBEVG#&&Jv#xyU*3B?QG#|Q?H=i^ZQPd`nIv{5!mwF0=+HzNTgH7CsT zYU#X3amf53If3JY$!|zmG01uU1M5XuV4b^Thmb?X(raBmzFxiFk$>vSnxYHqhvYG%v%5_TZ(y-1kB8VONNT(U>epHnA?AYw_wx zt)tv_h0=F{HQC2ZAcEphj&a0ndBI>JKnuFd1jI9YMVKcLdx*^#$%^+3dZG@c=7oIH z?^;qLxU-+rpBZlcVy7Y;{-C~>4`z;eu~u^0Wl`r~-GNIZC}vZ>2eylO@L;S zFq&xGe^F|cI(aknfZr$wV#@|w{LNUYQP|{24N+aGeHCYwF-oK;b+K8VAmlg_a)p>h z2}%fJB6xw937M|XWdgVo%;zJI4|fH5K#V3;{DoG*oXFko&{jJeyg3xc&=#30BJewE z|A+HX(Bi+`1l}K^={{1pWQ84oVi(N_iU}L7iuOZjhN<2me4(gt0iCNE546Ezu>wkm zu?6vO?N5)soYH?USTrH3XnnZ}{s3PI3OHP;TkM8W8O9VcH?{2xzn|A59F;&+@CWJV zw!%&4sd*Z`=X)!`+yQ|HT784FXW)jO8viLOE*SH6+!Imk_tFPPXT{_ zo-f0vGkoi4HQJI1Q22j!pA5GIV6FT^an|sfgDr{H^&L8_}$u~p644XA) zGZE8>pM93lNsLiFj*yZUaVHqWIz*!jw*rI>dJn` z)wugUU!Sr`jyGW!heb;RPw!0Tg&d_8y;X!N{0X#bv9h(8SRlklRD1KGxNSjno{YZS zL9fU|?@}Q(@m75f`%kIKY+btwV+%A^Ek}goj|y#pov!$^p$o;sz+{Ite!TzbXM@0(G#Zk`uEuQD#g# zaawx*$1qAwk@jJ2Lfh_?0@ela*z<2P2Na;Y@B2|0eI#D0qo?;R~H9E=!vv_HNIv#3Gkv8=Z9+8)Umxm#F_h?+PBu7 zIeP%_1ic<0w#F;?Z?$XR*JC9>`2?{vVcvZo@Rpxs+r6aX1XZIANF?+}4Smu**`!+s z@mx4zgm1(xfoqNF+Ojke%pZu>82OpYNLv&TFh!XZ{v(m0uG0aJwdPx zcy;NY9=~ROGSj0hyxvSY^(XwS4La9Q5}~+5)T)y|-Jl7Fs8fIXq1=6)K~xRb+3;}$b(EL!T^|8KZ=H*a9jEQ_6^ZHxXz zpiD_Bt)^^$cU|Pn&Cku_@Y~BwG_$>HNhn61ln?+0L-JtKv@vkE!3KH>yC(;na>gU) zZMq`9KHBa-!l9LSt3#F#Jjv;8TFQDa|4_+S&89HWK$J%yo_vp4wD9%ZU_;=IB&rQv z(z{E~L4zdOn?EQU9 zJeBEW4ScX|7IG_%I&s?I7{JBlO!B@rItUcAO`53<8;={Jsy6MO(c$kajADiNYCpp) zIsFw{lY9CpwK+}BGGvwm!be93zd3eM9vSU8IM1O%*Cs4M)egK#3DSQg1+~60^mrOA zCS92DXFMNW`{0f^yVdmtAb5SQKrV!os4D$(^&FW9*F;2c^w%S*& zb$iUU`#tqX);f1o#F(nx!rtsb4u+&Pqn%zv&q*G0%PU~F)2tlzG z!=L&1FFnrccl@FDmsf*~cJK%eljIA|hTO#GB9NK87Zs*iz2ui^=V$5BIpQ87O)%J7 zjW|oab|8XR%Rx0tfq$^CanN&#NQ{sPOwtaiQ4xjA1pRZyuBOt$-3mFzSfi%M2&oENh>65iAnql5_TQ9 zlxg0>Zr+<_S5Qc+KO_MidaV@8DE4#wwD~b0C~gu(Nj$3vBX5?OtlYVT z(I25zBA9AYIZjBYHIDKcmY0L?P{*)2YmB+BtWjjos}eBAk7Hrv8JZrm`Eb_@G^!8O z2wLra-@}a+4Go+=eNQmYJ0#?C-)Pw6RIh^$dAf=clQ}1+@;OShv1h1SW^eRLCMCtE zo!v)p?I;f2sWYn*xm7DA%^tt%FM<$GLGyPPT#heW?ynaG4fSo3o=&bF-hgYu)CoSu zuRM+DaKtIC@clM1e%s=7d>(7>WXZVvirLJ)t4r$cLx9{&V!HSFnur!WY>gw!be4b? zOUS!+-RNZ$OZ>Al4OMll0ZILFRq@AP-@yp1Rgeb8Te(lha=Lj(ivmyxFeih_f7dl#H++PUs+I+h+fvledrRkJA z>u}%7wM9Yj3VJ|?!f8^vBboiW51pD;o*aS%>52Ey61XH-sA`m6Dei>KrYidlQpHio zyQt2VwZS9eg8I9P5MD!&$xYiH3)Si^zw)oFHyjG`iS{Ww%0~>gVJ?ZSiEjltSse0hGndf1iT;W$v$h?e3npMwz~R6&bzpZ&`mPvzilUjxKwk|8w(8 zMlFOX7_v|5WgKhrI0Snx2!7Q-JL~nBlP-C<71WnzPmwaC1N!*iT-up~#hDSN0Y->> zNjs>vQU8j=W)}ZL+YFH|!Ej~Wo|ab3YS<5jauz&?V^voXmxe`AXkAveQ;qn0jGr#t zr9Y+PzYsGlXki6Qt7-ALGPf{_>n>Sw)@?tzeLQU z>9tkr+J1iQfo5D-r|wvM`G;OC2b+1P`2poolvvF~H0t~e%(#8EUt@}bk9Ol$90 zyGb!1Vn54=iyVqrW=?mOjR*=(=lAG|yU_lD9wMmb%CuQY05rpQ_EU{AjV%X?BPXtZ=w_()$@Z4mb6Jnh}&cjeOLG*tBC0sFbz-cc< zp`tQnmdT1Zx7XW&1BW=4UIgO&nZH2T+xTJSxh7L;=V|tgo)#bVj^E!E8zM%ao@jXS z!N<)}4oHone_4M1@Kj;YriETGZt}~!yX&bz9X<8?)!p+VTPoq55t|7FN8f3|=2{hu zWjstH{g-vhvbx3ci>z1pNz3tyyQsD|qeglxsR@R%Yn_yr`_#hVEo{c-T>}UH#x#$o zBdl^OQEfHfuDzKyTS)6N#tjMxgQE=k)Y3Hd2)3h14~H9(#HNI=9Kuvp zdMyV}Slv~AFVlq1`rN=w|IL6w@fUZy0%?a%t})yT?Mwe(hgj5!|(8raIf4;jcHoOd#TixG`^zH*Fo?Tgvjcy zi^bs2;Lzs@tyRR6%C&a;l&sEsRTnz&zyp5qV;i_0sHN&4vEfKLiH+Q^pzYE0o?(WG zSBuDaX@;8h?}EOXw|Zf5FzjwV#zYPUohn_h@qd;{rGA6pVx5vKtjb&KRWE4=Dqs>P}8(*PWnYm zPG#YAheaMLcdj=?L7f?*kNJfHW-68Ks-Xt+CymYM9fE@sPYqmv5eGiFpHRVhKl$=L zbPjX;EY9~fxO?ThwRFQB8z|F1^l-x3ZU$=Rw5R8ET_5U?o%8nstMg^=M#9X*}oSdH26lBEw#N72(p#-X8&B!3WHMb?r z2bhtNyIXWBn&obLP+(%dkVn{&cPp_o4QBv2JJx4SLy;wKtZiWNea25OfTMHxl)yI2 z(mU8lf>-lhmm>;x5gOSXnf_%FNwjqi@P|$k z=G$gRu12lGpVeKWUr$}1M)4z9^@Js7M>dyh*lFF#_Q=(=Jl~m`exIkiPFPi|SgB@= zosQw8Rn?CE(b||pl{t1+C;tA>3k!>m??+*Wy7>o3A1yY0@z@ue)S3va-O$8nE0B@* z^a~-C;S%edD)TDhpCpu%y!T8*cN+G)haxXQH|4>ygS9oSDMOd1Kdi5or}RZ_3~W?S zbHc34iW`43&JP}CG}KO|@#~mS4A#RB6Mx2({fV+1oS2oaZc2u(i+DfZ){6h004-pO z72m15zfcPncX;8-PVC(2*jo-3x~wNRwh*BFtkQ&&0DboD^!{H}z%I#@Ko;+3ta-)^ zl=C@(y$H|X#rkJ$40NOq;vS?9@m6{$biBOUAHgg zV=Va_Mum}2LI_Me_>A+fQ`@8X_ehiiK%v?*{~aL#5a6mPiIZg;C5YR%qd2AZ#Q<6S zlSR`2Q|Xie7~KEL#x$H=yp+d(NETr2jG_sj2I+ zP+<6S=;Q`9VH*|f;^Kplu<-s;lXu^w-+^qZ)qlg#LExITr@13%B0rbKp*enZ4YHk` z-IvNxUtize%9Qvx8-eUX2WWS2F+31xvVe}8{!QMT>e*VON-~az` z_1AGx#Ooh7EFhrLf^?`Lf`D|#qO=ks(%mWDv6OU!bS#bJ(hW;@r*wBW3k&;<=lst7 z+^_pzSY~Et*qQIXKXJvr3mrGZZo1k3k2a#e(&|+vabfEY%Vuc2b=xQTa?+~}@J&SyQ z8)x2mFb#e?QiV6z;D)ZdT%KXkUwiFA8D4b!W>oqu>L)N(I_z703gp~!N=lel5x%XP z2aW=b&PQJWJwfz~>7G31Z#JyEPmZ(?dr;lX)J<-_)EYok4 z+cYRlJmKGnU^)H}SkiNoO=iU7{RxoQb?@uE(Zj3z^B?ndFtD46$w@H*%1#oP?UgG0 zYIoc}JUqPo=qCUFu17Vb7!^j**4Ap1 zNt_AZ-5Q&kTK346U(ZfW=}F7U;V@*Un2em5t*faz@!%_fU~}$iw@FFlH`C`(6K*o{#FE}x-%uE zV~GwOf2b^#)VlpB73uQ^DL;sZ$b|GB$>DR_e|igiUG;2(SY%l<1fSEV7)rSw^PL&s zny*0TGw)%9gp(m_i4nOTi!`QCRx+u#kbTJ9`lbzU-t1q=bX6?&N^I@$}?k)E%T$va$9^4FRd9L zW4!=R6xywuRzB6D{jhA2khN))dRJ)3`@qdOZo%c%kz`9n1z~w|q2wK!hS=ZuXa8RX z0a-54@jBF?$!tRjlD|HKE1J%K zY%dDG#7-5#;`3AFWwo#Q#Nxz@4kS1@Vu5I||EJv6qF6lYjKN{0(h_wrl{vLgOMHyT z2GI!jN_%eVI~_GI!E`icZzrRIbIStQ-@Y=cCU~J*=7%$;RuX$sJ~pfk#m>2@`yCRahNtI_Vg!MtkQl^YY>Y!+QBoe)@L z8SG(hvMhAm2EZ5D=#pu4wfoZeId|dEX>9q+NQlY;>6ZtcV@T&5sf&3ijPB#PrAkC*@5IB&~~P&yePWFXgl# z!{xLz>z0n$F|Nr1EX136QD(X7W}H_h^Lpn>*1IwIUS)CAN1W|MXVi<8!fk!LSo-u2 z-?W0$$jT&Ga|@5z!%Wi`0oF9mIPYYU4|NJRKU z?Jtr98=)qh8(1LIhC|c4B9C1vtl9?}yHP*gdedpI%LuGjAau=X8>{*HMEL@Uw1JiD zqw3|6djjZ+IOs_vk^)Z_=C9P$9rz1UW6O#6ajyH_?DcA?sZLIc_#@9F^>L#`^g*WG zJ87iowE;hgv(o`sy zQ>ZNY#IKC7u52_&liqH@iDR^tD?}cJS|s}}+LVkj)K3p;dhY_NXd03w16`zxB&4-! zYln;@T@gZqP&71oB!xhGvU-8-21T26e$+^hi6z8-k_lY4BTng)SK>$Sz`AbC^h7&y z(h@+vD;daUG?|SCD?JY4u#UEh*_em440kvY z$V@3uza_`s)xN<|BbT_g(ivi2dKhZB;}e)9Yv~Le-WEjrb?@0Y-&SYd=ItGpJo_2 zi7nSC)p;Q&ZoNFHIeNIYd8U-?@twwzhoTn$6s?aGOxDTs)AZoXFi8;1ppDMNle)_N zynz_J?~v}`p$|3|M$Ykve)Z^iJ>}i$u%gPj*T^gf2he&2@Asd}U*o#XA>BH15qZzP zhEb*Be*ljed^B_!cP8gT(2*iiz(^9#j5{BF!flR|LoN|F`l#+3A`Xvf1A9WhUT9uk zh}g95#UiIigWWde_nX%K%311nS%dcU*fKceAl1BrC!w`CS*t-guSlA3ia$Ccgtkm0 zNadyxr9YyEv&4L$TJ^j{F+&CJuHV)~Q8ZFC&GsA#m`>&f({EOK>d@BVM|F>bA?Bwc z+2XRyU0qE06jIC>hdSj*!&6J|Lb>1{S7bNM^c1VJ`K8_ z5uL7r4U_Yg7N<0})B4P_I3gc9lTz)@!ZVZ2Nrg<;iwMt4&F8ZaN3F5j!t-+&wr4Lz-1sH2p!`K&*}RAe>3s-JD&awLCyj>Uy=;`yozSlqWRb(;Go#NgL3u zT$Z*wA|LE)-4gl!6Z9waQ^6#BNcT?{-dbJ+1;NrW1vUn`bMwFzr>>#+@`oOXR{sxC zMI*ZYoAxn*blgw)wuv6D<8xp3bkODZB)`U?la=!%f75Vlx{vyjLrU1v4zXxEF=Q{Aj4ufD+fjh`UnOFtaDKBeR0 zLZ_2u9A$eDA}(-c$&=@#EXrJ8MhacL-qQ8-S|mUK=Q%_m|A9XG+gWE#ArmEn%l+cB zsibjdFDTLeF8Jf}R@1{thO0;{{0H8_;s=EoMWPTJNa}!PzE)58UZ1AIqHF=ahA=EE(aC0KnIv3dpf!p^P_1ySx&)l8ut`=y6r&mf04V~UrC8h;-TUeLY zEerx0qSo2FDpjxkTZx1ENAZBDMB%Q=x(p+^^PEMI=C6Xl{j{nFZw;O|sU~2Nnx&r#|nDcm=WRKfSxlP04iBrf{riu66MDQl3NCQSU$epDVc0WQMfsGP3&1W`fVp z1%`iJWFV?N{9lHmvJBJbUUspa3JP&Je4Z2;cVfFOY;Y7zw{f`*?9`0&4qtR*X44QaF_DJdC^$Y&@l8=lympL4pI&VL5)c{3gC zK>Q0U3Hqgy>t z-4oX%meI8q>pB%X6vA46&8pbsbOu!M$(ZH#m)#z&-giK|C!QLymxo1Ee&;hBApGIQ znP6kVBC_exi&sb>fVZ=DMPh(YWc5z7-a>fM^$RcLY=a*My3Bjsn&9UblChye{$YUK z!yJjdkK3WQlfHqu+=o_>#8}Mk|0sSwTiQ9l=rgyLy6kn}cpuu;7h<~A!E|ylcfFjp zSmEasRoX7jBhW+@G~&|kHvh(HxAWO5Csw!scf2Hf41vrk7$=;cm7+@QvY}=n9a03V z*xB1Wr^X@{={-yxeWPuYlfC%aji|C5y3>rT z!0wgEO7cY@HJY1tkoyvag_oIQDi#YDF9Bm!mm)Is{iw{G91t=-a~|t;2vI91+qt#2EMNsn^Sb-Ta|ne}~Hf8d^Y%YVeO*>VG3 zosU6dM>hM`73m?&dp&+id#&xfuta}q1goH600S9tB4Y5oswWal&rRf>Vl-O;_0uf( zvH))Twvup3Rj^;c`MSmTiBW^@(2MAl+6zlYI*2`QaUjvfc{m&qE$HhMg-pMTP2u5m z_w5Q7h|scQNEn}_Kb>!}On2`;;vH@JU6dddwAB4S)X($Dy`_ihlL0A`!NGi%6ze>_TZsauFkM&9bU2R|<~wOYq*b zenZn@=L;Dl9Y>u{5Nm zq4){=#z~o+JuVccC76qjxeB+ZL!61jtcTRu{R3P+ZdD|o2ztvl{VpJO#>4>}Korhd_#3ZEf#ra{3{#5GK}RfAxx- zE4A0R?=FSn#?yIE?<(Ee&cew!!*M7EvYdJi%x=d8SPAg_G7B~JZu{vn90eVEdCT>> zg_b)TS_Qzzlh|Jz$2Ol)gRT}vk#4?_6_*LT1~`GF%j~$GqF)a*0zvA(GRuM5jhBOh z{!SKA?Y7`F7cNt@1;doRBum=lg%lK3LGRv=Vf3Uw+LDn;%l=v4lE8C=Qen!iPQ!E9 z5~tr_eLjfPSTW9JggtuXgX(8~GOV?PSF@p)Pt9-|&3`#BajE!u%AAk$H8Xp8{}qxp zO84G$|BExK|1Jc>kM0&wXJLO2!;%F}c(GL4H zbX+;i%A-j#3l~h5K&PnSN&04BxQEYV_osZI#;t$BgiNOM$xfABxL3;)FFE$D;mGn+ z2NBwdy%KXP#649tgQV4T9#_ciQqn5RQp)RRl!!ADJucJSxoGC)*~^DDK*Fv!ziL_> zGwO++Lg}aHu*>${7n9%$%UXYrpU4^M=lA>v&4=uM0s+7+>U7!aNlgK*HGK66@;ms4 zrlfKX=}U0sTeLZ5?Iu5w?`SGwFWIl%zgVVl&z2+ZSJt>SCPyJ>5(WBc&i2IYw=0L+ zIG~0ze85nhN1o-h&!>gF$V@cg`{`(E0yD7R@2Vk`*KhYod2ObzI zr90agD3f&SYgT074MZ5@%!@u|shf&I(He?EMMpg+rgW>H1pKBF64i<&XwiydVA6-v zh<=|*#um9`0wFX;7~h))1VF49DfOIPoNhrYpI~(W@Gf)?gTB|XgsGDf1AI4xrG9s)W>gUniYCFO z4t&19PKX{4PCAUqsX~L+T%WpU!bQF0_RQlI|C~rz#4GY$6%33{9)CMnVF1UpD@?O4 zUXNPw817Ewg_#s(ix!0YD`yuKg#vi}N5kVDx}!UaM64ng_-2!&?C}F^Xh>GT<(RVe z;qg-N{1!d~VnaN=bf>DMipBQ;z zhh4{Cr%FDDX_T-nRb^!fb@k*G0=3L7D7euOzX<7S5FHakkbqcj}hx6 zWQgXPi1vA1W#xc!qyCrOW?UHYEFwv=_(usMl(_CU$HR{g_w0=$U+9hCKy^%78YR%L z@l{q<_U~OW0-(*alCW<_vz5I6a5@9nPggbwmulZBo$s$h2kib>kR*TYFWv~3h1cDs zxsv4C-xHik2Cx(f$cCM?}c*%W*?K1Jc|G4hf z4lBzKAlOm$f7@?mk1!HZj)&AWepCZ2YXOEZD91lke>ypjc=ZLr5bDQfJV5kr>4bQ-B;%!;y#GM@%@nKFy)qae@%j;J*|z{2Cq511Y6)EdV0~mLg2C(l z9u9|(-{R1M16I6|+A<0XcxJoQ`+{nZ8HNAF?f>Zdxu7rl9 z&m0ti-;`%KiOd~p2bC)K5xNPB;(#^F{LhCiv62|qr8S761lBbr8NT5e%OUWdR4V+J< z<CXKdadU!p?$?Xu{uu!7+DKjp2!le;B}AylMFs{WC;D^}Xn)WBTI z<6%jPVOc3Le~`#poSJGXYw4}_NIR;|o_)GK6M?u;r`Zs%QqpYG}-?OOxUlWWaUhcc6Hb+IHn zH)_qV&~1eLUG&4~!jvfk{6`MZ$b(4)oADA7IzpyB|4gS%vGQUBNoQ5V=GwtrM&U{s zODF0nV3#%H{hh#po<;Azys#wI>3M%P@Xy&zX*yO0Lygj9$_t3dHFmPkpSmP~VZt)5OqIndDDB;ecJUw4LRQQ+JQw?_Ht<(&RyLnQ{F={Rs6 zu&Xh9*vbNmXwP$!7#Ad+JYShG>u6}d=9do+<0K_&)oCY|PgljaVSGU-GV|BPO7z(b z20$4JQ=S)6XP9=>`&Y8~NYkO!P}dv&!=vx829n&)wKnTIOBJ(w-l6Seh_Ba0!}ihB z9%gsH@fJd{F1+ji2jIiBy+o#0;vF_}ZpK+Zx*{mEvAdMcCq0_086d)KD`n}U+J+eQ zAC~m~WjWh*hVdv?Hhz`(I!4Hy?t_4Dr2Fp;o&MVKS$W35e7G^?*8uGPmRlV0ghaPr zzt?*9dQ0?Sbnbqot%dc4(Alms-EA;T^ek*IZE$sww6Xhd#oX`cGpxg|R1KZh8<{&+ z&u}F|;k~F0S3PexPSXN9jH$x0j!|7Pd|8p{e>upixvk2jrPYRBkOD;99x z+(FP%(cP~>0n05{r6Dc2&}0k>Se|Z)q2L^|*Xm~js|YnmKonlU>eui57(@*VHOExC zpw{31YQsU-?t&nvlj$(I0Ac=lNqu*SOlrAvAax|ve#$9ll3pb$y_2SYdaiUc#^;9O z61lroRj>)xO~+Ctsb0_}CU@c=(hvx+x@I%&;aGk+6FMeap0>P3kB3;Knsz?S6`9_O zJea7kP{~gp8+-lEd~dp2G5vkOtchsboC*AM3EAc3KKd&aSeUH8c*@ zo>PN7EF-7m!_FHV=d~oMJd=%~JDlr_z5R07)SyJqrjR2E4{57%gA=RMyEG6Y?e2Nk zGalzwc8Dp@iQ)V}(4JXU%~yGXBqTpX2_C95z-^1P{8^7eSoEVt9l<*K-K_3t>3gzi2A$S7R4@$gSKmY@alcb_*Jf-ElXi_HCRUiQ zm@f)t`d2Y7A_-WL0eTlHGV8l^c0??ukq%Iys&8`=r+loOBq&AU&}$O z2`+G%*gT4W+)w>7z_hrjYO*3Nz!M>;$m`}F{?o1SaG93!B!mjmf(2+G8;g{5L2c<@ zNh-V!mHvujX8-Z3j4XoG{ZXb7hz(;)q(u zBsbdDz;q#opThOa9^D9q|``ykR^>X)*$?C;?$lJfKH)dt~TRFtVDF5Q>=f|eQjwB$@RMvOLtFS7_ z5!eFhWlI&x8T`+*1NSD#?BIE?zZg+3_9fb3s2)J0! zO34g9caDm8z9|4-OLB7PacXK_#l_^Vo;i%{8&5*3q_yK-SypkX5fK^jt05M*ic`sR zc}A$2!IcJ2UZ^A8-`Kv&v45JP*~NxXu$?<3g6#UP~?T7p%sp8$Z@08};({Skx7`a>iW8~hb$6uedwnULUy)7*u zTri`(nMftAb!LLtfVzUqTKvLv7v5xeJF*{}YLx2Uu^piFt@-YlIDD49zvZrHrN0NI zi{(~~G{jf+8?4>4K8l%`zr<~8Jh7Aw6yf3uY@Ho*p#9}OjYJT$dRZ9E6yc=JX^#pL zLRW<)&IL5g;>@%rmi^{ldcO?A;`!dXLAyPo)juHT?|N9&3N9F*KPbRYd_qJ#xw*Tc zMO3F&F4{zpQ)iBT^rhQPS9GR}&K6-HErafST<}TA_i3B`scI3|CE!b!QF($@YeMmz zvaj^OJhtcAG6;N3Td9(|)%J6yLm`1mlqaqrqhmjwBB_Qx&dm@r;L!W$5r%rKXQUb0 z8B9-#2uOK$wI2cxk|5lx;k1}Ka)*t#`<7oAYo0y(yx>&!Z37wAS3nL_leM-WyE(X6 zqpVHPyG`EH&$K5FUQ|Rjr-fk_z^}Y*9!=S6woiW&?WV=yz{uMN0jzPB8l8mt+wMT(kq{JA)(SZQf<(;ad z7XAi9{sU@{@dn8Q+tsm}I`wIV^w9BE%8@he1A3pavq|>dN-Vv8L1xX3)y>V%%S#BR z=!g;P-YhI?P!Qm9=!_I&t#4(@4o={21y-lH%2ky^=4bm-rrxd*uUkd{kyim))KHwo!=U2E4}FwEx+iw%r+0a`iJ)TFn6 zTyzUoHs<2@E4Zn%rg-61-qe_L*}j!CeGLLu#n^d?xcEb z$hkj-716O7erm8(7hV2m4W>B`Ks^XPEPb>-DYqu-Yz7l%e;@FEtb9XE1jYJbr={hb z8iqsp!I3^e$vCXA z!{%hJaC8!g&uh(^*{?VlB)U#1>ujvaLt)1zLwHJa^=uLO8`RNuo4iF9mo} z3xg zxl!@(?;LF@KGGsB_dozQq*Ch8h9dILa&zX^hL~i_#8c;4DKgI2@63=6UIHYqwVmCW znnV$!b7PMq6iC0xk;9->+DFtL*0x)mAta(3D(mIO|Jv;C8{63l4#=Ae;Kva_@xaM2 z60rVK>MT~iMPZ3}#r6KZ#T`r+S@r7Tvf2AP6g(=FC{ZQ#($L~FZq`Hj-v7M6^2_w^ zkAejg>~un>Occb*&zN@8uENL1L@L=saf^X8c>2nVqCi=hvGL11%HUg?RqtKX~V8>dmXyZ zQOoL-mDI*5iNW8!&}BO5Plx_2jIHV2r$(Ux4bQQb`+TGb1COY@Og+@;pind7Pb(WQ zUc4xC@WLbhx3uyn&ou3I^`y#O$Ai_U*#%t{Gv-}LI53iu_~+&S3Z?e|RNBOWx}rb$ zahqOoQQk-gk<@7JU^+0W%;!r2ZAO)Iw zWHSWG89Q*S7L(r5@nga_uMOk(aU3S!w zw4c^j^U`-Ex7}k=2tU(5EX>(5m%yq?x8SzN>pa z@dvs#rhu-EZ-iwJZ}+%l1)ZTY$@0GTjrYmL{I+ew zG0Z<7Je1=&01FFxIlwiXXtlr>K$@PFc`wP zqU(8`sg{!NLzp|40)3-6Frcg$&?`)~V zpKPYSnS1WNl#No~+9~_WKq0XRXAJ$EsRo|};d{`AK*}zpGrZlOfS|L*;`cXZhizWPgocl@v2Z;Ao7 z2J}h)(Duu_L6rU%w80Rl=_B9a#wI2cz)Yg(f=MBG!vP8NWBc0s%t=5IErvL_OD9Bc zV%ytuL=qsLI%*5V(LU>o4PIml8tEkhOHCkO_Vw=}3a(+&lf`##k#A9lzi<5PA_Qu{ z9!E8iR1eo;YL!MI23+L+$6k^g&nr6DUIRlufLR~h*{tm<6LbU9f* zT!HB-{nywkdn=KmQ{w^{Tcsqxzgr({0G=JzV?%moX$$K35DhmkHEpih_MIqxZ(9!` ze;MgHP45C;+dYZU{R7y!7eP4y?zyj8Coy-QUKX8&XTy!6guJ-GongBA1HTzVp*J&& zu%Pp09lAXfpnOB}9})D!7H@t14Cvjip@Mw_Jf-mo2^RZ=|FzKq8>2lF)VTaG5=Sp5 zU~&bNa@_1=whyQd4o@x{79wU!)F(%vpW{!4Pdd95wn!L}7n>v>z)w0(V92uEf&#*! zSAAc1r2Ja*^8!E+_1I4HVMV$sDhUc;-+ADD{G*26 zKt)8DPR&McoIJ48l?p@5|10QV0nDp21ueaP4-0iRE^y`g^Wx%Se#hN!U1t|NH|=*2 zUNC?zm6ZJ7aC1*9n^PYAUtvdeb#?G=$$1zNMkRBV$IY=}%76Ehz;`1cz=v_(FmJ^J z)C@0JB|N|SPSjo8(i{2!bOZyA7~t{*Z;W5tEU8}0Ov>n!Al&vZZbqqo()1=76(U7 zLi&rs`;S^Mm+G-GGs!N|@9y?(h_~amUt>2Hohau-{{c1~G!-S#%{zMBh()4=Mm8$O z^v+?P?C#Nr3$@K1ELg(%iTeG#)TS1D>`*QPxHkp)Q_~q|v|wbTo8lh%=GvnBS`P04 z>yw(?!(xprWeQk)(`?V1dE4PC#9^3+I;q-6yX|A|TWT^F15vO$^G?o{u}yc>$?4Gk z&27V<&=Eu83X}DaH@$f^wpfJ6T7mse1)OmtENcUVlVTSh2e|Z+$ufC^J+kL2%%(=p zv7>x=^cM*$fir8ix3cm_ClUrXNK2SUNJvy`C)H?c_ez8=$M$tR+4OshbJf9pwNa_!yFwuMWkJ}Gs3o~LFirW*vp482l@~$TVW*W^7wj-P@=l#` zXPRG0?V(R{M2FWmQsnfah$g+kX75GhNt|4)T1Se9jp-aG#Qu6cZ2bNdChhzOC&OVO ztM!)_ypw6MVOR6mLm$o5n1S!N!(0-ity-q;ViBNbc514yIY~sn3+5EiFjG)>WU}^~ zpHjN-HA-+)R6)Q-zosqTdpa|cdX2R?D;_*JPphjnkLC5%&RTceZk8(k{^Ov((v0o( zgtxuEij^ST0;Mp?Vq>;XiU&;<2`ScTnRJtx2R*xxBcKFWPnyH)zgv>j=k z$9wVEaX$yTL^*C?V=_Y=;yw>HUD-KsyK9*JLmvZ+fCV*`k>~D3x1OPCj!Pj7&*aO} zlLoiDi|4QqKM|gQIrIre#Q9Yqq;!|ogmt-pi}%`OLy6VlS^ZtRDcKuvk9OD!Do6dD zuUoiap3=8liAAJeIF0vh&GX0XlfMIO*84>lDf3KhNUY_@0UDjPvTn`fiZ2mI7k`r= zeZU#|A6L|$r8&MlrVTOVhZN6$tL|hq#~*z0g6+i9A9I$>?J|Z*#*C+qiEuP<=ijy5 zy4jyTT09_SRdcoMv;a$-?RjV5l)eWCj);*iy`s#f!Xitv)8K&~m1Hd&ykB0W0tI!h zNx(LC=Pvk&n$W|d!LGkcLCU|P1nc&yGJXL*tyHf{FWS4>F2g`58S zSij1l^9k*fo6!D;za0+N8EyHg#2gPHRx?W;)IC8^rDw# z{(r0$Mn0c)JV!d@s6YMUct6!g?h2_QU??csFcbOztIHSVwnujW9 zRX7d0-r5sBCk0hC`2KTk4k>{gHcA?HAFD!ZqL#ZgFZIqB8>V0lK6M#OLvF=od1Cng zuIgvXc8|`{bnprrg-0fn4R)wmyeG3xWs-AUx)#&<%{r&ZgI2@alSCw%)+TJ>7}8uwm>ge{)C zhKt{+c;}r__j6ansh-W2Y*@NNRQ(nb=WE_EGyTPN$?L@|jZvW$^Z&4>f(;|A8m{Gt~FKZX0oFzKZZT0QRG4i`Ru1LTe|Uo*S_ z!OmaM>zz*|8y)=oD{1Y0j+izzIo`=K>ykT?2Yh2m;7K?ahKF9PXP=H{3}aJtWS#R(XnA>JN) zf9i<>A#f*o&yE(R!_y%C!&0=Hvq--h-LitN8~+!bl6L6+IozE&R*9nGFMAZCSBjjYj{Iv#H15d-DbOD90=w z=mGV;KO@^GG!Adz)(Il%4j-GIiiZsOQ^4yU*`jxG9I5RvIu(RbS^%@~FrU#+uy3Dg z9By&EjE6f}Rlj_HVzFzp9xJU$$$EAf54k3t+=G)q`hn7t`HW<1XZUXi9GA<5Hisr= zBZXFf>RNgYx}U%cv{Of~Z^_2cyzZScTjwSOJ}rR_!v{2LR9R>h9<~zbK9WO*hh|%I zw%7SY9y3!2IOWk&C)fPDN8zqQl3!oR#VQGEqtXHH#(|qK2x_z(OdfYX^=CC#v9Q8( zbzBV4dx*RpJ-HkQ3oeTE>vl!CD)h~+%T73he;e!hBZ(H`wig=T3MSF)Gtqa(u4Hzb zUV$Oe&0+F_wXY=Xy04Q9t|SUn%ej*AxA6DzaNr+4wr2e2(Fe0%dA$>&D_fwH?Bu{~ z7du6--|!w3A62)vVEB%v)Kqi46)`0s4xHKJv%OcK!ZbuPCj1L;tT9yKU8hEn@^u8n zgVOCzS2haE)u`L-QUFskL96>5=whe=x)@MTVZmJ0$4Y8h5f&2U2We;z^jHj`j;^>m z35psi=2jNiZq|U}{IYbg66)i|>LqoZ6d+6SQY@mM`gDYi1?~ibZZ~L;oCH8i4QCnS zcFS%?dc8CX(;s=r(Erv{VOJ=87QOZ;6LU3KIT{*Vt=VdBto;S)-#YUR`Fj)@eHv$k zF8#E{p{tMqm#A%BCBJ=jXK2%?-K3JX$G1eFm3b{9ofs_N!u)sm14QK!mp~D-(&`hw zs6E9vMxgHI1M6?~H@c7SpP{~jfl=mmCY7t-+_|-k79i1o!a6OjzE=88Ovs8EiiscI zNO&{v7+!5*CRDPzc_zmcAl(=rvmZudqh{(>zLplI7(*U+Adm=FhCL3zbQ!|^@Uj-HnOSF0_$@cTd3m6UGFSY&#O?jQ32^g>aPK|?lc_puc9Gs#;#Jy1i0Zh3J?%%G|KOMSo_wzanI-sAF(vFD{qQ}X26(YMe2M8|jFLKp0d!lo~& zJr?~gU^8FCAW;8auinfET@XC}Q{sx>(zfU|iFYf4HSIReIO=b0R&|eaeR_f@j|o*V zT+3_DW=JTg0k4Z-$5!v=&B}uMMQ_SO#&xYsiM4r;fo0dzAJe~;lwByFQwiW77^lyW zfNQg(+>A+#bmk%cx}E_NM0TVTyFf|6GA4NWR%STwuykUQQ;^WV^!Lrm!V6%SC7mE{ zkPGsH`xVttWelCnzpQy1X2Sj8xt?_B4lp033%0ad*^BG+N`pb2ei1T#kj_>t;4x7* zrMfy~04KYVe;m46K)+$$8X$Z*-*3A!+gf0{Q8hitIGE8k0i%&pG<<G?pA`2&|0KKkyc;!7{nJluvwb1BausIG}-Y+INR$UL7Rs3eFdGBj}_2xs01SD+tX!g{g z-oOrp&=F|PDUw8G7B0)pT$LSeVp?RdDu4j~#pi%GqP_nS)#=l=GX{ zF8=X;1I@*@H=&>Sdbv4~mLpBXR=`wk9}wLJY;h43@3SX;mnMA7q~Feri^@0=hC<|? zX;^03@oxY@bVJPW*WBf(V!D&)DMOZbQgX)C@??U6;1`Q(cQ}yYTUa z3LQgoAJj-7O;Q=<#j7Bn#sEwt%vUaOlgKkj`AV|OUZmLdN z1TYlj_v+~y#~IHxNKzDj=2U)VSoDH9GxFDD@USwaS=kF2@coLBMHt?b%v9r<{jmquqWXB523@#3@>)EB^~XBab<7`K=^XX zhc?bw&%SbF;y%@V{D;Zt>ln>1^hKU*7k$S45fr&%L*qRdENH#u+V;}-%b=Eam+!vq z!>Aj#rU5DYmF%VSyetKBJibiDisoy?a)mT2Phu5}kPUvS8T9WIE*7h+;VosO8kbi8A z_*F-Kz}& z``}lzV#OoK)Sv>Sa3it7EoEsVYruvA^iy*`aNUs>exAPIf$AUWYpZfUUg5CQql0Og2|7=J=bwxVB%^btmXI1JzFJQm`*ZH+M{HN}_ z0d*%axtRYz-oMh_1zm0JQuC7v6K`M;@ZMCR(%&szb@jdTN$GVGGhw1XNOP);>^LUZ zjdpaaujKtjS8iR8NkEwewW;!*!7=qXRjD$bgd%gP{H{3WvW}Gkd0@tNNbUAhC*BM`9HN;+rZRi6O4cTr<`{vE{H?o z^)poMCg;48k|CSpo^M-CgTY;hW{}`#?VQ`Hk|>G2C~RR-phNicb(ZMnJ#ZDMsR_O? zKc&@;XaCpKy9a?lXew@T(9ygZcM)gzOlu_OceK7MeKE9qOHI7mjgICANC7kf2}df{ z1A(n!Jy8OQ>fFS{M8hPWpX9(CFciE6e>axQ|02T5%F5<}XU_9&iQ)gC-98k2^Nv>Q zA?FfFaan}-e|dM>w=0~>k-r|Mr>FmoaFmmkA_q<5jt;P@JuE>d z7hLLo4h`4M-HUn(21X28xFiKNinkDxFL$OiCmTP2dKHTNPDpST-}pJ2AxycKq++-x-CM2FO=|I< z5PZdL1Q$lkwoA!|OUZq%2hY3Gex#UL564 z`joKEZcHVu`$G-X$1p1|nY>Ee-kl@x^~01f%~8zxBwGVc3??5@#bX(zDA23(1$Ad0gSe77`#@Gi}C9TT;e;-@D=QT1-h8_y_M5i zDU)yBZrRbDI*g_lD?cuiyC@*Avl(h-%yZKTa${@U>MrC7$}gNXjc$wNtIJ0K-jk=`c6*0IA^q9ZLQiTgp;to&A z0#$Ff@WCX>p}f^rYv$%n=T^ps*f2pW)1#60k`J!G?slMSzH%_myW=-0ml@6sU=BMo zDk#bBTVQe^ROaMZOryW7264GC!LIeYI=w~^v!ZBKaUTK;Og=f;oDjq`pD1qKqqg~Z zX%oTw|EucE!=dWmKW8%_=`@BFYA(zkUxRz}&XY0y5*iR9krPK=}^qlu;}fWZkQ)Ve-i zAUCwR4ngsutWp65+#F5~o@Nl*QKSXCj5cx}W8UO=(Fo1%WxA0%G{+u}2Vd@~XByhC&+wC_I05>}M zBe5CpAq2e6rr9d;yOg3OKVpkuwNLQRjdyN`+(gLTuk%Ocqft6h%2E}$82bb{DV0k- zxS5dX+8#n6>txHeJQl%Pw0)>ky^WI<)C>DDmxXUhAMcPKi8O2fo;=FLuIin0iA4r; zdN?1cs&`~7LFgn|L1#_b=we5ObErWf{{(Vg^<3EUASKDCz@-cTMKbq?2&lkC9un+NK3YxBjC zIV!18L3V}MeT?s|TvrpF1i!m**@w8eSuSgsWlM2BrFnm*aqUbbs+&&q7x$;JrJ@V0 z3HeC^x(Mg6%fdQ1d@+tKtE`q6h7vf;&|@);W2E~HYRvig$Gu(hMHvM1k}wjK(} zJ7OWwp*qL#W{jSB>pAD9iwWFn{~0YF2(DTcA___EhhA`~m`IIdBU2GqRwBxk8k0f5> z-6wp#4lq#{l}hkYA8vokcGQ1JFmin(?Fc_tuGtthNZj_Q^&m$Oc12GzHjU#p7aG#| znb8m?RXwdqp}h9q)8eYh?r@CC)rn~{%j7P%kP_cgyU3qroiTGiln5T4y*+4vxH0>b z{}lAzjZ~@QULghj@8l{$<5w>h$?=S9TragN!#W)@K8flsJGJG3;Nmj0_+&{7UoGif zP|0*WUrqW@&CnLoR#C$h-b*G5wVqmZTrM43qgC}#E%?@6Ydb($qd~u6?gkeVPl56MoX;XOca9p^1K&eFnsdeak)qdXavRi(~8;Ri9uyt30;AU8MDXR2Mg}J*#WRs zGQI8z4G3iVM7uN0G5|PLw9>$9pw!gePd1wt#^>-KZh9ON&GF3Q@k9F0fj>v6V|32J#zegR}i%C}Sy)NYqqjIq|DjyZ@#Ja<=uy$4mwo!YF|}Y`c9JORwT{Q zC4}qn!6rDEH6o;>&I`)JGeyr3+&QTPAvwHO)KJnPIan%2DM6STuh%OA)A%V4DtD?Q z>iY?|F$+Y!6F6&jRjYtF7$Ga@!|I||;bzy_INDjwylSUs=1zywqH#crrg!>4bR26(O434{ ztY&BJj#>ZW8P+jQ79*DJEn6SXu#21$oHNCtcmXCVlL2jRjXj?H(#o6iD56YEEqmh` z>Q!AMNKH~F^;YVT_o0s5*1-h5d3!IH?ODor!A}0@g9mgU!jUzZ0p^FOH}~Yy`~tvH z5(GUB$1!VcJf3K}Q6u|G`wdQ<&PXLrBKrve9;Zewr)yWPS|l`Z%yXQA00O-72ec1Y z$G?(R^d3cMQ%`%&w@@NFt%Yutl*{k$X9qEKwB$omy zI)xv()}!U_Q)@PIUeBoR>uzQ~cdp-~d0g)guTG!%I_u3FFBxHN#8sVuh;Jh&&p1VT ztj#vSAKW(N?$(O$QZ{E!<-;Ib-%o@0mYmo@!e%OaGmtx zEV3t0H@o4zdvh1HYy>eaz)h|ye9*8L(R>;kg_FKGF9#v-9X=ta&Bil1$*WV_ueQ}%o3_CVvvb;4@ zvTK(y0J)or^Tz(M42hd_+;IjEBiLZWIff4JVwn`|r#_Jtm(4_j>M5>zg~7UFera^R zM>Q-a*gs*U#PN!x=Cfw+>YC85>)=RX0hn^kdS+^$xl|{6V&S z64GI)BzPCS-0pgt&1>7YMSx=y!)~AOI{wn1h?M*Vkz(e?NCg8!O&4w{MdQT?&&+~I zrEg<6avd%oOnG*XdtZ#kc}zZO*aKn~C5&v{Q~@SLx%ivN`4#9yif2wj(g}Ti8A@rZ zwh_tsWz_)wcubW{?904n7}Qyv>GQ=OtE6pBZ<)yWyrt%t?X%}Yl1%oTTMl!4@6>!p zS992TD38Q0trE0$qEY*c6Wg_GI20pp;Xf~e12M26JC4QJv?sBTTCMozm((IXi(b~N zF2D;lQP=2kQ zr`s+W??~#@Y_YsWW?g4qRvS@Q=L` z^%xiy;yioWr+Tj^gKv`01?CBs(LeWZRzE>&NLB8Vct(_Re*@B)2jcriFB65L*1 zF5f>eK$Zbz2AvC21y+hF*w9n8V*+B%Y&EE++5`m1=IOw|7q%4?6lOYS(rO6M?zA@R zu6_d5=}Hzx>bO8MVSPQ=iuXG9SD>9eFv*~&wN(RQY*Lc^_4I!R4c(y8qkGrH{=xAq zUIN{0@%;apLqy+`omC?XsrEV8^rIaK)sic?4b!H~yfdKeHZi0jo{OA7n`0K;7J-#s{Mp2JVw%1fNF z=7xVG%VYl9o_dwOuYON#cKr0emDFDb6m3tOhi7GD!vlbA{&(T8d(5h~9ilS!)Fn5q t(*Emm;f@4fW$WY&LG6F4XU3RJ7PrZ%p8NOM8d!j3X7syZ)pf7<{{xekMW_G( literal 0 HcmV?d00001 diff --git a/Images/incremental-search.png b/Images/incremental-search.png new file mode 100644 index 0000000000000000000000000000000000000000..db55c0d51664239107e0aedc42560b66ba4ee866 GIT binary patch literal 23056 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 VTIk394{&-0y_QpzEt59;@PA;lh%*2H literal 0 HcmV?d00001 diff --git a/Images/keyboard-pref-pane.png b/Images/keyboard-pref-pane.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc97226c526777313d7bafa4bb84d9aa6a04c07 GIT binary patch literal 55874 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 literal 0 HcmV?d00001 diff --git a/Images/laptop-kb-fn.png b/Images/laptop-kb-fn.png new file mode 100644 index 0000000000000000000000000000000000000000..da5ecb188848c04e74bd1bc72c67e8e83dfcddb7 GIT binary patch literal 26979 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≺Yc#X_Z-M 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 literal 0 HcmV?d00001 diff --git a/Images/laptop-kb-opt-shift.png b/Images/laptop-kb-opt-shift.png new file mode 100644 index 0000000000000000000000000000000000000000..4e47d4ad1a405d9effb32fbf16a46d65fc93eab9 GIT binary patch literal 26733 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

2)Arn7 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 b_x}9#EluT>sKISuaZgoAQ?W|kBJ}?Q@&K%p literal 0 HcmV?d00001 diff --git a/Images/laptop-kb-opt.png b/Images/laptop-kb-opt.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9cf45c326c9f1a7e51cfc824794b9c2b0dc0ea GIT binary patch literal 27324 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

-lE_$b8j1 z(@Y{WQP>WV%I}Ev9}}h2qyQbxHYwgOnWfq9PYW)(0T!4wq9!@bk64Uky)um`Rz`+U z-xrEH{=PJ`_t&ot^)XfDb}Mp&&SJ(_+C@z-)^Nt1D^I%0UdX=^jK zNdinU%RLr=gmalimZmoFJv{wXFx&X;p;mlN$^CGq+5(_OHNVXnX*4sJpw?>YLa1A$ zglY+}-?z=fcYB`Xqk+YJxy^n}^5Mng;sUSxX61iB_ zsZ#+7R{SAchH|ts(F7&{e3duu09pL&aIV{|oLqG@^dk(mpTxpSBY$&i2_56>|Y2zz9mQs90t@dw$>*0FU(0molaB6SV;Xfv}VeXZZ4G+y$0J=BAnuC-_|?zsAA@TCNX0Gf&2HOJ%Y zjpq8%cD@BSI8pG7>^;y$8B<>`a{~fBG7`hmcr2`Y4)SczKAE%HmMQ+rJ z<0qI_^^^D4A!0Qry4)ODWVy?P-NsDyDm2woCiQ65D@riZu#zQ zC{{Ylz3oApmNz#jF;U2WuFaAUGybwz?Smt%d(~q#H(O`*?6q~b*+1T20HTIZaVY`kA+RA zk8!|$jmYr_Zm&2VB!8QFEe7%2bsXAiX9px(Yl>5P%VkRkUN$wYi3JJN-i95EjAyws zw_HZ9Z3vHRTm>+r;W) zU{G|LDFCK)c>oDQH;;W1ysdeSRFqR##*Sr3qQ5?N8@h-$y3XmB)Jl89pX;ypR$Y#A zS*>{~8sf)FSBjx=6#*^>UVg#c*#J%y?sk6FJRV2FFI(j}eB<|LsZ45l%m2DN>TQmGZZD z;$2ZtfHiw18xQ^T|6s7O(YbI)NnWe3b{sCaCVeXzlw>jWRr8PnRasf2fLqU4Z5m(Y zYJUZt5xqmE?aMdSM0so!{pzQVY4f18>F!+P@4lT^u@9%|1|?brMq{xcm=wmp=fufi zp{vv1g*VD`tQd=Xk5!DLw+}TRmHhy#p|K@OU1?{(Y(^;uyWe7zPpzv=^=K#${LX>c z8#8WuMfYnR_>^Fm_C?rc$Fk7I{D`tfE5nhZ`ax4Idp$S5{{@q-{Q2eHsGTkQZTj#W z=i6vQm44s2>uUGVaA=MQ5bdVNSl82sN~=y};A|hVB;m{sq7@yNbR%N;J^kVHcl3n5 zb+vEtiR3;+5d(=7zsM8b8{JwhS2Powa4nr#0IOce%0mLq4VW*X>DlIwUxgSQN|(h7 z>M4Hb_T94bG*vwo=}VP;qOFR{pA>#Hm*i3T7N2xOE>wgqX~V`UV989^r7JJxjPDDB zf9U0%uSBJu8ai=RdbMRGP1Wd0ESGoM%~+n+Eiqwz)is6!X}ezF&|S)}cbM3DV@m8% zymrxEWH24w9 zwzuoa@OGPsM&vAth6FEQxNsmh$6M6!dOa9&_#sl3^V^27CDRQkBjY;ZyFTiB01QJ5 zVEX5`5tSolaFlhi?o*KL=;HhpBn{fZzVc;GL4v*`|1GI>>=Ds~C5M0fivjv$Qt=B* zv(-rytwisYn|r=sT#XsT=+23N_AINs%H(vJ{7t3o^*NobssXVBu7q`xYOXndXg<^Ga96y%MK5^xBFB;%v=-Xj0E=qBsn&%IOGP1mW`t9A_>x=fT z0@7hM6vX#$Vn0WCn%8E*_Z#Ps^4n`&Ptq7%WaNs0a7K1$)?+c$$>iGFPw1Z}`R3{e#+jGSLSOj~ScRYx;yvW^ve#OfF zCF2^_Xyi(a_H#9x0@4Xy#`O+7U-n>c7O>fgh?}2%^tvB|-xE|_1RkPqEa&~%1J;(B zsM8LS8vOQF9WY2Kcs)W3qs${B`^EC|aoEn)Of-*dSnF`ZfA`OXddc3IQB9J&?aRt? zS)P{F)$We|u$Gk`1SLl}LgwRzjV}yobYeN3<#ken4D}BOEib;-l5g4Mps_zshji4^ zarum*7t;Pbwny$rk_a4C>>V*ME<%9~Fm@9lB+%A&H+KkSF9@^1FW5f_(umlp7*;*n z)Qqfku70uz0B^TgSOmHpi&AbriQ(3dmg?(>Rg?Ms{+S@_sTvP;S`e|5Gn1oot$M9) zo#bc9B5Mw3+>Tn2m&=EWWDm}dS(}$k#{~gxcFA^ z^;D6lY$drA0QuH|H$8>IR8yW;r0o|aB04oE&{=SH_LgL?aFE`7Fjb8ZRwX`D8)Y$P z!rb5#z%CYpUOE~l#D=W2O@T8uq`F<<T8< ztzM>*LQ;17fAud0*VXZe3@VvO`M|r1WC5f%$=%Wf|B1%j3llwM1^^K}^*}x38@gMEI-yE#3YDLrsx3aUD(wYv$6+KuN zh1Z1!&Ax9qd1SyQ)n}=%o3w|xm%=%~Sa4w9bU+Y~IDoxm6;JrDj78+;5ExWt{bv8I zWYrm{zsCf+l?~DRyFDFQ4V?~(GSc#3d}}40?hqQ$6#p2X95Qvv)BT&H9`Rhg#Z*-D z^qfnzw8L&pQayj@qfeFx6j_%rv@pzk20R8|9z#5X(r@dnPb)3^TVH?h0dmO3w_IgT z_xhiQBdi}zMha+Ul#mX>#m0`w5x7OI$!_n4L!b)aX}`q93eazsw=1cCrL{>aiKIVl zZwN{V*u3K?PqADm>}OX3M=D;TgNVnh>Rz!jpCT9LHh&H6WS%Dm*lyoYoC)g7(lG>Q zY3waX`cak{JscGnC0exnznacEDypb!<0=ADqJ)AH3ep|YAt0@wAPgW~Lw5}^AV_y3 zDX4Te5BCPPur=8Lph@_vs0eoFgd}Yz&eYLN z_XPNFA?HbSJv4Ho9qXXHMfFtS(|0kt$JBqHy!?SSu~Z0IROuXFwQm6)8h~3{nJYZM z?U46R9VJ5!o)?ZTeux)7Rkg`})a1GJ(f;WHAlfHlxC|Fl*hlmiRq-H+BXP<|J zstPh3shq=gRn^EDUQQ%=RJ@dIka!%McTaJx=2#YauMNJz=h0pjQi}Z^n%Bqz?eO3- zIpqOfsJD+tF~yZ47`r&)xkBie$MVcQi`BQ`;106?R$j?jSnwQWhKD39v?!`F$}(_G}!azKMjd`OC|+`ydMo z=SRIf{@U=x0(}tFHFhH}N%fl}mxktC2i9W^SI@l6B^L1sLGrdPMIbRF$19~*`+l)PX8TBGKZM)vH-gqXgF z5iHYDLU%vk{Eu$_3rQ@_{x-Rk!DoF{A+2!Ru-o+U%)N7a*EUbQQ1e~*6JD^|&U2{$ zAmTZcA9(R82?dT;t0dXps9vfGjm%?@I`tbsft*6fh%^J*gKfDw!g$G(BAg{92#?R>E|1`ev6{!3ZUe}hS^ry^Kt69v5vwa83DO4mINnG{ zb0V;NLp*H>z=EyYfnlQJ+2i6Kr^J?MV)L64XsLf-L#JMcMw{p-s^mR&Z|TsM!h*JF zSN--xC1l02c8rEIWXxnpUc5CwjE&`t%&UrR)Ls+tTofd}5_OTOdJ@epk6#ft<&hLS zr7OQy6j8TOU3STcL5k&!k$hn=%W-#o=DxU^LX<4w?sFwCBjGDf-r&xsO&b?5Bni2) zLj9hlfx*Rq_U|)UQ33e5^ch1vX7m9J{`Us0du{By-yWPFTrl-=9TMy(pKX8H?81Ly zL}97~C=xK@7raYEN(ng&^VkuUO0~PKny?Hkw8HddB42bbE!-p@igh%hTAj8bCtGn- zL1a9enwxJGJ~1K0bSh|Q-TO4F0wqVzTJNTHxIa?Ot%n}lBRvE|pno2kZ2=+!cuFyB zy$LCa-=5INq7s5Fr3U*oWr_wmJEmi!N3f-o5LQuHm6wAWEhX818{Q?oaMy17`+k7M z{p)kRiRQm{p2!=O(INid4;hy%g z3svfnXVaCk%in)uHK{og6#!kzmzus+m4*Qzt^#3-T{q?eE<_lMCK%V)`zUyQ=YVVk zl5(sFy|_*v$bT@#ZS>*YtIw6tI-%)5|0+mL`%=eKN=VrF!QJx4bS7ilipjQ=jC$a= z#zxMjP*4hwK3LR&06@zU## z1EQ9L?MOkU5jhBR>M9;|2GgtiPaZP!#WH%z+1m3YO+}UsA^LBd$WK&Hh32S_3 zT(klq2(k2q1?f3f!~Dbx6^zVTO}f~*yeM_kvqn*fQGjLkghl!rhk=eBs+FY4 z+R2Djc}!~lz|=Qz5gOr3nI14+0MK3o+vj@`(Y)*RCbKgR{E+#@p?s=|j!< z_)0?+=f)noA?(gnohsd9Xzk+#VGTfmg%8d0DJHQ^&F6-X$8#+!@Sx03xAw-}j!2T5 zv5Bg^Fyf=ywW8wAAf@M{7bnpfuxncD^1sjA@#8(45utWc8(ToDx!IFP^4@M8OCeKm zt%>(fm*@~zcwRYwgUdL1mE#{m4liXDk@IQgdKV%uCcf*FLb1I`7XCNx9Q0LZYPGEA zb#>b`YZybdfg?Ufgl}#ow|J`3U1eIDO1lPch6Q9myi&>k6T*@JU3eZYQ+Ll# zuhu8NTXO2VBGuFH`w5|8P$XQ7@afj`1DCJuZLZ4~N+RS0`knl{dr8hz%)M2U2~u2zb8wLY^)nQ7Q=b*GVA+jQ1l z3u@4dQqa@ubV>94oKV`JNR8}7<67yO9VauO0wH&;lQ4GS7xzmL@)q&_o_$JPC6qS5 ze&zqB`AqDr8L@a4JS^wGHzwtx$jY0o(+{=c*}9B$tDg|CDR}4*CKX35t`k0(e@^mt z(}~?(AeP5)bTnD3=gXDw{CDlhmHwm?)N#P1q!XFbuxH zU_^a<(QwhMQ8`d#q?*~k7+NuyhRdw;Z@^pBhd^?i`+AnN37`fs#vQ02-n~&}Qd`Pw z%n69kZOLXTn4(T=L$#t%{)`OEDm!S1WFV%E^UV3TbgS%H6(k^$U`uM}YVUw7!L=o# zaw)^w_ANq(81e$!YWcrt-)a>Nov+XCmrVeEomJ)IB;&)Kj5tdMBWe%}!*c01W6VvH z;I-d_G~RTsY9=Y}>0XyvSAv`Nv1K8kpqn6Zr2El?qH-}=QZh1MuTxH+XksECgK5$?c%sA>Y zeIq08O~j5{OKB>}d|d;ksu{aR1DEA-m6+@($-%5J$m zRbTE=zYd+$4}|58<}!Q}aj!JF`bwW1K4>PSIcD5zne$uiifL}|BPM>OfiUx+Q=Cya z@|@B1CKJLBHs#?`DAkE>RzZ<-S+VjoP}ZB>Y0hJS9NXI<=0RHh=~*KQEak(lqK`Kd z;H{mcz{{x1h^4B`QG?G^H46@@)_>ssV^|Q`mhmFbR?g|@Y$}mV+f>(f&!CA0f+t=< zC8_r!{<-^i?p+=_S5e!k2P_P9>#I(OKd^8)Ntuw(e+R!dX*IPYtJEah?d53x(}5qc-< zX=zb+P}!}GLVaEWW)D<>x^`x5JI8O&GwQO)u`8Pm^uas_-?_UFwk}=H*ix9|r=zxd z7|jlPLsvzNsCCu(2I>P%1*V@lV6pC4cp>?jN6X;HNK>2?Yz*&hrEZ(DsI)I&XLRB_ zysr;_ntdnAwg-=XjnBP3NJt5&jU%2kPEG_9d-F@Rs^rVfFaO z&zlo=1To9qc8K9A%uUmzXD{9R=qw>gDHQ6w%GBI_(NXUgE}C(9c8dY6ci82M!(S|~ zrBEMs{fR%Y)#y3QKfIrejJd0`QPyauBLeRRQ{qmwBD((7Br02D1J>tWd0Y`q>E?Bc zL3!h8qH}ye=)g-5dV$R+_KQ>75wEY&N@_pH-vk8yZC*?@1o_Gu+MM{8XOn99X$Mx- ztVxzUy=@wKUr@k2#dYxJua=AZV0=d3{83ie3OE&Z4ASwRh8@%QTk7|HU9X_M4vojJQGZmF%_}!ZR)g4-`4_knm2M9 zoBZzO;nv)BCqxMFr5^ol4hc>23Fg6;K%14fT;}^8ox|&5wB=R+UyOQGJY^*#K% zED(2fBQxgwbyv`{PfKR)(S;+yMR&^m`~C}ZXmX(dNxZ*nO%x7j9`+`B8}I%41$gK(sF^Vx<|fOF9J*w@Pd5cyPg|V82IXfb zZ1zZ^LzSN8%-N`(dHzZFUNq-7^A59a(v}uJ8d%{<*Ho#*!@m=EYzZxdJ&l_B=lT;+ zbbH?)Vu$N9mXCl00~t}F)Kz>e4ShSy0*=%@4H`HY1W0^I2;}w| znkPY4pA4b`=uXjMM=i6e7`IAY00Jd@y5fsT8I0<4UxE=aH)~&^%I*WOfUMQ!fW40% zwrMXq=V=+h1dq>F<*pZ-5F6$1e6x&~{nm^Orv&KTKZ81>S&Oj?nzg9Dbg_zvFYblh zIZ9>oDri0_FI7<1nAF8<6C2BHb!x|3PW=A{%*_1*;TjQ#mce$1VDU0((smm^w}-0A zGdz|*EKe^I9}cgGl7%n%|lmQCZ!p7v)3qLwE?J>k%Gn^o?D&U{D! znXhbDVQUWR?)qsthAF(HeF^~$LoZ9(3qPB9CIIdLJk}BWkU;V}WOZ1lZ^rB`Dw~%` z;zitlO)8e;9~cq=~iW zP2??0_3T+u1dX;ON&cUVWnQ!34oJb1_d6G3#OOYYO_&NU1PzgqDe%bME*@_?RHlV9 z9CfAq!P&R7!VLSyc@~n-U{#DCNPTVzj*H+EZ&)~u&kO%G9K{sg{6mtSuF-vrNlx~I zY=n?y>0>f~$Y@G^R0xk?`A1P{ZpzOZ{k2t{`_|{_(o4;aOzRgKSa6)g$zoDDQO6r@ zND6c`nI|z&NddBeH!mC@shrhl>OK96pg)6u>Gz`xxO!X^`t4)FxZ-s_gC&$eO6V{HVd*QwpP1{Ny_I!BI4(|q zUm|34Z+g;k+#=?9DI`XZL~##mdNxRmpQ)FWOo``{8gTUGjP!t3`ELb2W)k% z^rVreLI!jLoeUiY^bwb`;(&{l(_{4V6m#q^N$kD#UoDy!pHZ=G!dMLoD>t`FqZUV8 zPHNx4<%rDX_L%meoPyyNLrm^UIMKv|v|4#$HJ%OQy}My z4~_T6VaROA&I#y|G<_OE$zw^F3vh1RQRE@Duo$u7FGe)#Vr#G0X8_MWjq|$~V zuBG7A9r|(zWrUoEiRTwt*dd6hk!Sjl4C#024Em_ruifp;Lh`7QA|J1lKAKqsgVbj&KupIcVp;eoonj?`rm6@?}tpkqHkSM z^~kvTOwU0D=2d+#`J)ErDZz3OLGjSs9G}?DooRqCpR!D+NRkOD-a?b}bp82C8ggNQ za~P&U?50UDPcx0R-Vz)T$PlFm~<_mnLEZAuQK?Vke+Yy$w)^_p`gZ{F| z6$*RK$|Enj{(4gM2R}HY5@15Lab%v}T<;9TE3%Hgd}rut))}BUPiWPI)Vpq`C# zCh+IqM&e1-qN>^AUcrLO2!xJ=7|&6;l<)M=%awJFXS{9ns@wynWGAv_TQ^N`2v*}x zM@{M1Q^$7SD=Lt+f)#9SojK8cOE;`l)buyiYj5Y`vz_JcE`EHQg}-Dk-n^esg@3Wi z!7LA?6U(+fvW?A3#x=40&w6}HEGzepl4aek@XnC4q!11XUBd=r(K?9l7(u$Jjl$@z zhNb`6j@RikH-J6P%C0jkA2_}AqdoJ^k623@-4&Rd)3VDxvHZ>%hu<5irF`FjmX1Sq z$cyJL|EYg9B1Z8x{#T|c$ES6-471Pg3PUTQrl`jJ?bOPM3LKwL((Aam(fB6prPHT+ zKErnk3yd*aqLVNHHRJ`zWXwvFx#|?vv*Y=A4jkX{lv(M^*YIk$9ksD+aY{G4ZI8d> zHU+_pXSRE8ccqK3LE?pFZWPaW&(B2crrEje20yWZq;GL_*bw8YDz~2_Ho}wbe%?AV zYo%#xIKEfEEuAg0EXpL--;!=Bb<|``vZ9}oJ`&B4yZ;}j^(FZ3=Imx8M>k3KW<@O* z?9O)c;p+!T8c`|IcW4QRW3wxhb@YTU75@JHg)7flUj6|NU#AndsGjtF)Vj48)tdAM z4Ru9f0yP-&K4@rk*j%{^`1IjQl%WX&nbR^{gL)OSKd-4zjryjXPam41v-O1yk$jcV zaRMIaH^}f>ldn0bMh1g~!)^H0NLLStq?qirbdG^146n@0r3PNCnm8BUv(a4aX`BN- zs}WCXT~T=Jrkcdg!I7_9VGso!XzED6nKK$zX55|hUQg}a>@@$pn)eyU>a2b$_yv=H zOun7*j0AbueuES#3NrY33)>$*?U<&KQ{rWaOF7&gP6b3rT^C%6&qw^DEGDtdn^F1J zCFf>P>%dl|Vr#~sCC@qNn(tW2JGP$r#gmb^X^bS6Nwq{ZwG@7M?FRxD3Ku-u!K&>| z{TJ==r5#?o0B~`zqwZQEmff@dTo!f`X_m`SZU=%^NQxY!P&_bINq|BNEH{i1M#|RA-QR;Nk z1~i@)*{c0Z5Pw7J z9~$oLO!h!bQDA>IK)m5M1>_{uBe!Wlb|@{mbK|pKo?&UA*<& zk8hV#XTYmOUT!G(Tawic|J7CxDb1WBj*3fxD`GD#is_+MQ?8}ZVy@z?>fJcT;!@ma zU#39;);ElOl|muS;%2gC4@Abw)~H7So}%%Xvl2xe^ZGvz$l`S2S9GT+P@ zXd|15#OH7SNYA`C`Xy3dG-xSX3%{_PE&m|_E_mk_oO&5UY972@^nx_=hS-su$NFN!dU=91PjnSYL16%!zbtC*u;uA9%PgXV(T0g@ z)Ey=URvYaP!;XpeuPe>xF9kAq;64T3LW(_7x7iwdp#(;5!8xsJ6H!c=w<|PLyV7ZN z;)>Gkan2olSF~#BDG0AzSV@v>Ue(@N#&%dW=&keHzr-ZfyE)z*+b>`JsA?+T*o%*` zl>P}wOjxLE0h2hIwkOa1ewBc&`9Vex)vPBb@HVvUg!=szuf3asc7DE&+Ws`&N-*m*jLg2wHqJsG!;E#6` z6|!*FBVcq>`mG-1%uuvQzR8GQ!r`t+S!8ir{+7flqDC^=T57c8kGtOA>#x2aTJFcn zGpECsd?)vy=#Ud4JiQjXhZlW)~Pw{E(0VOL6_7x|_b5|DkwvZ+)1hNYCzIBlGPpIScl(~#kn*T5agJmRCnTR7% zEkq8~1l4Y66$&-A1Ou|2la>jo%ggtI3W)YaVbUib zbKjw&&$W4@-jsf6mOV0rER-F*1dx4=ZHhKhOKM zLOVr}MklH48%`=Lm#wXlSJGd_9mTu2A`(1&I$aIgcg$cNwa(aGTNY6=-L1P}iVz{) zu{Pw4?a31oOH!ibWmJ##N5Eh!J$6$THBvq~Th->=b?d|%0NB%3Ni6&AsPSm*-}mg? zUBs`_@*Ukok94nlbT)46NZ2=eBf9&b@c-}+W+q$07gy*x7=Mrt)Y}M|CcaA;$ry2Z zY^ho;?`yG1sz_sG%AfU3ub%h020r*JxpO6*N*%TEECsoJu^-2zVHC4Lh^eP9mmV+k z9-(d)^AZ*jM?n26-+jk+y6TTcC3TAPd@|&U>Wo*fdjO(aohJ)^nZ*fyDPhSq$m0j! zFa9PRqf;sNM+yZ%$oGk+U@8-IxW?G&|q>O!e6w_U*ptMELfdJpTvM z;rwX{GJe<&`Pp^TjwWmN+Way!e>z*S($i>6 z1aPgqZ(2M6VKzo;yf&HC67n^CnVPP7J>Ne+pQ=~%9xnvt)|X6}+NIg?OOk~}(P-5- z_^mTNaNHswf;Bp8s+!~LDX&;H_NG*aPQHAlr_2`FUkHimrQv4%X5ZTI zvu2lb{iSe2U2~fs)50#h4oI9}!|i;w*M~RPUrdH0LKpY+h=D*xtczpQGvUe0_fNbE zN^%sNxGw!2;@5bLyT&wg7{2ig~UW&eo0kCwmLK&X6_ zDHnv0yQef}8}>>i3Z@47(umUOt5PyvVcX#-y9wDZ8nK=SzT5Hxv5y6*+6`BWMC%+a zv*qT`+#>9CPHyIp7dGf#nOsv&6*8DFCJ~N@CjwMeiEt)8aG-v(t|0C){R5 zLbj+-vmF!TkS!J74;|SUO6dfutE;2M3%8olR}QC5)CtLZtCmx!T+x5v`43JS_aCbk zAXloA(Fvi;+5UMf=b!xlZFF31-hL&bR&q_59E6{#`Ic**F^tXF>;PxyGv< z&Xg}rM>G9W!M))wzUTU=W>tcXBc#~PJBMrV4*ni614e=yYik8fKo`Q!F_{C5orjuP z6Z_M7`%BZiHgbX`K=R4`%6#GI&uatQ5Q{}`6}QZGzqqMpZ9IzLdA_+lXU4`~4s+M*=ze2PV3?(O7dS^oIUG59dsU0 z_EW8DP`j^SO#o8ef&Ai2F-p<>DO9sBWxl`V??(HQ

&>h9(N<1<2z-RW8Wy!L*i@dLOm7nqn`>aLB1A5AT=F z81N9{N&BW8!=WaT7y5!>jj}WY&ZCcZCWnWQm^0$b4n;!KmBpkcHWvAsTJ-Cz@6)UG z|Fq?HxRO*Q6I6Yq&;$&x>oWamJ5?A3)pz&eKRmF?2-5Us*zTJVvPt<#XR-tdgv^cY zj%I~_4rC>eYD!2uIpoj)+?*_h&*rU(Oi~_VP^~y9)$gJrW$v>)h_cDaVguf8ZmR1n z%O9Atrtx7R&V&Q@ROYJ{u;g=oK)cM}}`k#!Z98HS1A+EpfLeUqOJ< z0555-`Ll%$LmU>h?{mScNBgx-rhVNug>B~~@fi096&~MC1_K8?l$4a#EA16go3=AD zat$clA!BAhAfN`}kE6A|T-fpDOg;0EXu)Fc%0@fXzsY^PJ(?Tn+pb{{bu#<|cp@!` zgAKu88h)3Gi{R}*K7)Gp&JLAr^c0T#vs|>#{O9$j!;=u)|A4uwzI1&8K<_W#h4{wh z{T%p5Baw**X;g_l;vw^gKE6P=0Li_ywysSI{rIkw2$TN67xunrZz z)*&XC>yT7s`a^IOA^g}6d`5f`5kxyXg4C4S6IOCL1&diK6$)9-%s%X&q3L-8ajFOs zb~VP4a_X6?5}7|rA5A^zM8#l3LY5OP4;|i~8xJ`=7_3SuHk`)rfUVDrI~_1x4oZudsOM;=bC+dSwyO){ZJ7AyURmXQW;Chv%u%Zp+hGZl^KIc#Tv-NCpH*d z5WpCzOJVo`3y?kxSwsG@OsLTdAHoCR&@K%_{D27H7?>PHCpQ5^r1+7(7h&AFIRo^e z@T-3OBn!~nBMd`~umLPgyHKNk2!rbpWzR&0L#u!@4h|H_3)##ZL2x2`m(J}TH(lHn z7yHB9<6tR7?T0$x7ydk-MiVIlz~oRM$28|lyh(vOov7Y%+dcsRu)lH4#Yw4FE>7(* z!@9==fNc|B932}}Lo@UeXx$C|+-_&@+RAr>%R9iFRd3%n@LFzWW12U{9freQUMRB#K^E( znYHy1K?z4)ZSCZ4_V~DvC#)wlIt|wD_c$_dyI6U!x8Cf1vv9T=xZdLWu+aex4({nG z*xpV|e10HHPEAcoNz?rPT|?Lpa;T!N?(VLrXn(dd=uUBl_hCS z@l~7K)G#>tG$zB(R4KzpM&?6*rm8O^KE6LO@qSO%AqRgULTkKuF65i!h5U>`JSWRL zAuppSKgpYuk&)t0LwjI%-r{<|qIWtk79eVDtTGK`y#1BuIaMa&2!IdzW@Th$W@o}L zBIxuh<8f+>a-$lbiNKW4qkTRkGU=~9&FYF`js?(vKq0(|Bqy5=Z&BN!Zv9{^hiB6? zs3h${jLZ-$8Jz}s&#d3**FQpDrcjypGv$wZzVX&)n{gYO#Mr1f?KY)AUZ02~Ybj4b zFRs=b=iS4a9a>dYrChl;Ifr=H^QA2J|5J6432Z~ug_Tm*S(UA}S@x$c9mZ8TsZw1HOXV6;KNhfiq z9vkrDGjqb_>vB^sZnkggk=Q_7Y#mf}R zA0L;wQ$Obw?cuK&G^-koWOrEFq6y^p%v%`DcxCw;fOBTngUiFdJ`A!03Ix|GC>P=8 z+MOhEeW7n8vVA%%to&={YoX1fF&YDL_$xdx{2DahS0lWKi^Jg{MfP{V|GKrg*^M7%@qYL$V7i>h6S`OGu+}1K$K#NoFTvw5V`PZo z;G{Fs(ooHV5%`Xyej?iEx(4sf-6B|uDvAOC%Vr6HHl4RRxv7k*A^_n1cJ0R@0I*pI z00dV60KOvtz=Q<=AVdrRaCxfOD47BPR${UeqTjt%PIEl{uq9syH?!JqQK>%3h@t09 zMI&Ov!KolH{vZ#QfCC8E*^bej&)nC|7Q7 zoL$5-oUWfWP&E#oo}_3dw!Jh?`dNBdc6X)R$hY)Gt#j`4}1+3WeTGLN9wU)_hJX*4{3`#oDbkPZu5hDX*kpW1Ci-`~mk4 zU)ay9%OQJ>j9N%3F!&5941Ud!!g1Vmb>L@x+X?P*ISk?1q*B@U6#4Wq%52-n?&Pw zv9VrK=OXm-boX2ICz63rqusKYjSc;Jo9Eynwd{SI;nyEwRF1rT_H-QHG?omS)*@pY zvQ_uJ&7PVxSo{Ow7MsbVhtg7YHxrnuzhMZku^ab*7}~`|zwz+Xu{F8HOwHXuZ7-o0 z1=OLIM_R($;ITxyxxb77ILSP@t1>6K0uZ`ab&UrbndNPTVz(GiKkta{;T!KSmP{lj zd)HDP%*3PBmh5^y`)4B-VuQRq>urM#J2#;j3N7@o_(@P;e*4Oe_`!w!YUA`Db%snH z$GC1Ia$4HKyN+(7JncG*-QC^Gemp~`vxY^VVF7f9)yCL`3f;C_y=JFwMdjII#o>vG z{ZSThq3^@Fu�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%0AOGKSsOYa{oyTXV%S`N#=iX;loe4a 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 literal 0 HcmV?d00001 diff --git a/Images/laptop-kb.png b/Images/laptop-kb.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd8f92514ca605f52660cdfde00c2b1d9b20f6b GIT binary patch literal 26392 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 literal 0 HcmV?d00001 diff --git a/KeyBindings/BBEdit Bindings.dict b/KeyBindings/BBEdit Bindings.dict new file mode 100644 index 0000000..dd7e167 --- /dev/null +++ b/KeyBindings/BBEdit Bindings.dict @@ -0,0 +1,69 @@ +{ +/* + * + * Key Bindings for partial BBEdit emulation, compiled by Jacob Rus + */ + + + /* Incremental search -- uncomment if ISIM is installed */ +/* "@~f" = "ISIM_incrementalSearch:"; /* A-O-f Quick search */ +/* "@~$f" = "ISIM_reverseIncrementalSearch:"; /* A-O-Shft-f Quick search backward */ + + + /* Select line */ + "@l" = "selectParagraph:"; /* C-l Select line */ + + /* Scrolling */ + "^\UF700" = "scrollLineUp:"; /* C-up Scroll up */ + "^\UF701" = "scrollLineDown:"; /* C-down Scroll down */ + "@^\UF700" = ( "scrollLineUp:", /* A-C-up Scroll up 2 lines */ + "scrollLineUp:"); + "@^\UF701" = ( "scrollLineDown:", /* A-C-down Scroll down 2 lines */ + "scrollLineDown:"); + "~^\UF700" = ( "scrollLineUp:", /* A-C-up Scroll up 3 lines */ + "scrollLineUp:", + "scrollLineUp:"); + "~^\UF701" = ( "scrollLineDown:", /* A-C-down Scroll down 3 lines */ + "scrollLineDown:", + "scrollLineDown:"); + "@~^\UF700" = ( "scrollLineUp:", /* A-C-up Scroll up 6 lines */ + "scrollLineUp:", + "scrollLineUp:", + "scrollLineUp:", + "scrollLineUp:", + "scrollLineUp:"); + "@~^\UF701" = ( "scrollLineDown:", /* A-C-down Scroll down 6 lines */ + "scrollLineDown:", + "scrollLineDown:", + "scrollLineDown:", + "scrollLineDown:", + "scrollLineDown:"); + + + /* Page up-down */ + "~\UF700" = "pageUp:"; /* O-up Page up */ + "~\UF701" = "pageDown:"; /* O-down Page down */ + "~$\UF700" = "pageUpAndModifySelection"; /* O-Shft-up Select page up */ + "~$\UF701" = "pageDownAndModifySelection"; /* O-Shft-down Select page down */ + + + /* delete backward-forward */ + "$\U007F" = "deleteForward:"; /* Shft-Del Delete forward */ + "~\U007F" = "deleteWordBackward:"; /* O-Del Delete word backward */ + "~\UF728" = "deleteWordForward:"; /* O-FwdDel Delete word forward */ + "~$\U007F" = "deleteWordForward:"; /* O-Shft-Del Delete word forward */ + + + /* These next few don't work, maddeningly. + * They don't really have a reason to stay in this file. */ +/* "@\U007F" = "deleteToBeginningOfParagraph:"; /* O-Del Delete word backward */ +/* "@\UF728" = "deleteToEndOfParagraph:"; /* O-FwdDel Delete word forward */ +/* "@$\U007F" = "deleteToEndOfParagraph:"; /* O-Shft-Del Delete word forward */ +/* "@~\U007F" = ( "selectToBeginningOfDocument:", /* A-O-Del Delete to beginning of document*/ +/* "delete:"); +/* "@~\U007F" = ( "selectToEndOfDocument:", /* A-O-FwdDel Delete to end of document*/ +/* "delete:"); +/* "@~$\U007F" = ( "selectToEndOfDocument:", /* A-O-Shft-Del Delete to end of document*/ +/* "delete:"); + /* End failure section */ +} \ No newline at end of file diff --git a/KeyBindings/Emacs Esc Bindings.dict b/KeyBindings/Emacs Esc Bindings.dict new file mode 100644 index 0000000..e72ae72 --- /dev/null +++ b/KeyBindings/Emacs Esc Bindings.dict @@ -0,0 +1,71 @@ +{ +/* Keybindings for emacs emulation. Compiled by Jacob Rus. + * + * This is a pretty good set, especially considering that many emacs bindings + * such as C-o, C-a, C-e, C-k, C-y, C-v, C-f, C-b, C-p, C-n, C-t, and + * perhaps a few more, are already built into the system. + * + * This file uses Esc for commands that use the meta key, because if the + * option key was used, it would override existing Macintosh key bindings. + */ + + /* We are going to override the Esc binding for complete, so add Esc Esc */ + "\U001B" = {"\U001B" = "complete:";}; /* Esc Esc Complete */ + + /* Ctrl shortcuts */ + "^l" = "centerSelectionInVisibleArea:"; /* C-l Recenter */ + "^/" = "undo:"; /* C-/ Undo */ + "^_" = "undo:"; /* C-_ Undo */ + "^ " = "setMark:"; /* C-Spc Set mark */ + "^\@" = "setMark:"; /* C-@ Set mark */ + "^w" = "deleteToMark:"; /* C-w Delete to mark */ + + /* Incremental search. */ +/* Uncomment these lines If Incremental Search IM is installed */ +/* "^s" = "ISIM_incrementalSearch:"; /* C-s Incremental search */ +/* "^r" = "ISIM_reverseIncrementalSearch:"; /* C-r Reverse incremental search */ +/* "^g" = "abort:"; /* C-g Abort */ + + + /* Meta shortcuts */ + "\U001B" = { + "f" = "moveWordForward:"; /* Esc f Move forward word */ + "b" = "moveWordBackward:"; /* Esc b Move backward word */ + "<" = "moveToBeginningOfDocument:"; /* Esc < Move to beginning of document */ + ">" = "moveToEndOfDocument:"; /* Esc > Move to end of document */ + "v" = "pageUp:"; /* Esc v Page Up */ + "/" = "complete:"; /* Esc / Complete */ + "c" = ( "capitalizeWord:", /* Esc c Capitalize */ + "moveForward:", + "moveForward:"); + "u" = ( "uppercaseWord:", /* Esc u Uppercase */ + "moveForward:", + "moveForward:"); + "l" = ( "lowercaseWord:", /* Esc l Lowercase */ + "moveForward:", + "moveForward:"); + "d" = "deleteWordForward:"; /* Esc d Delete word forward */ + "^h" = "deleteWordBackward:"; /* Esc C-h Delete word backward */ + "\U007F"= "deleteWordBackward:"; /* Esc Bksp Delete word backward */ + "t" = "transposeWords:"; /* Esc t Transpose words */ + + "\@" = ( "setMark:", /* Esc @ Mark word */ + "moveWordForward:", + "swapWithMark"); + "h" = ( "setMark:", /* Esc h Mark paragraph */ + "moveToEndOfParagraph:", + "swapWithMark"); + }; + + /* C-x shortcuts */ + "^x" = { + "u" = "undo:"; /* C-x u Undo */ + "k" = "performClose:"; /* C-x k Close */ + "^f" = "openDocument:"; /* C-x C-f Open (find file) */ + "^x" = "swapWithMark:"; /* C-x C-x Swap with mark */ + "^m" = "selectToMark:"; /* C-x C-m Select to mark*/ + "^s" = "saveDocument:"; /* C-x C-s Save */ + "^w" = "saveDocumentAs:"; /* C-x C-w Save as */ + }; + +} \ No newline at end of file diff --git a/KeyBindings/Emacs Opt Bindings.dict b/KeyBindings/Emacs Opt Bindings.dict new file mode 100644 index 0000000..950625a --- /dev/null +++ b/KeyBindings/Emacs Opt Bindings.dict @@ -0,0 +1,68 @@ +{ +/* Keybindings for emacs emulation. Compiled by Jacob Rus. + * + * This is a pretty good set, especially considering that many emacs bindings + * such as C-o, C-a, C-e, C-k, C-y, C-v, C-f, C-b, C-p, C-n, C-t, and + * perhaps a few more, are already built into the system. + * + * BEWARE: + * This file uses the Option key as a meta key. This has the side-effect + * of overriding Mac OS keybindings for the option key, which generally + * make common symbols and non-english letters. + */ + + /* Ctrl shortcuts */ + "^l" = "centerSelectionInVisibleArea:"; /* C-l Recenter */ + "^/" = "undo:"; /* C-/ Undo */ + "^_" = "undo:"; /* C-_ Undo */ + "^ " = "setMark:"; /* C-Spc Set mark */ + "^\@" = "setMark:"; /* C-@ Set mark */ + "^w" = "deleteToMark:"; /* C-w Delete to mark */ + + + /* Incremental search. */ +/* Uncomment these lines If Incremental Search IM is installed */ +/* "^s" = "ISIM_incrementalSearch:"; /* C-s Incremental search */ +/* "^r" = "ISIM_reverseIncrementalSearch:"; /* C-r Reverse incremental search */ +/* "^g" = "abort:"; /* C-g Abort */ + + + /* Meta shortcuts */ + "~f" = "moveWordForward:"; /* M-f Move forward word */ + "~b" = "moveWordBackward:"; /* M-b Move backward word */ + "~<" = "moveToBeginningOfDocument:"; /* M-< Move to beginning of document */ + "~>" = "moveToEndOfDocument:"; /* M-> Move to end of document */ + "~v" = "pageUp:"; /* M-v Page Up */ + "~/" = "complete:"; /* M-/ Complete */ + "~c" = ( "capitalizeWord:", /* M-c Capitalize */ + "moveForward:", + "moveForward:"); + "~u" = ( "uppercaseWord:", /* M-u Uppercase */ + "moveForward:", + "moveForward:"); + "~l" = ( "lowercaseWord:", /* M-l Lowercase */ + "moveForward:", + "moveForward:"); + "~d" = "deleteWordForward:"; /* M-d Delete word forward */ + "^~h" = "deleteWordBackward:"; /* M-C-h Delete word backward */ + "~\U007F" = "deleteWordBackward:"; /* M-Bksp Delete word backward */ + "~t" = "transposeWords:"; /* M-t Transpose words */ + "~\@" = ( "setMark:", /* M-@ Mark word */ + "moveWordForward:", + "swapWithMark"); + "~h" = ( "setMark:", /* M-h Mark paragraph */ + "moveToEndOfParagraph:", + "swapWithMark"); + + /* C-x shortcuts */ + "^x" = { + "u" = "undo:"; /* C-x u Undo */ + "k" = "performClose:"; /* C-x k Close */ + "^f" = "openDocument:"; /* C-x C-f Open (find file) */ + "^x" = "swapWithMark:"; /* C-x C-x Swap with mark */ + "^m" = "selectToMark:"; /* C-x C-m Select to mark*/ + "^s" = "saveDocument:"; /* C-x C-s Save */ + "^w" = "saveDocumentAs:"; /* C-x C-w Save as */ + }; + +} \ No newline at end of file diff --git a/KeyBindings/Greek Bindings.dict b/KeyBindings/Greek Bindings.dict new file mode 100644 index 0000000..8912360 --- /dev/null +++ b/KeyBindings/Greek Bindings.dict @@ -0,0 +1,69 @@ +{ +/* + * Greek keybinding example, by Jacob Rus. + * + * Note that this is an example, and is not very usable on a + * day-to-day basis. + */ + "a" = ("insertText:", "\U03B1"); /* a alpha */ + "b" = ("insertText:", "\U03B2"); /* b beta */ + "g" = ("insertText:", "\U03B3"); /* g gamma */ + "d" = ("insertText:", "\U03B4"); /* d delta */ + "e" = ("insertText:", "\U03B5"); /* e epsilon */ + "~e" = ("insertText:", "\U03F5"); /* O-e epsilon var */ + "z" = ("insertText:", "\U03B6"); /* z zeta */ + "h" = ("insertText:", "\U03B7"); /* h eta */ + "q" = ("insertText:", "\U03B8"); /* q theta */ + "~q" = ("insertText:", "\U03D1"); /* O-q theta var */ + "i" = ("insertText:", "\U03B9"); /* i iota */ + "k" = ("insertText:", "\U03BA"); /* k kappa */ + "l" = ("insertText:", "\U03BB"); /* l lambda */ + "m" = ("insertText:", "\U03BC"); /* m mu */ + "n" = ("insertText:", "\U03BD"); /* n nu */ + "x" = ("insertText:", "\U03BE"); /* x xi */ + "o" = ("insertText:", "\U03BF"); /* o omicron */ + "p" = ("insertText:", "\U03C0"); /* p pi */ + "r" = ("insertText:", "\U03C1"); /* r rho */ + "~r" = ("insertText:", "\U03F1"); /* O-r rho var */ + "~s" = ("insertText:", "\U03C2"); /* O-s final sigma */ + "s" = ("insertText:", "\U03C3"); /* s sigma */ + "t" = ("insertText:", "\U03C4"); /* t tau */ + "u" = ("insertText:", "\U03C5"); /* u upsilon */ + "f" = ("insertText:", "\U03C6"); /* f phi */ + "~f" = ("insertText:", "\U03D5"); /* O-f phi var */ + "c" = ("insertText:", "\U03C7"); /* c chi */ + "y" = ("insertText:", "\U03C8"); /* y psi */ + "w" = ("insertText:", "\U03C9"); /* w omega */ + + + "A" = ("insertText:", "\U0391"); /* A Alpha */ + "B" = ("insertText:", "\U0392"); /* B Beta */ + "G" = ("insertText:", "\U0393"); /* G Gamma */ + "D" = ("insertText:", "\U0394"); /* D Delta */ + "E" = ("insertText:", "\U0395"); /* E Epsilon */ + "Z" = ("insertText:", "\U0396"); /* Z Zeta */ + "H" = ("insertText:", "\U0397"); /* H Eta */ + "Q" = ("insertText:", "\U0398"); /* Q Theta */ + "I" = ("insertText:", "\U0399"); /* I Iota */ + "K" = ("insertText:", "\U039A"); /* K Kappa */ + "L" = ("insertText:", "\U039B"); /* L Lambda */ + "M" = ("insertText:", "\U039C"); /* M Mu */ + "N" = ("insertText:", "\U039D"); /* N Nu */ + "X" = ("insertText:", "\U039E"); /* X Xi */ + "O" = ("insertText:", "\U039F"); /* O Omicron */ + "P" = ("insertText:", "\U03A0"); /* P Pi */ + "R" = ("insertText:", "\U03A1"); /* R Rho */ + "S" = ("insertText:", "\U03A3"); /* S Sigma */ + "T" = ("insertText:", "\U03A4"); /* T Tau */ + "U" = ("insertText:", "\U03A5"); /* U Upsilon */ + "F" = ("insertText:", "\U03A6"); /* F Phi */ + "C" = ("insertText:", "\U03A7"); /* C Chi */ + "Y" = ("insertText:", "\U03A8"); /* Y Psi */ + "W" = ("insertText:", "\U03A9"); /* W Omega */ + + /*Make sure other letters do nothing*/ + "j" = "noop:"; + "v" = "noop:"; + "J" = "noop:"; + "V" = "noop:"; +} \ No newline at end of file diff --git a/KeyBindings/Leet Binding.dict b/KeyBindings/Leet Binding.dict new file mode 100644 index 0000000..ffd396a --- /dev/null +++ b/KeyBindings/Leet Binding.dict @@ -0,0 +1,64 @@ +{ +/* + * Leetspeak keybinding example, by Jacob Rus + * + * You probably don't want to use this as anything other than an example. + * + */ + + "a" = ("insertText:", "4"); + "b" = ("insertText:", "8"); + "c" = ("insertText:", "<"); + "d" = ("insertText:", "o|"); + "e" = ("insertText:", "3"); + "f" = ("insertText:", "ph"); + "g" = ("insertText:", "6"); + "h" = ("insertText:", "|-|"); + "i" = ("insertText:", "¡"); + "j" = ("insertText:", "_|"); + "k" = ("insertText:", "|<"); + "l" = ("insertText:", "1"); + "m" = ("insertText:", "/\\/\\"); + "n" = ("insertText:", "|\\|"); + "o" = ("insertText:", "0"); + "p" = ("insertText:", "|°"); + "q" = ("insertText:", "0_"); + "r" = ("insertText:", "|2"); + "s" = ("insertText:", "z"); + "t" = ("insertText:", "7"); + "u" = ("insertText:", "(_)"); + "v" = ("insertText:", "\\/"); + "w" = ("insertText:", "\\^/"); + "x" = ("insertText:", "×"); + "y" = ("insertText:", "`/"); + "z" = ("insertText:", "%"); + "A" = ("insertText:", "/-\\"); + "B" = ("insertText:", "|3"); + "C" = ("insertText:", "©"); + "D" = ("insertText:", "[)"); + "E" = ("insertText:", "[-"); + "F" = ("insertText:", "/#"); + "G" = ("insertText:", "(y"); + "H" = ("insertText:", "]-["); + "I" = ("insertText:", "]["); + "J" = ("insertText:", "_/"); + "K" = ("insertText:", "|{"); + "L" = ("insertText:", "|_"); + "M" = ("insertText:", "[]\\/[]"); + "N" = ("insertText:", "[]\\[]"); + "O" = ("insertText:", "()"); + "P" = ("insertText:", "|^"); + "Q" = ("insertText:", "(_,)"); + "R" = ("insertText:", "P\\"); + "S" = ("insertText:", "§"); + "T" = ("insertText:", "-|-"); + "U" = ("insertText:", "|_|"); + "V" = ("insertText:", "\\_/"); + "W" = ("insertText:", "\\/\\/"); + "X" = ("insertText:", "><"); + "Y" = ("insertText:", "\|"); + "Z" = ("insertText:", "~/_"); + + /* An exclamation point done right */ + "!" = ("insertText:", "!!11!eleventy-one!1!!!!"); +} \ No newline at end of file diff --git a/KeyBindings/Leet Bindings.dict b/KeyBindings/Leet Bindings.dict new file mode 100644 index 0000000..ffd396a --- /dev/null +++ b/KeyBindings/Leet Bindings.dict @@ -0,0 +1,64 @@ +{ +/* + * Leetspeak keybinding example, by Jacob Rus + * + * You probably don't want to use this as anything other than an example. + * + */ + + "a" = ("insertText:", "4"); + "b" = ("insertText:", "8"); + "c" = ("insertText:", "<"); + "d" = ("insertText:", "o|"); + "e" = ("insertText:", "3"); + "f" = ("insertText:", "ph"); + "g" = ("insertText:", "6"); + "h" = ("insertText:", "|-|"); + "i" = ("insertText:", "¡"); + "j" = ("insertText:", "_|"); + "k" = ("insertText:", "|<"); + "l" = ("insertText:", "1"); + "m" = ("insertText:", "/\\/\\"); + "n" = ("insertText:", "|\\|"); + "o" = ("insertText:", "0"); + "p" = ("insertText:", "|°"); + "q" = ("insertText:", "0_"); + "r" = ("insertText:", "|2"); + "s" = ("insertText:", "z"); + "t" = ("insertText:", "7"); + "u" = ("insertText:", "(_)"); + "v" = ("insertText:", "\\/"); + "w" = ("insertText:", "\\^/"); + "x" = ("insertText:", "×"); + "y" = ("insertText:", "`/"); + "z" = ("insertText:", "%"); + "A" = ("insertText:", "/-\\"); + "B" = ("insertText:", "|3"); + "C" = ("insertText:", "©"); + "D" = ("insertText:", "[)"); + "E" = ("insertText:", "[-"); + "F" = ("insertText:", "/#"); + "G" = ("insertText:", "(y"); + "H" = ("insertText:", "]-["); + "I" = ("insertText:", "]["); + "J" = ("insertText:", "_/"); + "K" = ("insertText:", "|{"); + "L" = ("insertText:", "|_"); + "M" = ("insertText:", "[]\\/[]"); + "N" = ("insertText:", "[]\\[]"); + "O" = ("insertText:", "()"); + "P" = ("insertText:", "|^"); + "Q" = ("insertText:", "(_,)"); + "R" = ("insertText:", "P\\"); + "S" = ("insertText:", "§"); + "T" = ("insertText:", "-|-"); + "U" = ("insertText:", "|_|"); + "V" = ("insertText:", "\\_/"); + "W" = ("insertText:", "\\/\\/"); + "X" = ("insertText:", "><"); + "Y" = ("insertText:", "\|"); + "Z" = ("insertText:", "~/_"); + + /* An exclamation point done right */ + "!" = ("insertText:", "!!11!eleventy-one!1!!!!"); +} \ No newline at end of file diff --git a/KeyBindings/Windows Bindings.dict b/KeyBindings/Windows Bindings.dict new file mode 100644 index 0000000..e79a58f --- /dev/null +++ b/KeyBindings/Windows Bindings.dict @@ -0,0 +1,100 @@ +{ + /* Keybindings for partial windows emulation. Compiled by Jacob Rus. + * + * Steve Jacobs did much of the work on this. + * + * Note that the bindings at the end, for Ctrl-a, Ctrl-n, etc. + * will override OS X defaults. Remove that section if you like. + */ + + +/***** HOME-END KEYS *****/ + + "\UF729" = "moveToBeginningOfLine:"; /* home Beginning of line */ + "\UF72B" = "moveToEndOfLine:"; /* end End of line */ + + "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; + /* Shft-home Select to beginning of line */ + "$\UF72B" = "moveToEndOfLineAndModifySelection:"; + /* Shft-end Select to end of line */ + + "^\UF729" = "moveToBeginningOfDocument:"; /* C-home Beginning of document */ + "^\UF72B" = "moveToEndOfDocument:"; /* C-end End of document */ + + "^$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; + /* C-Shft-home Select to beginning of document */ + "^$\UF72B" = "moveToEndOfDocumentAndModifySelection:"; + /* C-Shft-end Select to end of document */ + +/***** PAGE UP-PAGE DOWN KEYS *****/ + + "\UF72C" = "pageUp:"; /* page up Page up */ + "\UF72D" = "pageDown:"; /* page dn Page down */ + + "~\UF72C" = "scrollPageUp:"; /* O-pg up Scroll page up */ + "~\UF72D" = "scrollPageDown:"; /* O-pg dn Scroll page down */ + + +/***** DELETE-FORWARD DELETE KEYS *****/ + + "~\U007F" = "undo:"; /* O-Del Undo */ + "~$\U007F" = "redo:"; /* O-Shft-Del Undo */ + + "^\U007F" = "deleteWordBackward:"; /* C-Del Delete word backward */ + "^\UF728" = "deleteWordForward:"; /* C-FwdDel Delete word forward */ + + +/***** DELETE-INSERT(HELP) KEYS *****/ + + /* Note that the Windows "insert" key is the Mac "help" key */ + "$\UF728" = "cut:"; /* Shft-FwdDel Cut */ + "^\UF746" = "copy:"; /* C-Help Copy */ + "$\UF746" = "paste:"; /* Shft-Help Paste */ + + +/***** RETURN KEY *****/ + + "$\U000A" = "insertLineBreak:"; /* Shft-Ret Line break */ + + +/***** F KEYS *****/ + + "\UF704" = "showContextHelp:"; /* F1 Show help */ + + "^\UF707" = "performClose:"; /* C-F4 Close document */ + +/***** ARROWS *****/ + + "^\UF700" = "moveToBeginningOfParagraph:"; /* C-up Move to beginning of paragraph */ + "^\UF701" = "moveToEndOfParagraph:"; /* C-down Move to end of paragraph */ + + "^$\UF700" = "moveToBeginningOfParagraphAndModifySelection:"; + /* C-Shft-up Select to beginning of paragraph */ + "^$\UF701" = "moveToEndOfParagraphAndModifySelection:"; + /* C-Shft-down Select to end of paragraph */ + + "^\UF702" = "moveWordLeft:"; /* C-left Move word left */ + "^\UF703" = "moveWordRight:"; /* C-right Move word right */ + + "$^\UF702" = "moveWordLeftAndModifySelection:"; + /* C-Shft-left Select word left */ + "$^\UF703" = "moveWordRightAndModifySelection:"; + /* C-Shft-right Select word right */ + + +/***** CTRL + LETTERS *****/ + + "^a" = "selectAll:"; /* C-a Select all */ + + "^x" = "cut:"; /* C-x Cut */ + "^c" = "copy:"; /* C-c Copy */ + "^v" = "paste:"; /* C-v Paste */ + + "^z" = "undo:"; /* C-z Undo */ + "^y" = "redo:"; /* C-y Redo */ + + "^s" = "save:"; /* C-s Save */ + "^S" = "saveAs:"; /* C-Shft-s Save as */ + "^p" = "print:"; /* C-p Print */ + +} \ No newline at end of file diff --git a/cocoa-text.html b/cocoa-text.html new file mode 100644 index 0000000..f21fa5d --- /dev/null +++ b/cocoa-text.html @@ -0,0 +1,935 @@ + + + + +Cocoa Text System + + +

+
Anything I can improve? Send me an email: jacobolus AT gmail
\ No newline at end of file diff --git a/cocoa-text.text b/cocoa-text.text new file mode 100644 index 0000000..953c6fd --- /dev/null +++ b/cocoa-text.text @@ -0,0 +1,901 @@ +Customizing the Cocoa Text System +================================= + + Version 0.8 + by [Jacob Rus][me] + Monday, 20 March 2006 + +[me]: http://hcs.harvard.edu/~jrus + +Apple's Cocoa text system is a complicated beast, but also extremely flexible, +and with a bit of work, it can be molded to match many working styles. This +how-to covers the 2 major ways of customizing the text input system: Default +key bindings, and for still more control, input managers. + +I'm writing this guide because nothing like it currently exists. There is +incredible room for flexibility in customizing the Cocoa text environment, but +most users--even power-users--have no idea of the available options. This is +mostly because Apple's documentation is 1) aimed at developers, and 2) often +incomplete or ambiguous. Most users have no idea that they can look at a file +which describes all of the shortcuts on the system, and that they can easily +add their own shortcuts, or replace existing ones with differing +functionality. + +For instance, one of the most common complaints from new Windows and +Linux/Unix switchers is that many of the shortcuts they are used to, such as +using the Home and End keys to move to the beginning, respectively end, of a +line or document, don't work as they expect in OS X. + +For new users, almost every text box you use is a Cocoa text box (or close +enough to act the same as far as we're concerned) -- Safari web form boxes, +the text field in iChat for sending new messages, the documents in Pages or +TextEdit, the email composer in Mail, etc. **Note:** Some text boxes are not +Cocoa however, so the tricks in this article still aren't completely +universal. Notably, Microsoft Word, Adobe applications, AppleWorks, and the +text fields in Camino and Firefox won't work with this hint. + +I expect that all users of OS X can get something out of this guide. I'm +starting with the basics, so that new users, unfamiliar with the terminal and +the intricacies of OS X can be brought up to speed. But even the most +experienced users should hopefully learn something from this article; I know +I learned several new nifty things while writing it. + +**Disclaimer**: it is possible, when mucking around with the text system, to +send applications messages they aren't expecting. This can cause them to +crash. As long as you stick to standard text selectors, you should be fine, +but I'm not responsible if your program crashes because of a binding you add. + +Terminology +----------- + +Before delving too deeply into the intricacies of the Cocoa text system, it +helps to understand some programmer jargon. + + * The **_[Insertion Point][wp-insertion]_** (sometimes called the *caret*) + is the blinking vertical line that shows where text typed into a text box + will show up. + + * A **_Buffer_** is the text field currently being edited. This might be a + text box in an online form in Safari, or the main window in TextEdit. + + * **_[Key Bindings][wp-bindings]_**, often called 'keyboard shortcuts', + define what happens when any key is typed in an application. For instance, + in a Mac text editor, the 'a' key inserts an `a`, 'Opt-e, e' inserts an + `é`, and 'Ctrl-a' moves the insertion point to the beginning of the + current line. + + * A **_[String][wp-string]_** is a chunk of text, literally a 'string' of + letters. + + * A **_[Method][wp-method]_** is a function that an object (which includes + just about everything in Cocoa) can perform. + + * A **_Selector_** is the name of a method. It is a string. Something like + `"insertTab:"`, or `"save:"` + + * The **_Mark_** is an invisible point somewhere in the document, which can + be set, and then returned to. Marking is the way regions of text were + selected in UNIX text editors back in the days before they could be + highlighted in blue with a mouse drag. + + * To **_Kill_** some text is basically the same as using the 'Cut' command, + but in OS X uses a separate mechanism, that is localized to the current + buffer. By default 'Ctrl-k' kills everything after the insertion point on + the current line. + + * **_Yank_** is the analog of the 'Paste' command. By default, 'Ctrl-y' + yanks back whatever was most recently killed. + +[wp-insertion]: http://en.wikipedia.org/wiki/Insertion_point +[wp-bindings]: http://en.wikipedia.org/wiki/Keyboard_shortcut +[wp-string]: http://en.wikipedia.org/wiki/String_%28computer_science%29 +[wp-method]: http://en.wikipedia.org/wiki/Method_%28computer_science%29 + +Many of these terms crop up in the venerable [Emacs][emacs] editor, so reading +about them in the Emacs context can be enlightening: [Buffer][em-buffer], +[Key Bindings][em-bindings], [Mark][em-mark], [Kill][em-kill] + +[em-buffer]: http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Buffers +[em-bindings]: http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Key%20Bindings +[em-mark]: http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Mark +[em-kill]: http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Killing +[em-yank]: http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Yanking + +Existing (Default) Functionality +-------------------------------- + +Most users of Mac OS X, even long-time Apple geeks, know only a fraction of +the available text system shortcuts. This is a tragedy, as they are consistent +across all applications which use the Cocoa text system, including TextEdit, +Mail, iChat, Safari, and countless third-party applications. + +### Simple Text Insertion ### + +One thing every user knows is that when a plain letter is typed (assuming the +input method in use matches the keyboard), that letter is inserted into a +selected text box. When the shift key is held down, letters are capitalized, +and symbol keys input the second symbol shown on them. For instance 'Shift-]' +inputs the '}' character. + +It is possible to see all of the possibilities using the +'[Keyboard Viewer][apple-kv]' palette: + +[apple-kv]: http://www.apple.com/macosx/tips/keyboard11.html + +![Keyboard viewer--full sized](Images/full-kb.png) +![Keyboard viewer--laptop](Images/laptop-kb.png) + +In addition, the option key, both alone and in conjunction with the shift key, +will change the characters inserted. So 'Option-y' inserts a '¥' currency +mark, and 'Option-Shift-c' inserts a capital cedilla: 'Ç'. We can see +how option affects our input options using the Keyboard Viewer: + +![Keyboard viewer--full sized--option key](Images/full-kb-opt.png) +![Keyboard viewer--full sized--shift+option](Images/full-kb-opt-shift.png) + +Users with full keyboards have a complete number pad, with an enter key +(instead of return), and symbols used in arithmetic. This number pad is +available to PowerBook and iBook users as well. The numlock key (Fn-F6), +enables the small symbols printed at the lower right corner of powerbook keys +to be input. But even more usefully, those keys can also be used as a number +pad while the Fn key is held down. This is great for typing lots of numeric +data, and also comes in handy when playing games that allow vertical, +horizontal, and diagonal movement via the number pad: + +![Keyboard viewer--laptop--function key](Images/laptop-kb-fn-numpad.png) + +Of course, there are a number of standard actions that the above pictures +don't show. For instance, when you type 'Command-left', the insertion +point moves to the beginning of the current line. Also, OS X has a fairly +large number of unix/emacs bindings built in. + +The complete list of these extra commands takes up too much space for this +page, so I've made them into a [separate document](system-bindings.html). + +Default key bindings +-------------------- + +OS X has three main files which specify the key bindings used by Cocoa +applications: + + /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict + + /Library/KeyBindings/DefaultKeyBinding.dict + + ~/Library/KeyBindings/DefaultKeyBinding.dict + +which contain, respectively, the default 'built-in' key bindings, system-wide +custom keybindings, and a user's personalized key bindings. Don't edit the +built-in `/System/Library/` file, as this could seriously hose your machine. +Note that as usual, personalized bindings override the built-in standards. + +If the `DefaultKeyBinding.dict` file doesn't exist, don't worry. Simply making +a `KeyBindings` folder in `~/Library`, and then adding a new text file should +do the trick. + +### File Format: ### + +This file is a normal [Property List][appledev-plist], which can be created +either with a text editor, such as [TextWrangler][t-w], [Smultron][smultron], +or [TextMate][t-m], or with Apple's Property List Editor, which is installed +with the developer tools. Property lists are pervasive in OS X, and are used +for all sorts of configuration files, and preferences. Any file which has a +`.plist` or `.dict` extension is a property list. Every application has an +`info.plist` file inside of it which tells OS X what types of files that +application can handle. Smart folders (`.savedSearch` files) are property +lists. The `defaults` command, which can be run from the terminal, is a quick +way to edit single items in a property list. + +There are two types of property lists, old-style NeXT text files, and newer +XML formatted files. I will use the old-style plists in this how-to, because +they are easier to read and understand; they are more compact, with less +distracting markup. + +**The NeXT property list format** is a file format that can describe, using +plain text, all of the objects used in Cocoa programs. We specifically care +about 3 types: 'strings', 'lists', and 'dictionaries': + + * A *string* is simply a sequence of letters, numbers, and symbols, + such as: + + "this is a string with some $#@! symbols" + + * A *list* is, like it sounds, a list of other objects, such as + lists or strings: + + ("a", "list", "can", "contain", "many", "strings") + + * A *dictionary* contains pairs of "keys" and "values". Basically, + dictionaries provide a way to name a bunch of objects, and refer + to them by name. Note that while dictionary keys must be strings, + the values can be any type of object. + + {"key1" = "value1"; "key2" = "value2"; "key3" = ("a", "list");} + + * In addition, *comments* can be added to old-style property lists + by enclosing some text in `/*` and `*/` + +Every property list has a root dictionary object, which can contain +sub-objects. A simple plist file might look like: + + { + /* ** THIS IS A COMMENT: ** + * + * Notice that each line in the dictionary has a 'key' string, + * and a 'value', which can be a string, a list, or another + * dictionary. + */ + + "My String" = "Hey there!"; + + "My List" = ("first string", "second string", "final string"); + + "My Dictionary" = { + "Sub-string A" = "This is a string inside a dictionary"; + "Sub-list B" = ("This is a list", "inside a dictionary"); + }; + } + +This property list has three key-value pairs: a string, a list, and a +dictionary. + +### The format of DefaultKeyBinding.dict ### + +The `DefaultKeyBindings.dict` file is fairly straight-forward. It is a normal +property list, which as keys, uses the requested key bindings, and as values +uses the commands they should execute. For instance, I might want the letter +`a` to not type 'a', but instead insert a tab. If I put the following in my +`DefaultKeyBinding.dict`, then all Cocoa apps launched afterwards will insert +a tab key instead of an `a`: + + { + /* This will make all a's turn to tabs. Beware. */ + "a" = "insertTab:"; + } + +#### How to represent bindings #### + +But of course, if we could only bind things to letter keys, this wouldn't +really be so useful, now would it? Fortunately, Apple's engineers made sure +that every key that you could possibly ever type can be put into a binding. + +The way it works is simple. For lower-case and capital letters, simply type +the letter into the string. So `"y"` represents the 'y' key, while `"T"` +represents 'Shift-t'. For numbers and symbols, including space, the same +holds. So `"!"` represents 'Shift-1', or however you type '!' on your keyboard +layout. To add modifier keys, add a symbol corresponding to that modifier: + +> `"@t"` = Command-t +> `"^t"` = Control-t +> `"~t"` = Option-t +> `"@^T"` = Command-Control-Shift-t +> `"~ "` = Option-space + +For numbers and symbols, to add the shift key is not as easy as typing a +capital letter, so `$` stands for shift. Also, there is a difference between +numbers above the letter keys, and numbers on the keypad. To indicate keypad +keys, use `#`: + +> `"@$#5"` = Command-Shift-Numpad 5 +> `"^6"` = Control-6 + +**Note:** Lots of bindings with the Command key won't work. This is done by +Apple to ensure that applications can use these shortcuts for themselves, and +not worry about user key bindings. Some will work, however, such as +'Command-right arrow'. + +There are still 2 limitations: First, what do we do if we want to bind a +literal '@' or '#' symbol? We *escape* it! By adding a `\\` before the symbol, +we can avoid this. At the moment, the only way I can get ‘\’ itself to bind to +anything is by writing it as ‘\\U05C’. + +> `"~\\$"` = Option-$ + +Second, if we were limited to symbols and modifiers, we would still cut off +keys like 'delete', 'tab', and 'esc', so any keys that aren't already covered +can be entered using their unicode values: + +#### Unicode values for Apple non-letter keys: #### + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Escape: \U001B
 
Tab: \U0009
Backtab: \U0019
 
Return: \U000A
Enter: \U000D
 
Delete: \U007F
 
Up Arrow: \UF700
Down Arrow: \UF701
Left Arrow: \UF702
Right Arrow: \UF703
 
Help: \UF746
Forward Delete:\UF728
Home: \UF729
End: \UF72B
Page Up: \UF72C
Page Down: \UF72D
 
Clear: \UF739
 
F1: \UF704
F2: \UF705
F3: \UF706
...
F35 \UF726
 
Not on Apple keyboards:
 
Menu: \UF735
+ +**Notes:** + + * 'Backtab' is 'Shift-Tab' + * The key labeled 'Backspace' on most PC keyboards is the 'Delete' key + * The 'Num Lock' key on PC keyboards is 'Clear' + * The keys labeled 'Print Screen', 'Scroll Lock', and 'Pause' are + respectively 'F13', 'F14', and 'F15' + * The key labeled 'Insert' is the 'Help' key + * I'm not sure whether the 'Menu' key actually does anything, as I don't own + a keyboard with that key on it. + +For a complete list, including some keys that aren't on current apple +keyboards, but can still be used by OS X, see the [Registry][apple-ucode] +of Apple Unicode corporate-zone characters. + +In general, the best way I've found to discover key's escape codes is to use +the free [Key Codes][keycodes] application from Peter Maurer. The app brings +up a floating palette which prints a log of all the keys typed. + +[keycodes]: http://www.petermaurer.de/nasi.php?section=keycodes + +#### More complicated bindings and actions #### + +Of course, sometimes we wish we had more keys on the keyboard. Even with all +of the modifier keys, it gets hard to keep different functionality separated, +and things get confused. For this reason, it is possible to use +multiple-keystroke bindings. To this end, instead of binding our first +keystroke to a selector, we bind it to a dictionary, containing the second +keystrokes. Emacs, the UNIX-based text editor, has many such +multiple-keystroke bindings. Therefore, as an example of how this can be done, +we will take Emacs bindings, and try to replicate them in Cocoa Text Widgets. + +One Emacs command is 'Control-x, u', for 'undo'. Another is 'Control-x, +Control-s' for 'save'. To add this command to our key bindings, we need to +bind 'Control-x' to a dictionary of sub-bindings: + + { + /* Control-x dictionary */ + "^x " = { + "u" = "undo:"; /* C-x u => undo */ + "^s" = "save:"; /* C-x C-s => save */ + }; + } + +Our 'Control-x' parent dictionary can have several multiple-keystroke bindings +associated with it. In this way, we can have whole areas of functionality +given to one 'parent' key binding, with the resulting action to be determined +by a letter. We can effectively have 4 or 5 keyboards for our bindings! + +But of course, the number of bindings is not our only limitation so far. We +are also limited by the range of selectors offered by the text box. We often +find ourselves performing complicated actions repeatedly, and would like to +invoke them with single keystroke. Mostly when this happens, Applescript, or +some other programming language is the best solution. On occasion, however, +the text system has enough power and flexibility to do the trick. This is +because, besides single selectors, a binding can also execute a list of +selectors, sequentially. + +As an example, imagine that I often want to change paragraphs of text to all +capital letters, but I'm tired of selecting the whole paragraph with my +keyboard or mouse. I want 'Control-Option-u to make my paragraph all +uppercase, and then I want it to start a new paragraph by inserting two new +lines at the end of the paragraph. + +This (somewhat contrived) action can be broken into steps: 1. Select paragraph +2. Make all the letters uppercase 3. Move to the end of the paragraph 4. +Insert two new lines. + +We can make a plist of these directions: + + { + "^~u" = ("selectParagraph:", + "uppercaseWord:", + "moveToEndOfParagraph:" + "insertNewline:", + "insertNewline"); + } + +So, with the the ability to map multiple-keystroke bindings to sets of actions +that can perform complicated behaviors, what's left? + +Every time you type a key, the Cocoa text system looks for bindings, and if +none are found for the key, it instead passes the keystroke along as a string +input to the `insertText:` selector. Well, as luck would have it, +[Kevin Ballard][kevin], from the [##textmate][tm-channel] IRC channel on +[freenode][freenode] (a delightful place to chat, incidentally), found a real +gem, that doesn't seem to be documented anywhere on Apple's website, or +anywhere else: **It is possible to use the `insertText:` selector as part of a +binding, and thereby bind an arbitrary string to a keystroke.** If we bind a +key to a list, containing `"insertText:"` as one of its strings, the next +string in the list will be inserted into the text field. Example: + + { + /* Realize that actually using this will render your a key + amusingly useless.*/ + "a" = ("insertText:", "some fun text", "moveWordBackward:"); + } + +as a DefaultKeyBinding.dict file will make the 'a' key type 'some fun text', +and then move the insertion point to the beginning of the word 'text', instead +of the simply typing an 'a', as usual. + +[kevin]: http://kevin.sb.org/ +[tm-channel]: irc://irc.freenode.net/##textmate +[freenode]: http://freenode.net/ + +This is amazingly useful if there are some symbols or strings which must be +entered on a regular basis. For instance, imagine that I sometimes need to +type LaTeX Greek letters, and also sometimes need the associated unicode +symbols (for alpha, beta, etc.). The following `DefaultKeyBinding.dict` could +reduce this load considerably: + + { + /* Greek unicode letters */ + "^g" = { + "a" = ("insertText:", "\U03B1"); + "b" = ("insertText:", "\U03B2"); + "g" = ("insertText:", "\U03B3"); + "d" = ("insertText:", "\U03B4"); /* + ... */ + } + + /* Greek LaTeX letters */ + "^m" = { + "a" = ("insertText:", "\\alpha"); + "b" = ("insertText:", "\\beta"); + "g" = ("insertText:", "\\gamma"); + "d" = ("insertText:", "\\delta"); /* + ... */ + } + } + +Now, when I type 'Control-g, a', 'α' will be inserted instead, and when +I type 'Control-m, g', '\gamma' will be inserted, etc. + +It seems like this behavior is just an exception, as I haven't found any other +selectors which take an argument, but it's a glorious exception, for which I +can envision some truly creative uses. + +For instance, if I want to drive some friends bonkers, I could set +`DefaultKeyBinding.dict` up to [ROT13][wp-rot13] all of my letters, to enable +"typing in code". Or I could set it up to allow typing in [leetspeak][wp-leet] +("1337"). + +Most obviously perhaps, I could bind common phrases or code snippets to simple +keystrokes. This would allow systemwide text shortcuts without the need for +third-party applications (though the third party applications out there, +notably Peter Maurer's [Textpander][textpander], do a lot more than key +bindings allow). + +One binding that I made, and **it's one of my favorites**, allows me to type +html and xml tags with ease. I have Control-shift-h make a starting and tag +pair out of the word I've just finished typing, and put the cursor in the +middle of them. Here's the code: + + { + /* This command will let Ctrl-Shift-H turn the previous word + * into an HTML/XML opening and closing tag pair. */ + "^H" = ( "setMark:", + "moveWordBackward:", + "deleteToMark:", + "insertText:", "<", + "yank:", + "insertText:", ">", + "setMark:", + "insertText:", "", + "swapWithMark:"); + } + +Finally, the possibilities for pranks on coworkers, significant others, etc. +is considerable. For instance, we can set the keyboard up to malfunction on a +couple of letters, maybe a 'z' could [say][apple-speech] "you didn't +\*really\* want to type that, did you?": + + { + "z" = ("setMark:", + "insertText:", + "you didn't *really* want to type that, did you?", + "selectToMark:", + "speakText:"); + } + +[wp-rot13]: http://en.wikipedia.org/wiki/ROT13 +[wp-leet]: http://en.wikipedia.org/wiki/Leet +[textpander]: http://www.petermaurer.de/nasi.php?section=textpander +[apple-speech]: http://www.apple.com/macosx/features/speech/ + +Moving right along, now that we have the idea of how to form our bindings, we +can get to figuring out exactly which selectors are available to us. + +### Usable selectors ### + +It is hard to figure out exactly which selectors a text box, and more +generally, an application, will respond to. There are a huge number of +options, but they are not all documented in one place. This is partly because +if one object in an application doesn't respond to a particular message, it +will pass the message along to its parent object. + +Still, we can find a large number of useful selectors by searching through the +documentation we can find, and testing what the selectors do. The biggest +source of selectors that we might want to use is in the NSResponder class -- +see its [documentation][appledev-nsres]. Specifically, we care about the +'Action methods' section. Also, the [documentation][appledev-nstext] for +NSText has some selectors we can use, and many other classes provide useful +selectors as well, such as NSDocumentController and NSWindow. + +Because there are so many usable selectors, I'm putting them in a separate +page. [Here's a link](selectors.html). + +### Examples ### + +I've put together some examples of how this could be used. To use one of +these, simply rename the file to `DefaultKeyBinding.dict` and plop it in the +`~/Library/KeyBindings` folder. One of the most common uses of custom key +bindings is emulating another operating system or environment, such as Windows +or Emacs or BBEdit: + + * Emacs emulation [key bindings with esc as meta key](KeyBindings/Emacs Esc Bindings.dict) + * Emacs emulation [key bindings with opt as meta key](KeyBindings/Emacs Opt Bindings.dict) + * BBEdit emulation [key bindings](KeyBindings/BBEdit Bindings.dict) (far + from complete) + * Windows emulation [key bindings](KeyBindings/Windows Bindings.dict) + (_I'm still working on this one, if someone has a list of windows + default key behaviors, email me: jacobolus \[at\] gmail.com_) + +Beyond that, it's possible make key bindings as pranks. That's always fun: + + * [Leet bindings](KeyBindings/Leet Bindings.dict) + * [Greek bindings](KeyBindings/Greek Bindings.dict) + +Text System Defaults +-------------------- + +Besides making our own key bindings, there are a few other nifty changes we +can apply to the Cocoa text system, using the "defaults" system. Apple's +developer site [tells about them][appledev-text-system-defaults]. Some of +these defaults are for unimplemented features, and are therefore worthless to +us. There are three defaults however which are of interest to us here. They +can be set using the `defaults` terminal command. I will show them applying +globally with the `-g` flag, but it is possible to set them on an application +by application basis, by for instance specifying `com.apple.textedit` instead +of `-g`. + + * `NSTextKillRingSize` + + This default sets the size of the kill ring. It can be set as follows: + + defaults write -g NSTextKillRingSize -string 4 + + This changes the size of the "kill ring" which large deleted blocks of + text get copied to. In this case, I have set it to keep track of the 4 + most recent such blocks. This means that this text can be cycled through, + and won't be lost as soon as more text is killed. An extra binding is + useful in dealing with a kill ring: `yankAndSelect:`, which cycles through + the kill ring. + + * `NSRepeatCountBinding` + + This one is one of the coolest features of the text system. In emacs, + pressing "Control-u", and then a number, 94 say, and then any other + command, will repeat that command 94 times. It is possible to set OS X to + do the same thing with "Control-u" as follows: + + defaults write -g NSRepeatCountBinding -string "^u" + + Of course, any other binding could be set instead of "Control-u". + + * `NSQuotedKeystrokeBinding` + + This default is normally linked to Control-q. It causes the next + keystroke typed to be passed through the system, without activating any + bindings. For example, if the "Option-v" is bound to scroll up in the + key bindings file, a square root sign -- √ -- can still be entered by + typing "Control-q, Option-v". + +Input Managers +-------------- + +NeXT and Apple realized, when they created Cocoa, that many actions could not +be foreseen by their framework developers. The key binding system is great if +we want to stick within the usual sorts of operations on English text, such as +transposing two letters, skipping the end of a paragraph, or upper-casing a +word, and we can combine these simple actions, but sometimes to do what we +want requires more. + +An *input manager* is a piece of code which is loaded into every running Cocoa +application. The purpose of an input manager is to extend the text system in +ways not thought of by the application's original programmers. + +We've all been hearing of late about how input managers can be used for +nefarious purposes, but as long as they stick to modifying the text system, +they mostly stay out of trouble, and they can be incredibly useful. Two input +managers in particular are quite popular: + + * First, Mike Ferris's [TextExtras][textextras] extends the Cocoa + text system in ways that programmers, particularly, will find + useful. I haven't spent too much time playing with TextExtras, + especially since [TextMate][t-m], my editor of choice, + doesn't quite use the same Cocoa controls as other Cocoa-based + editors like [SubEthaEdit][s-e-e] and [Smultron][smultron]. But + TextExtras adds quite a bit to the Cocoa text system, including + indent wrapping, auto-indentation, showing and selecting matching + braces, improved completion, and, perhaps most of all, customized + piping of text through shell commands. This allows all sorts of + snazzy behavior (note that editors like [TextWrangler][t-w] and + [TextMate][t-m] have their own implementations of this feature). + + * Second, one of my favorite text-system extensions is + [Michael McCracken][mike-mcc]'s [Incremental Search Input Manager][isim] + (ISIM). Here's a [link to a zip-file of the universal binary][isim-univ]. + + ISIM is an input manager that provides three new selectors for binding in + our `DefaultKeyBinding.dict` file: `ISIM_incrementalSearch:`, + `ISIM_reverseIncrementalSearch:`, and `abort:` (that last one may + work for other things, I'm not sure). The idea is pretty simple, but + incredibly useful. Basically, when the selector is invoked, a little + window pops up at the bottom of the current text box. When you type + into this little window, ISIM searches through the current document + searching for text that matches, and selects the first occurrence of + such text. Repeatedly invoking the selector flips through any other + occurrences in the document. A picture can say this better than I can: + + ![Incremental Search Input Manager](Images/incremental-search.png) + + The relevant part of my key bindings file looks like this: + + /* Incremental search */ + "^s" = "ISIM_incrementalSearch:"; + "^r" = "ISIM_reverseIncrementalSearch:"; + "^$g" = "abort:"; + + * Finally, for those who can't get enough customization in a straight + NSTextView, using the techniques described already, Gus Mueller made an + input manager, described in two [blog][gus-im-1] [posts][gus-im-2], which + allows the contents of any Cocoa text field to BBEdit. Type the relvant + key, and your text will pop up in a new BBEdit document. Save, and the + text in the original text field is updated. It's awesome. According to the + second post, modifying it to work with any editor which uses the ODBEditor + suite (used mainly by FTP programs to open remote files in a local text + editor) would be easy--it's open source. + + TextMate, my editor of choice, comes with a similar input manager, I + believe inspired by the first one. And the great thing about TextMate's + version is that it works in Mail (I'm not sure, but I think Gus's + doesn't). If there's a text editor you like, it's extremely nice to be + able to edit Safari form fields, emails, and other text using that editor. + +[gus-im-1]: http://www.gusmueller.com/blog/archives/2004/2/5.html +[gus-im-2]: http://www.gusmueller.com/blog/archives/2005/12/17.html + +Even Lower-Level Hacking: Keyboard Layouts +------------------------------------------ + +First, we haven't seen any way to remap modifier keys so far. This can be +easily accomplished using the Keyboard and Mouse preference pane. Click the +'modifier keys' button at the bottom of the view, and a nice sheet pops up. +Mine, which I've set to put the keys on a [Model M][wp-modelm] keyboard in the +right places, with 'Control' where it belongs next to the 'A' key, looks like +this: + +![Keyboard Pref Pane](Images/keyboard-pref-pane.png) + +[wp-modelm]: http://en.wikipedia.org/wiki/Model_M_Keyboard + +For even finer control over the keyboard, it is possible to create +[customized keyboard layouts][tn-keylayouts]. These allow any unicode glyphs +to be mapped to the keys on the keyboard, so alternate language scripts can be +entered, etc. This will work across the OS, not just in Cocoa text editors, +but is also a much lower-level change, which means that messing it up could be +much worse. I haven't actually ever used any layouts other than U.S. on my +PowerBook, so I don't know how easy this is. There is a pretty nice GUI +editor for this from SIL called [Ukelele][ukelele]. It has great +documentation, and should be all that is needed to make custom keyboard +layouts. + +[ukelele]: http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele +[tn-keylayouts]: http://developer.apple.com/technotes/tn2002/tn2056.html + +Finally, for the truly adventurous, it is apparently possible to go even +lower-level than Ukelele, and patch the [ADB][adb] codes which are registered +by Apple's USB keyboard drivers. I'm not sure exactly which versions of OS +X this works with, and any hacking at this level requires a serious +disclaimer, as a wrong move here could really mess up your system. But here +[are][snark1] [two][snark2] links at snark.de which discuss such arcane +trickery. Good luck to any who try this. This same guy (Heiko Hellweg) also +[made his own][snark3] keyboard layout, and patched Apple's keyboard drivers +to give himself a meta key: + +> "I got myself the Tiger-Version of the ADB Keyboard Driver +> (AppleADBKeyboard-238.3.4) and hacked away in XCode. My current setup uses +> the obnoxious enter key (between the cursor keys and the right command +> key) as the alt modifier (you can do that without a compiler by just +> [fiddling with info.plist][snark1]) and turns the original alt-key on the left +> onto a META key that sends escape in front of every other key as long as +> it is pressed (for this one, i needed to replace +> ``/System/Library/Extensions/AppleADBKeyboard.kext`` with an actual +> modified binary). +> +> "Now i can actually type ahead blindly without thinking twice. Contact me, +> if you are interested in using this too." + +Needless to say, I wouldn't advise trying this, unless you know what you are +doing. + +[adb]: http://developer.apple.com/documentation/mac/Devices/Devices-203.html +[snark1]: http://www.snark.de/index.cgi/0007 +[snark2]: http://www.snark.de/mac/usbkbpatch/index_en.html +[snark3]: http://www.snark.de/index.cgi/0006 + +Useful Links +------------ + +*TODO: Much of this list of links is still incomplete* + +### Text Editors ### + +Free Cocoa text editors for OS X: + + * [TextEdit][textedit] -- Comes on every Mac + * [Smultron][smultron] -- Clean, simple, Open-source text editor. + Named after some sort of Scandinavian strawberry. Can't beat free! + +Commercial Cocoa text editors: + + * [TextMate][t-m] -- most awesome text editor ever. I really can't + recommend this one enough. If you type lots of text, whether it's + C or Python code, [LaTeX][latex], [John Gruber][gruber]'s + [Markdown][mdown], or anything else, TextMate is amazing. It uses a + different text box than the usual Cocoa one, so not all of the + things discussed here will work, for instance, tying multiple commands + to one binding, or using multiple keystroke commands. Still, TextMate + allows far more customization than NSText widgets in general, so + custom system bindings aren't as necessary. + * [SubEthaEdit][s-e-e] -- Nifty collaborative editor, which allows + people halfway around the world from each-other to work on the same + text file at once. This editor kicks all kinds of ass when it comes + to collaborative note taking, or pair programming. It's not too shabby + for solo programming either. + +Non-Cocoa text editors for OS X: + + * [TextWrangler][t-w] -- Excellent (free!) editor from [Bare Bones][b-b]. + Not Cocoa, so the keybindings described in this how-to won't work, + but a great Mac citizen nonetheless, with lots of scriptability, + and excellent documentation. + * [BBEdit][bbedit] -- [Bare Bones][b-b]'s flagship editor. $200, or + $130 as an "upgrade" from the free TextWrangler, or $50 for + educational users. Steep pricing, but does most everything you'd + ever expect a text editor to do, and more. I think I still like + TextMate better, but Mac users have sworn by BBEdit for almost as + long as I've been alive. + +### Apple Developer Documentation ### + +Apple has some documentation for the key bindings, but all in all it is far +from adequate, especially for regular users, as opposed to competent +Objective-C hackers. + + * [About Key Bindings][appledev-keybindings] -- A brief note. + * [Text System Defaults and Key Bindings][appledev-text-system-defaults] + -- A longer explanation of some of the possibilities with key + bindings, which also shares some cool text system defaults, + editable from the command line. + * [The NSResponder class][appledev-nsres] -- The NSResponder + class is chock full of useful selectors to try to bind keys to. + * [Text Input Management][appledev-text-input] -- This extensive + article is far beyond the scope of this guide, and also only + somewhat relevant. It details the nitty gritty of the Cocoa + Text system, including information on how to create your own + input managers. + * [Introduction to Property Lists][appledev-plist] -- Apple's + documentation of the property list format, covering both old-style + and XML formats. + * [Registry of Apple use of Unicode corporate-zone characters.][apple-ucode] + -- not at Apple.com, but this text document tells the unicode values + of all the control keys we want to put in our bindings. + +### Third-party documentation ### + + * Llew Mason's pretty good [explanation][lsmason] of key bindings in OS X + * A page at [Cocoa Dev][cocoadev] about them + * A page by 'misaka' at [deepsky.com][deepsky] + * Shane Celis' description at [gnufoo.org][gnufoo] + * [An example key bindings file](http://www.algorithm.com.au/files/mac_os_x/DefaultKeyBinding.dict) + * Michael C Thornburgh has some Vi-ish keybindings at his site, + [armory.com][armory], in xml plist format. + * David Pogue's [comparison][pogue] of keyboard shortcuts on Windows and on + the Mac. + +### Key Bindings Editors ### + + * Gerd Knops's [Key Bindings Editor][kbe] is a Cocoa application which + allows the viewing and editing of key bindings files. It knows where the + system, XCode, and TextMate key bindings are, and allows html and plain + text export. + * Mikael Langer's [TextMacro][textmacro] does some stuff which is no + longer needed... it's an input manager which allows arbitrary text to be + input with key bindings, and is supposed to provide for multiple sets of + key bindings which can be swapped out. It is implemented as a preference + pane. + +### Input Managers ### + + * [Incremental Search Input Manager][isim] + * [TextExtras][textextras] + * [XML Tag Input Manager][xml-im] -- Annard Brouwer's free input manager + for selecting XML/HTML tags; it lets your mouse get in on the text system + action. + +### Tangentially-related MacOSXHints hints ### + + * [*Prewrap Lines in Mail.app*][mxh-prewrap] discusses TextExtras, and + gives an example of an application. + * [*Find and replace special characters in Cocoa apps*][mxh-find-replace] + -- A hint by [Bill Bumgarner][bbum] about `NSQuotedKeystrokeBinding`, + which is Control-q by default. + * [Enabling meta-key Emacs shortcuts in Cocoa apps][mxh-emacs] -- this one + isn't really so tangential: it shows users how to get emacs emulation by + putting installing a custom keybinding file (the emacs emulation is not + nearly as complete as ours above ;-) ). + +[mxh-prewrap]: http://www.macosxhints.com/article.php?story=2002060811285560 +[mxh-find-replace]: http://www.macosxhints.com/article.php?story=20021009063151561 +[mxh-emacs]: http://www.macosxhints.com/article.php?story=20010729214616497 + +[textedit]: http://www.apple.com/support/mac101/work/23/ +[smultron]: http://smultron.sourceforge.net/ +[t-m]: http://macromates.com/ +[t-w]: http://www.barebones.com/products/textwrangler/index.shtml +[b-b]: http://www.barebones.com/ +[bbedit]: http://www.barebones.com/products/bbedit/index.shtml +[s-e-e]: http://www.codingmonkeys.de/subethaedit/ +[emacs]: http://en.wikipedia.org/wiki/Emacs + +[latex]: http://en.wikipedia.org/wiki/LaTeX + +[textextras]: http://www.lorax.com/FreeStuff/TextExtras.html +[isim]: http://leverage.sourceforge.net/wiki/index.php/Main_Page +[isim-univ]: http://michael-mccracken.net/IncrementalSearchInputManager-universal.zip +[xml-im]: http://homepage.mac.com/annard/FileSharing9.html + + +[kbe]: http://www.cocoabits.com/KeyBindingsEditor/ +[textmacro]: http://www.mai.liu.se/~milan/TextMacro/ + +[bbum]: http://www.friday.com/bbum/ +[lsmason]: http://www.lsmason.com/articles/macosxkeybindings.html +[cocoadev]: http://www.cocoadev.com/index.pl?KeyBindings +[deepsky]: http://www.deepsky.com/~misaka/MacOSX/KeyBindings.html +[gnufoo]: http://www.gnufoo.org/macosx/macosx.html#emacs +[armory]: http://aldebaran.armory.com/~zenomt/macosx/KeyBindings.html +[pogue]: http://www.missingmanuals.com/pub/a/oreilly/missingmanuals/2003/keystrokes_0103.html + +[gruber]: http://daringfireball.net +[mdown]: http://daringfireball.net/projects/markdown/ +[mike-mcc]: http://michael-mccracken.net/ + +[appledev-plist]: http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/PropertyLists.html#//apple_ref/doc/uid/10000048 +[appledev-keybindings]: http://developer.apple.com/documentation/Cocoa/Conceptual/InputManager/Concepts/KeyBindings.html#//apple_ref/doc/uid/20001037-DontLinkElementID_2050128a +[appledev-text-system-defaults]: http://developer.apple.com/documentation/Cocoa/Conceptual/BasicEventHandling/Tasks/TextDefaultsAndBindings.html +[appledev-nsres]: http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/NSResponder.html +[appledev-nstext]: http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/NSText.html +[appledev-text-input]: http://developer.apple.com/documentation/Cocoa/Conceptual/InputManager/index.html +[apple-ucode]: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT diff --git a/selectors.html b/selectors.html new file mode 100644 index 0000000..164aa04 --- /dev/null +++ b/selectors.html @@ -0,0 +1,558 @@ + + + + +Cocoa Text System - Usable Selectors + + +
+

Usable Selectors for Cocoa Key Bindings

+ +

by Jacob Rus
+ Friday, 17 March 2006

+ +

We can use a very wide variety of selectors in our key bindings. Note, if you +find more usable selectors, please let me know about them. Thanks.

+ +

Generally-applicable selectors

+ +
    +
  • cancelOperation: — “cancel the current operation.”

  • +
  • showContextHelp: — “invoke the help system, displaying information +relevant to the receiver and its current state. The sender argument is +typically the object that invoked this method.”

  • +
+ +

Undo/redo

+ +
    +
  • undo:
  • +
  • redo:

  • +
  • breakUndoCoalescing — this one sets up an undo state. So if some more +text is typed, and then undo is invoked, it will come back to this point.

  • +
+ +

Text manipulation

+ +

These selectors are for inserting, selecting, deleting, and moving text.

+ +

Inserting text

+ +

In general, these selectors: “Insert a … at the insertion point or selection, deleting the selection if there is one”

+ +
    +
  • These two also “end editing if the receiver is a text field”

    + +
      +
    • insertTab:
    • +
    • insertNewline:
    • +
  • +
  • These selectors should be used to avoid tabbing out of, for instance, a +form field

    + +
      +
    • insertTabIgnoringFieldEditor:
    • +
    • insertNewlineIgnoringFieldEditor:
    • +
  • +
  • insertLineBreak:

  • +
  • insertParagraphSeparator:
  • +
  • insertContainerBreak:

  • +
  • insertBacktab: — “handle a ‘backward tab’”

  • +
  • insertText: — my favorite selector, “insert a string at the insertion +point or selection, deleting the selection if there is one.”

  • +
+ +

Deleting text

+ +

This group of selectors simply wipes text off the face of the planet.

+ +
    +
  • delete: — “deletes the selected text only”

  • +
  • deleteBackward:

  • +
  • deleteForward:
  • +
  • deleteWordBackward:
  • +
  • deleteWordForward:

  • +
  • deleteBackwardByDecomposingPreviousCharacter: — “If the previous +character is canonically decomposable, try to delete only the last +character in the grapheme cluster (for example, deleting “a”+ “´” results +in “a”)”

  • +
+ +

Killing and yanking text

+ +

These selectors delete text, but also put it onto the kill ring (which means that it can be “yanked back later”):

+ +
    +
  • deleteToBeginningOfLine:
  • +
  • deleteToEndOfLine:

  • +
  • deleteToBeginningOfParagraph:

  • +
  • deleteToEndOfParagraph:

  • +
  • deleteToMark: — “Delete all items from the insertion point to a +previously placed mark, including the selection itself if not empty.”

  • +
+ +

This one brings back text:

+ +
    +
  • yank: — “Replaces the insertion point or selection with text from the +kill buffer.”
  • +
+ +

Change the case of the selected text

+ +

“change the case of a letter or letters in the selection, perhaps by opening a panel with capitalization options or by cycling through possible case combinations.”

+ +
    +
  • changeCaseOfLetter:
  • +
+ +

“set the case of the word or words surrounding the insertion point or +selection, expanding the selection if necessary”

+ +
    +
  • lowercaseWord:
  • +
  • uppercaseWord:
  • +
  • capitalizeWord:
  • +
+ +

Moving the insertion point

+ +

“move the selection or insertion point one element or character”

+ +
    +
  • moveBackward:
  • +
  • moveForward:
  • +
  • moveLeft:
  • +
  • moveRight:
  • +
  • moveUp:
  • +
  • moveDown:
  • +
+ +

“move the selection or insertion point one word…”

+ +
    +
  • moveWordBackward:
  • +
  • moveWordForward:
  • +
  • moveWordLeft:
  • +
  • moveWordRight:
  • +
+ +

“move the selection to… or the insertion point to…”

+ +
    +
  • moveToBeginningOfLine:
  • +
  • moveToEndOfLine:
  • +
  • moveToBeginningOfParagraph:
  • +
  • moveToEndOfParagraph:
  • +
  • moveToBeginningOfDocument:
  • +
  • moveToEndOfDocument:
  • +
+ +

“scroll the receiver… one page in its scroll view, also moving the insertion +point to the top of the newly displayed page.”

+ +
    +
  • pageUp:
  • +
  • pageDown:
  • +
+ +

Scroll the text view

+ +

“scroll the receiver… in its scroll view, without changing the selection”

+ +
    +
  • scrollLineUp:
  • +
  • scrollLineDown:
  • +
  • scrollPageUp:
  • +
  • scrollPageDown:
  • +
+ +

“scroll the selection, whatever it is, inside its visible area.”

+ +
    +
  • centerSelectionInVisibleArea:
  • +
+ +

Move the insertion point and modify the selection

+ +

“expand or reduce either end of the selection by one element or character”

+ +
    +
  • moveBackwardAndModifySelection:
  • +
  • moveForwardAndModifySelection:
  • +
  • moveLeftAndModifySelection:
  • +
  • moveRightAndModifySelection:
  • +
  • moveUpAndModifySelection:
  • +
  • moveDownAndModifySelection:
  • +
+ +

“expand or reduce either end of the selection… by one whole word”

+ +
    +
  • moveWordBackwardAndModifySelection:
  • +
  • moveWordForwardAndModifySelection:
  • +
  • moveWordLeftAndModifySelection:
  • +
  • moveWordRightAndModifySelection:
  • +
+ +

Apparently some of the options are undocumented, but work just fine

+ +
    +
  • moveToBeginningOfDocumentAndModifySelection:
  • +
  • moveToEndOfDocumentAndModifySelection:
  • +
  • moveToBeginningOfLineAndModifySelection:
  • +
  • moveToEndOfLineAndModifySelection:
  • +
  • moveToBeginningOfParagraphAndModifySelection:
  • +
  • moveToEndOfParagraphAndModifySelection:
  • +
  • pageUpAndModifySelection:
  • +
  • pageDownAndModifySelection:
  • +
+ +

Select text

+ +

“select…”

+ +
    +
  • selectAll:
  • +
  • selectLine:
  • +
  • selectParagraph:
  • +
  • selectWord: — “extend the selection to the nearest word boundaries +outside it (up to, but not including, word delimiters).”
  • +
  • selectToMark: — “select all items from the insertion point or selection +to a previously placed mark, including the selection itself if not empty.”
  • +
+ +

Working with marks

+ +
    +
  • setMark: — “set a mark at the insertion point or selection, which is +used by deleteToMark: and selectToMark:”

  • +
  • swapWithMark: — “swap the mark and the selection or insertion point, so +that what was marked is now the selection or insertion point, and what was +the insertion point or selection is now the mark.”

  • +
  • selectToMark: — “select all items from the insertion point or selection +to a previously placed mark, including the selection itself if not empty.”

  • +
  • deleteToMark: — “delete all items from the insertion point to a +previously placed mark, including the selection itself if not empty.”

  • +
+ +

Other text editing options

+ +
    +
  • complete: — “complete an operation in progress or a partially +constructed element.”

  • +
  • indent: — “indent the selection or the insertion point if there is no +selection.”

  • +
  • transpose: — “Transposes the characters to either side of the insertion +point and advances the insertion point past both of them. Does nothing to +a selected range of text.”

  • +
  • transposeWords: — “Transposes the words to either side of the insertion +point and advances the insertion point past both of them. Does nothing to +a selected range of text.”

  • +
+ +

Cut/Copy/Paste

+ +
    +
  • copy: — “copies the selected text onto the general pasteboard, in as +many formats as the receiver supports.”

  • +
  • cut: — “deletes the selected text and places it onto the general +pasteboard, in as many formats as the receiver supports.”

  • +
  • paste: — “pastes text from the general pasteboard at the insertion +point or over the selection.”

  • +
  • pasteAsPlainText: — “inserts the contents of the pasteboard into the +receiver’s text as plain text, in the manner of insertText:.”

  • +
  • pasteAsRichText: — “inserts the contents of the pasteboard into the +receiver’s text as rich text, maintaining its attributes.”

  • +
  • Copy/paste fonts:

    + +
      +
    • copyFont: — “copies the font information for the first character of +the selection (or for the insertion point) onto the font pasteboard, +as NSFontPboardType.”

    • +
    • pasteFont: — “pastes font information from the font pasteboard onto +the selected text or insertion point of a rich text object, or over +all text of a plain text object.”

    • +
  • +
  • Copy/paste ruler:

    + +
      +
    • copyRuler: — “copies the paragraph style information for first +selected paragraph onto the ruler pasteboard, as NSRulerPboardType, +and expands the selection to paragraph boundaries.”

    • +
    • pasteRuler: — “pastes paragraph style information from the ruler +pasteboard onto the selected paragraphs of a rich text object.”

    • +
  • +
+ +

Text Styles and formatting (mostly applies to rich text)

+ +

Set the text alignment

+ +

“applies … alignment to selected paragraphs (or all text if the receiver is +a plain text object)”

+ +
    +
  • alignCenter:
  • +
  • alignLeft:
  • +
  • alignRight:
  • +
  • alignJustified:
  • +
+ +

“changes the base writing direction of a paragraph, for languages like Hebrew +and Arabic, for example.”

+ +
    +
  • toggleBaseWritingDirection:
  • +
  • changeBaseWritingDirectionToRTL:
  • +
  • changeBaseWritingDirectionToLTR:
  • +
+ +

Superscript/subscript

+ +
    +
  • superscript: — “applies a superscript attribute to selected text (or +all text if the receiver is a plain text object), raising its baseline +offset by a predefined amount.”

  • +
  • subscript: — “applies a subscript attribute to selected text (or all +text if the receiver is a plain text object), lowering its baseline offset +by a predefined amount.”

  • +
  • unscript: — “removes any superscripting or subscripting from selected +text (or all text if the receiver is a plain text object).”

  • +
+ +

Underline/outline

+ +
    +
  • underline: — “underlines selected text for a rich text object, or all +text for a plain text object.”

  • +
  • outline:

  • +
+ +

Baseline, kerning, ligatures

+ +

Set the baseline of the text.

+ +
    +
  • lowerBaseline: — “lowers the baseline offset of selected text by 1 point, +or of all text if the receiver is a plain text view.”

  • +
  • raiseBaseline: — “raises the baseline offset of selected text by 1 point, +or of all text if the receiver is a plain text view.”

  • +
+ +

Set the kerning to be used for the text.

+ +
    +
  • useStandardKerning: — “cause the receiver to use pair kerning data for +the glyphs in its selection, or for all glyphs if the receiver is a plain +text view.”

  • +
  • turnOffKerning: — “cause the receiver to use nominal glyph spacing for +the glyphs in its selection, or for all glyphs if the receiver is a plain +text view.”

  • +
  • loosenKerning: — “increase the space between glyphs in the receiver’s +selection, or in all text if the receiver is a plain text view.”

  • +
  • tightenKerning: — “decrease the space between glyphs in the receiver’s +selection, or for all glyphs if the receiver is a plain text view.”

  • +
+ +

Tell the selection whether to use standard ligatures, or all ligatures.

+ +
    +
  • useStandardLigatures: — “cause the receiver to use the standard +ligatures available for the fonts and languages used when setting text, +for the glyphs in the selection if the receiver is a rich text view, or +for all glyphs if it’s a plain text view.”

  • +
  • turnOffLigatures: — “cause the receiver to use only required ligatures +when setting text, for the glyphs in the selection if the receiver is a +rich text view, or for all glyphs if it’s a plain text view.”

  • +
  • useAllLigatures: — “cause the receiver to use all ligatures available +for the fonts and languages used when setting text, for the glyphs in the +selection if the receiver is a rich text view, or for all glyphs if it’s a +plain text view.”

  • +
  • toggleTraditionalCharacterShape: — “toggle the +NSCharacterShapeAttibuteName attribute at the current selection.”

  • +
+ +

Open up useful panels for text formatting

+ +
    +
  • orderFrontLinkPanel: — “bring forward a panel allowing the user to +manipulate links in the text view.”

  • +
  • orderFrontListPanel: — “bring forward a panel allowing the user to +manipulate text lists in the text view.”

  • +
  • orderFrontSpacingPanel: — “bring forward a panel allowing the user to +manipulate text line heights, interline spacing, and paragraph spacing, in +the text view.

  • +
  • orderFrontTablePanel: — “bring forward a panel allowing the user to +manipulate text tables in the text view.”

  • +
+ +

Spelling and speech

+ +

Check the spelling of the text view:

+ +
    +
  • toggleContinuousSpellChecking: — “toggle whether continuous spell +checking is enabled for the receiver.”

  • +
  • Perform spell checking. If I remember, the first one of these simply +selects a misspelled word. The second one opens the spelling panel, and +the third one tells the spelling system to ignore the selected word. I’m +not positive of that however.

    + +
      +
    • checkSpelling: — “search for a misspelled word in the receiver’s +text.”

    • +
    • showGuessPanel: — “open the Spelling panel, allowing the user to +make a correction during spell checking.”

    • +
    • ignoreSpelling:

    • +
  • +
+ +

OS X Speech synthesis:

+ +
    +
  • startSpeaking: — “speak the selected text, or all text if no +selection.”

  • +
  • stopSpeaking: — “stop the speaking of text.”

  • +
+ +

Window and document options

+ +

Printing

+ +
    +
  • printDocument: — “bring up print sheet”

  • +
  • runPageLayout: — the same thing happens as when the user chooses the +Page Setup menu command.

  • +
+ +

Closing, saving, reverting documents

+ +

These do the same as the menu options of the same name:

+ +
    +
  • save:

  • +
  • saveAs:

  • +
  • saveTo:

  • +
  • revert:

  • +
  • performClose: — “simulate the user clicking the close button by +momentarily highlighting the button and then closing the window.”

  • +
+ + + +

Window manipulations

+ +

These three simulate clicking the little gem buttons in the top left corner of +the window. Note that close:, etc. are also usable selectors, but not +advisable, as they act slightly differently. Most importantly, close: +doesn’t prompt the user to save changes to unsaved documents, so data loss is +possible if it is used:

+ +
    +
  • performClose:
  • +
  • performMiniaturize:
  • +
  • performZoom:
  • +
+ +

These change window ordering or position:

+ +
    +
  • center — “set the window’s location to the center of the screen.”

  • +
  • orderBack: — move the window behind all the other windows, without +changing either the key window or the main window.

  • +
  • orderFront: — move the window in front of all the other windows, +without changing either the key window or the main window.

  • +
+ +

This one hides the application:

+ +
    +
  • hide: — “Hide all the application’s windows, and the next application +in line is activated.”
  • +
+
+
Anything I can improve? Send me an email: jacobolus AT gmail
\ No newline at end of file diff --git a/selectors.text b/selectors.text new file mode 100644 index 0000000..068a0e2 --- /dev/null +++ b/selectors.text @@ -0,0 +1,474 @@ +Usable Selectors for Cocoa Key Bindings +======================================= + + by Jacob Rus + Friday, 17 March 2006 + + +We can use a very wide variety of selectors in our key bindings. Note, if you +find more usable selectors, please let me know about them. Thanks. + +## Generally-applicable selectors + + * `cancelOperation:` -- "cancel the current operation." + + * `showContextHelp:` -- "invoke the help system, displaying information + relevant to the receiver and its current state. The sender argument is + typically the object that invoked this method." + +### Undo/redo ### + + * `undo:` + * `redo:` + + * `breakUndoCoalescing` -- this one sets up an undo state. So if some more + text is typed, and then undo is invoked, it will come back to this point. + + +## Text manipulation + +These selectors are for inserting, selecting, deleting, and moving text. + + +### Inserting text ### + +In general, these selectors: "Insert a ... at the insertion point or selection, deleting the selection if there is one" + + * These two also "end editing if the receiver is a text field" + + * `insertTab:` + * `insertNewline:` + + * These selectors should be used to avoid tabbing out of, for instance, a + form field + + * `insertTabIgnoringFieldEditor:` + * `insertNewlineIgnoringFieldEditor:` + + * `insertLineBreak:` + * `insertParagraphSeparator:` + * `insertContainerBreak:` + + * `insertBacktab:` -- "handle a 'backward tab'" + + * `insertText:` -- my favorite selector, "insert a string at the insertion + point or selection, deleting the selection if there is one." + +### Deleting text ### + +This group of selectors simply wipes text off the face of the planet. + + * `delete:` -- "deletes the selected text only" + + * `deleteBackward:` + * `deleteForward:` + * `deleteWordBackward:` + * `deleteWordForward:` + + * `deleteBackwardByDecomposingPreviousCharacter:` -- "If the previous + character is canonically decomposable, try to delete only the last + character in the grapheme cluster (for example, deleting “a”+ “´” results + in “a”)" + + +### Killing and yanking text ### + +These selectors delete text, but also put it onto the kill ring (which means that it can be "yanked back later"): + + * `deleteToBeginningOfLine:` + * `deleteToEndOfLine:` + + * `deleteToBeginningOfParagraph:` + * `deleteToEndOfParagraph:` + + * `deleteToMark:` -- "Delete all items from the insertion point to a + previously placed mark, including the selection itself if not empty." + +This one brings back text: + + * `yank:` -- "Replaces the insertion point or selection with text from the + kill buffer." + +### Change the case of the selected text ### + +"change the case of a letter or letters in the selection, perhaps by opening a panel with capitalization options or by cycling through possible case combinations." + + * `changeCaseOfLetter:` + +"set the case of the word or words surrounding the insertion point or +selection, expanding the selection if necessary" + + * `lowercaseWord:` + * `uppercaseWord:` + * `capitalizeWord:` + + +### Moving the insertion point ### + +"move the selection or insertion point one element or character" + + * `moveBackward:` + * `moveForward:` + * `moveLeft:` + * `moveRight:` + * `moveUp:` + * `moveDown:` + +"move the selection or insertion point one word..." + + * `moveWordBackward:` + * `moveWordForward:` + * `moveWordLeft:` + * `moveWordRight:` + +"move the selection to... or the insertion point to..." + + * `moveToBeginningOfLine:` + * `moveToEndOfLine:` + * `moveToBeginningOfParagraph:` + * `moveToEndOfParagraph:` + * `moveToBeginningOfDocument:` + * `moveToEndOfDocument:` + +"scroll the receiver... one page in its scroll view, also moving the insertion +point to the top of the newly displayed page." + + * `pageUp:` + * `pageDown:` + + +### Scroll the text view ### + +"scroll the receiver... in its scroll view, without changing the selection" + + * `scrollLineUp:` + * `scrollLineDown:` + * `scrollPageUp:` + * `scrollPageDown:` + + +"scroll the selection, whatever it is, inside its visible area." + + * `centerSelectionInVisibleArea:` + +### Move the insertion point and modify the selection ### + +"expand or reduce either end of the selection by one element or character" + + * `moveBackwardAndModifySelection:` + * `moveForwardAndModifySelection:` + * `moveLeftAndModifySelection:` + * `moveRightAndModifySelection:` + * `moveUpAndModifySelection:` + * `moveDownAndModifySelection:` + +"expand or reduce either end of the selection... by one whole word" + + * `moveWordBackwardAndModifySelection:` + * `moveWordForwardAndModifySelection:` + * `moveWordLeftAndModifySelection:` + * `moveWordRightAndModifySelection:` + +Apparently some of the options are undocumented, but work just fine + + * `moveToBeginningOfDocumentAndModifySelection:` + * `moveToEndOfDocumentAndModifySelection:` + * `moveToBeginningOfLineAndModifySelection:` + * `moveToEndOfLineAndModifySelection:` + * `moveToBeginningOfParagraphAndModifySelection:` + * `moveToEndOfParagraphAndModifySelection:` + * `pageUpAndModifySelection:` + * `pageDownAndModifySelection:` + + +### Select text ### + +"select..." + + * `selectAll:` + * `selectLine:` + * `selectParagraph:` + * `selectWord:` -- "extend the selection to the nearest word boundaries + outside it (up to, but not including, word delimiters)." + * `selectToMark:` -- "select all items from the insertion point or selection + to a previously placed mark, including the selection itself if not empty." + + +### Working with marks ### + + * `setMark:` -- "set a mark at the insertion point or selection, which is + used by deleteToMark: and selectToMark:" + + * `swapWithMark:` -- "swap the mark and the selection or insertion point, so + that what was marked is now the selection or insertion point, and what was + the insertion point or selection is now the mark." + + * `selectToMark:` -- "select all items from the insertion point or selection + to a previously placed mark, including the selection itself if not empty." + + * `deleteToMark:` -- "delete all items from the insertion point to a + previously placed mark, including the selection itself if not empty." + + + +### Other text editing options ### + + * `complete:` -- "complete an operation in progress or a partially + constructed element." + + * `indent:` -- "indent the selection or the insertion point if there is no + selection." + + * `transpose:` -- "Transposes the characters to either side of the insertion + point and advances the insertion point past both of them. Does nothing to + a selected range of text." + + * `transposeWords:` -- "Transposes the words to either side of the insertion + point and advances the insertion point past both of them. Does nothing to + a selected range of text." + + + +### Cut/Copy/Paste ### + + * `copy:` -- "copies the selected text onto the general pasteboard, in as + many formats as the receiver supports." + + * `cut:` -- "deletes the selected text and places it onto the general + pasteboard, in as many formats as the receiver supports." + + * `paste:` -- "pastes text from the general pasteboard at the insertion + point or over the selection." + + + * `pasteAsPlainText:` -- "inserts the contents of the pasteboard into the + receiver’s text as plain text, in the manner of insertText:." + + * `pasteAsRichText:` -- "inserts the contents of the pasteboard into the + receiver’s text as rich text, maintaining its attributes." + + * Copy/paste fonts: + + * `copyFont:` -- "copies the font information for the first character of + the selection (or for the insertion point) onto the font pasteboard, + as NSFontPboardType." + + * `pasteFont:` -- "pastes font information from the font pasteboard onto + the selected text or insertion point of a rich text object, or over + all text of a plain text object." + + * Copy/paste ruler: + + * `copyRuler:` -- "copies the paragraph style information for first + selected paragraph onto the ruler pasteboard, as NSRulerPboardType, + and expands the selection to paragraph boundaries." + + * `pasteRuler:` -- "pastes paragraph style information from the ruler + pasteboard onto the selected paragraphs of a rich text object." + + +## Text Styles and formatting (mostly applies to rich text) ## + + +### Set the text alignment ### + +"applies ... alignment to selected paragraphs (or all text if the receiver is +a plain text object)" + + * `alignCenter:` + * `alignLeft:` + * `alignRight:` + * `alignJustified:` + +"changes the base writing direction of a paragraph, for languages like Hebrew +and Arabic, for example." + + * `toggleBaseWritingDirection:` + * `changeBaseWritingDirectionToRTL:` + * `changeBaseWritingDirectionToLTR:` + + +### Superscript/subscript ### + + * `superscript:` -- "applies a superscript attribute to selected text (or + all text if the receiver is a plain text object), raising its baseline + offset by a predefined amount." + + * `subscript:` -- "applies a subscript attribute to selected text (or all + text if the receiver is a plain text object), lowering its baseline offset + by a predefined amount." + + * `unscript:` -- "removes any superscripting or subscripting from selected + text (or all text if the receiver is a plain text object)." + + +### Underline/outline ### + + * `underline:` -- "underlines selected text for a rich text object, or all + text for a plain text object." + + * `outline:` + + +### Baseline, kerning, ligatures ### + +Set the baseline of the text. + +* `lowerBaseline:` -- "lowers the baseline offset of selected text by 1 point, + or of all text if the receiver is a plain text view." + +* `raiseBaseline:` -- "raises the baseline offset of selected text by 1 point, + or of all text if the receiver is a plain text view." + + +Set the kerning to be used for the text. + + + * `useStandardKerning:` -- "cause the receiver to use pair kerning data for + the glyphs in its selection, or for all glyphs if the receiver is a plain + text view." + + * `turnOffKerning:` -- "cause the receiver to use nominal glyph spacing for + the glyphs in its selection, or for all glyphs if the receiver is a plain + text view." + + * `loosenKerning:` -- "increase the space between glyphs in the receiver’s + selection, or in all text if the receiver is a plain text view." + + * `tightenKerning:` -- "decrease the space between glyphs in the receiver’s + selection, or for all glyphs if the receiver is a plain text view." + + +Tell the selection whether to use standard ligatures, or all ligatures. + + * `useStandardLigatures:` -- "cause the receiver to use the standard + ligatures available for the fonts and languages used when setting text, + for the glyphs in the selection if the receiver is a rich text view, or + for all glyphs if it’s a plain text view." + + * `turnOffLigatures:` -- "cause the receiver to use only required ligatures + when setting text, for the glyphs in the selection if the receiver is a + rich text view, or for all glyphs if it’s a plain text view." + + * `useAllLigatures:` -- "cause the receiver to use all ligatures available + for the fonts and languages used when setting text, for the glyphs in the + selection if the receiver is a rich text view, or for all glyphs if it’s a + plain text view." + + * `toggleTraditionalCharacterShape:` -- "toggle the + NSCharacterShapeAttibuteName attribute at the current selection." + + +### Open up useful panels for text formatting ### + + * `orderFrontLinkPanel:` -- "bring forward a panel allowing the user to + manipulate links in the text view." + + * `orderFrontListPanel:` -- "bring forward a panel allowing the user to + manipulate text lists in the text view." + + * `orderFrontSpacingPanel:` -- "bring forward a panel allowing the user to + manipulate text line heights, interline spacing, and paragraph spacing, in + the text view. + + * `orderFrontTablePanel:` -- "bring forward a panel allowing the user to + manipulate text tables in the text view." + + +## Spelling and speech ## + + +Check the spelling of the text view: + + * `toggleContinuousSpellChecking:` -- "toggle whether continuous spell + checking is enabled for the receiver." + + * Perform spell checking. If I remember, the first one of these simply + selects a misspelled word. The second one opens the spelling panel, and + the third one tells the spelling system to ignore the selected word. I'm + not positive of that however. + + * `checkSpelling:` -- "search for a misspelled word in the receiver’s + text." + + * `showGuessPanel:` -- "open the Spelling panel, allowing the user to + make a correction during spell checking." + + * `ignoreSpelling:` + +OS X Speech synthesis: + + * `startSpeaking:` -- "speak the selected text, or all text if no + selection." + + * `stopSpeaking:` -- "stop the speaking of text." + + +## Window and document options ## + + +### Printing ### + + + * `printDocument:` -- "bring up print sheet" + + * `runPageLayout:` -- the same thing happens as when the user chooses the + Page Setup menu command. + + +### Closing, saving, reverting documents ### + +These do the same as the menu options of the same name: + + * `save:` + + * `saveAs:` + + * `saveTo:` + + * `revert:` + + * `performClose:` -- "simulate the user clicking the close button by + momentarily highlighting the button and then closing the window." + + + + + +### Window manipulations ### + +These three simulate clicking the little gem buttons in the top left corner of +the window. Note that `close:`, etc. are also usable selectors, but not +advisable, as they act slightly differently. Most importantly, `close:` +doesn't prompt the user to save changes to unsaved documents, so data loss is +possible if it is used: + + * `performClose:` + * `performMiniaturize:` + * `performZoom:` + +These change window ordering or position: + + * `center` -- "set the window’s location to the center of the screen." + + * `orderBack:` -- move the window behind all the other windows, without + changing either the key window or the main window. + + * `orderFront:` -- move the window in front of all the other windows, + without changing either the key window or the main window. + + +This one hides the application: + + * `hide:` -- "Hide all the application’s windows, and the next application + in line is activated." diff --git a/system-bindings.html b/system-bindings.html new file mode 100644 index 0000000..d7a8a66 --- /dev/null +++ b/system-bindings.html @@ -0,0 +1,231 @@ + + + + + + + Cocoa Text System - Default System Key Bindings + + + + + +
+

Default Mac OS X System Key Bindings

+ +

Keyboard viewer--full sized

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ShortcutEnglishComputerese
new lineinsertNewline:
new line (don't leave form box)1insertNewlineIgnoringFieldEditor:
new lineinsertNewline:
new line (don't leave form box)1insertNewlineIgnoringFieldEditor:
 
tabinsertTab:
tab (don't leave form box)1insertTabIgnoringFieldEditor:
backtabinsertBacktab:
 
spacechange languagescycleToNextInputScript:
⌘⌃spacechange input systemtogglePlatformInputSystem:
⌘⌥spacechange keyboard layoutcycleToNextInputKeyboardLayout:
 
delete backwarddeleteBackward:
delete backward (an accent)deleteBackwardByDecomposingPreviousCharacter:
⌃⌥delete backward one worddeleteWordBackward:
delete backward one worddeleteWordBackward:
delete forwarddeleteForward:
delete forward one worddeleteWordForward:
 
esccancelcancelOperation:
esccomplete current wordcomplete:
 
move upmoveUp:
select upwardmoveUpAndModifySelection:
scroll one page upscrollPageUp:
move to the beginning of the documentmoveToBeginningOfDocument:
⌘⇧select to the beginning of the documentmoveToBeginningOfDocumentAndModifySelection:
move to the beginning of the paragraph(moveBackward:, moveToBeginningOfParagraph:)
⌥⇧select to the beginning of the paragraphmoveParagraphBackwardAndModifySelection:
move downmoveDown:
select downwardmoveDownAndModifySelection:
scroll one page downscrollPageDown:
move to the end of the documentmoveToEndOfDocument:
⌘⇧select to the end of the documentmoveToEndOfDocumentAndModifySelection:
move to the end of the paragraph(moveForward:, moveToEndOfParagraph:)
⌥⇧select to the end of the paragraphmoveParagraphForwardAndModifySelection:
move leftmoveLeft:
select leftwardmoveLeftAndModifySelection:
move to the beginning of the linemoveToBeginningOfLine:
⌃⇧select to the beginning of the linemoveToBeginningOfLineAndModifySelection:
move to the beginning of the linemoveToBeginningOfLine:
⌘⇧select to the beginning of the linemoveToBeginningOfLineAndModifySelection:
⌘⌃switch writing direction to right-to-leftchangeBaseWritingDirectionToRTL:
move one word leftmoveWordLeft:
⌥⇧select one word leftwardmoveWordLeftAndModifySelection:
move rightmoveRight:
select rightwardmoveRightAndModifySelection:
move to the end of the linemoveToEndOfLine:
⌃⇧select to the end of the linemoveToEndOfLineAndModifySelection:
move to the end of the linemoveToEndOfLine:
⌘⇧select to the end of the linemoveToEndOfLineAndModifySelection:
⌘⌃switch writing direction to left-to-right textchangeBaseWritingDirectionToLTR:
move one word rightmoveWordRight:
⌥⇧select one word rightwardmoveWordRightAndModifySelection:
 
scroll to the beginning of the documentscrollToBeginningOfDocument:
select to the beginning of the documentmoveToBeginningOfDocumentAndModifySelection:
scroll to the end of the documentscrollToEndOfDocument:
select to the end of the documentmoveToEndOfDocumentAndModifySelection:
 
scroll one page upscrollPageUp:
select one page uppageUpAndModifySelection:
move one page uppageUp:
scroll one page downscrollPageDown:
select one page downpageDownAndModifySelection:
move one page downpageDown:
 
.cancelcancelOperation:
Amove to the beginning of the paragraphmoveToBeginningOfParagraph:
Bmove backwardmoveBackward:
Ddelete forwarddeleteForward:
Emove to the end of the paragraphmoveToEndOfParagraph:
Fmove forwardmoveForward:
Hdelete backwarddeleteBackward:
Kdelete to the end of the paragraphdeleteToEndOfParagraph:
Lcenter the selection in the text areacenterSelectionInVisibleArea:
Nmove downmoveDown:
Osplit the current line(insertNewlineIgnoringFieldEditor:, moveBackward:)
Pmove upmoveUp:
Ttranspose letterstranspose:
Vmove one page downpageDown:
Yyank back ‘killed’ textyank:
 
F5complete current wordcomplete:
 
** Not on Apple keyboards **
Backspacedelete backwarddeleteBackward:
Backspacedelete backward one worddeleteWordBackward:
Linefeednew lineinsertNewline:
Linefeednew line (don't leave form box)1insertNewlineIgnoringFieldEditor:
+ +

+ +
  1. The commands invoked by ‘⌥ ⇥’ and ‘⌥ ↩’ are designed to avoid leaving +the current text box, as happens when pressing ‘⇥’, which usually tabs to the +next form field, or ‘↩’, which usually submits the form.
+ +

US Keyboard Layout with Modifier Keys

+

Keyboard viewer--full sized

+

Keyboard viewer--full sized, shift key

+

Keyboard viewer--full sized, option key

+

Keyboard viewer--full sized, option+shift

+ +
+
Anything I can improve? Send me an email: jacobolus AT gmail
\ No newline at end of file
+

Customizing the Cocoa Text System

+ +

Version 0.8
+ by
Jacob Rus
+ Monday, 20 March 2006

+ +

Apple’s Cocoa text system is a complicated beast, but also extremely flexible, +and with a bit of work, it can be molded to match many working styles. This +how-to covers the 2 major ways of customizing the text input system: Default +key bindings, and for still more control, input managers.

+ +

I’m writing this guide because nothing like it currently exists. There is +incredible room for flexibility in customizing the Cocoa text environment, but +most users—even power-users—have no idea of the available options. This is +mostly because Apple’s documentation is 1) aimed at developers, and 2) often +incomplete or ambiguous. Most users have no idea that they can look at a file +which describes all of the shortcuts on the system, and that they can easily +add their own shortcuts, or replace existing ones with differing +functionality.

+ +

For instance, one of the most common complaints from new Windows and +Linux/Unix switchers is that many of the shortcuts they are used to, such as +using the Home and End keys to move to the beginning, respectively end, of a +line or document, don’t work as they expect in OS X.

+ +

For new users, almost every text box you use is a Cocoa text box (or close +enough to act the same as far as we’re concerned) — Safari web form boxes, +the text field in iChat for sending new messages, the documents in Pages or +TextEdit, the email composer in Mail, etc. Note: Some text boxes are not +Cocoa however, so the tricks in this article still aren’t completely +universal. Notably, Microsoft Word, Adobe applications, AppleWorks, and the +text fields in Camino and Firefox won’t work with this hint.

+ +

I expect that all users of OS X can get something out of this guide. I’m +starting with the basics, so that new users, unfamiliar with the terminal and +the intricacies of OS X can be brought up to speed. But even the most +experienced users should hopefully learn something from this article; I know +I learned several new nifty things while writing it.

+ +

Disclaimer: it is possible, when mucking around with the text system, to +send applications messages they aren’t expecting. This can cause them to +crash. As long as you stick to standard text selectors, you should be fine, +but I’m not responsible if your program crashes because of a binding you add.

+ +

Terminology

+ +

Before delving too deeply into the intricacies of the Cocoa text system, it +helps to understand some programmer jargon.

+ +
    +
  • The Insertion Point (sometimes called the caret) +is the blinking vertical line that shows where text typed into a text box +will show up.

  • +
  • A Buffer is the text field currently being edited. This might be a +text box in an online form in Safari, or the main window in TextEdit.

  • +
  • Key Bindings, often called ‘keyboard shortcuts’, +define what happens when any key is typed in an application. For instance, +in a Mac text editor, the ‘a’ key inserts an a, ‘Opt-e, e’ inserts an +é, and ‘Ctrl-a’ moves the insertion point to the beginning of the +current line.

  • +
  • A String is a chunk of text, literally a ‘string’ of +letters.

  • +
  • A Method is a function that an object (which includes +just about everything in Cocoa) can perform.

  • +
  • A Selector is the name of a method. It is a string. Something like +"insertTab:", or "save:"

  • +
  • The Mark is an invisible point somewhere in the document, which can +be set, and then returned to. Marking is the way regions of text were +selected in UNIX text editors back in the days before they could be +highlighted in blue with a mouse drag.

  • +
  • To Kill some text is basically the same as using the ‘Cut’ command, +but in OS X uses a separate mechanism, that is localized to the current +buffer. By default ‘Ctrl-k’ kills everything after the insertion point on +the current line.

  • +
  • Yank is the analog of the ‘Paste’ command. By default, ‘Ctrl-y’ +yanks back whatever was most recently killed.

  • +
+ +

Many of these terms crop up in the venerable Emacs editor, so reading +about them in the Emacs context can be enlightening: Buffer, +Key Bindings, Mark, Kill

+ +

Existing (Default) Functionality

+ +

Most users of Mac OS X, even long-time Apple geeks, know only a fraction of +the available text system shortcuts. This is a tragedy, as they are consistent +across all applications which use the Cocoa text system, including TextEdit, +Mail, iChat, Safari, and countless third-party applications.

+ +

Simple Text Insertion

+ +

One thing every user knows is that when a plain letter is typed (assuming the +input method in use matches the keyboard), that letter is inserted into a +selected text box. When the shift key is held down, letters are capitalized, +and symbol keys input the second symbol shown on them. For instance ‘Shift-]’ +inputs the ‘}’ character.

+ +

It is possible to see all of the possibilities using the +‘Keyboard Viewer’ palette:

+ +

Keyboard viewer--full sized +Keyboard viewer--laptop

+ +

In addition, the option key, both alone and in conjunction with the shift key, +will change the characters inserted. So ‘Option-y’ inserts a ‘¥’ currency +mark, and ‘Option-Shift-c’ inserts a capital cedilla: ‘Ç’. We can see +how option affects our input options using the Keyboard Viewer:

+ +

Keyboard viewer--full sized--option key +Keyboard viewer--full sized--shift+option

+ +

Users with full keyboards have a complete number pad, with an enter key +(instead of return), and symbols used in arithmetic. This number pad is +available to PowerBook and iBook users as well. The numlock key (Fn-F6), +enables the small symbols printed at the lower right corner of powerbook keys +to be input. But even more usefully, those keys can also be used as a number +pad while the Fn key is held down. This is great for typing lots of numeric +data, and also comes in handy when playing games that allow vertical, +horizontal, and diagonal movement via the number pad:

+ +

Keyboard viewer--laptop--function key

+ +

Of course, there are a number of standard actions that the above pictures +don’t show. For instance, when you type ‘Command-left’, the insertion +point moves to the beginning of the current line. Also, OS X has a fairly +large number of unix/emacs bindings built in.

+ +

The complete list of these extra commands takes up too much space for this +page, so I’ve made them into a separate document.

+ +

Default key bindings

+ +

OS X has three main files which specify the key bindings used by Cocoa +applications:

+ +
/System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
+
+/Library/KeyBindings/DefaultKeyBinding.dict
+
+~/Library/KeyBindings/DefaultKeyBinding.dict
+
+ +

which contain, respectively, the default ‘built-in’ key bindings, system-wide +custom keybindings, and a user’s personalized key bindings. Don’t edit the +built-in /System/Library/ file, as this could seriously hose your machine. +Note that as usual, personalized bindings override the built-in standards.

+ +

If the DefaultKeyBinding.dict file doesn’t exist, don’t worry. Simply making +a KeyBindings folder in ~/Library, and then adding a new text file should +do the trick.

+ +

File Format:

+ +

This file is a normal Property List, which can be created +either with a text editor, such as TextWrangler, Smultron, +or TextMate, or with Apple’s Property List Editor, which is installed +with the developer tools. Property lists are pervasive in OS X, and are used +for all sorts of configuration files, and preferences. Any file which has a +.plist or .dict extension is a property list. Every application has an +info.plist file inside of it which tells OS X what types of files that +application can handle. Smart folders (.savedSearch files) are property +lists. The defaults command, which can be run from the terminal, is a quick +way to edit single items in a property list.

+ +

There are two types of property lists, old-style NeXT text files, and newer +XML formatted files. I will use the old-style plists in this how-to, because +they are easier to read and understand; they are more compact, with less +distracting markup.

+ +

The NeXT property list format is a file format that can describe, using +plain text, all of the objects used in Cocoa programs. We specifically care +about 3 types: ‘strings’, ‘lists’, and ‘dictionaries’:

+ +
    +
  • A string is simply a sequence of letters, numbers, and symbols, +such as:

    + +
    "this is a string with some $#@! symbols"
    +
  • +
  • A list is, like it sounds, a list of other objects, such as +lists or strings:

    + +
    ("a", "list", "can", "contain", "many", "strings")
    +
  • +
  • A dictionary contains pairs of “keys” and “values”. Basically, +dictionaries provide a way to name a bunch of objects, and refer +to them by name. Note that while dictionary keys must be strings, +the values can be any type of object.

    + +
    {"key1" = "value1"; "key2" = "value2"; "key3" = ("a", "list");}
    +
  • +
  • In addition, comments can be added to old-style property lists +by enclosing some text in /* and */

  • +
+ +

Every property list has a root dictionary object, which can contain +sub-objects. A simple plist file might look like:

+ +
{
+    /*  ** THIS IS A COMMENT: **
+     * 
+     * Notice that each line in the dictionary has a 'key' string,
+     * and a 'value', which can be a string, a list, or another
+     * dictionary.
+     */
+
+    "My String" = "Hey there!";
+
+    "My List" = ("first string", "second string", "final string");
+
+    "My Dictionary" = {
+        "Sub-string A" = "This is a string inside a dictionary";
+        "Sub-list B" = ("This is a list", "inside a dictionary");
+    };
+}
+
+ +

This property list has three key-value pairs: a string, a list, and a +dictionary.

+ +

The format of DefaultKeyBinding.dict

+ +

The DefaultKeyBindings.dict file is fairly straight-forward. It is a normal +property list, which as keys, uses the requested key bindings, and as values +uses the commands they should execute. For instance, I might want the letter +a to not type ‘a’, but instead insert a tab. If I put the following in my +DefaultKeyBinding.dict, then all Cocoa apps launched afterwards will insert +a tab key instead of an a:

+ +
{
+    /* This will make all a's turn to tabs.  Beware. */
+    "a" = "insertTab:";
+}
+
+ +

How to represent bindings

+ +

But of course, if we could only bind things to letter keys, this wouldn’t +really be so useful, now would it? Fortunately, Apple’s engineers made sure +that every key that you could possibly ever type can be put into a binding.

+ +

The way it works is simple. For lower-case and capital letters, simply type +the letter into the string. So "y" represents the ‘y’ key, while "T" +represents ‘Shift-t’. For numbers and symbols, including space, the same +holds. So "!" represents ‘Shift-1’, or however you type ‘!’ on your keyboard +layout. To add modifier keys, add a symbol corresponding to that modifier:

+ +
+

"@t" = Command-t
+ "^t" = Control-t
+ "~t" = Option-t
+ "@^T" = Command-Control-Shift-t
+ "~ " = Option-space

+
+ +

For numbers and symbols, to add the shift key is not as easy as typing a +capital letter, so $ stands for shift. Also, there is a difference between +numbers above the letter keys, and numbers on the keypad. To indicate keypad +keys, use #:

+ +
+

"@$#5" = Command-Shift-Numpad 5
+ "^6" = Control-6

+
+ +

Note: Lots of bindings with the Command key won’t work. This is done by +Apple to ensure that applications can use these shortcuts for themselves, and +not worry about user key bindings. Some will work, however, such as +‘Command-right arrow’.

+ +

There are still 2 limitations: First, what do we do if we want to bind a +literal ‘@’ or ‘#’ symbol? We escape it! By adding a \\ before the symbol, +we can avoid this. At the moment, the only way I can get ‘\’ itself to bind to +anything is by writing it as ‘\U05C’.

+ +
+

"~\\$" = Option-$

+
+ +

Second, if we were limited to symbols and modifiers, we would still cut off +keys like ‘delete’, ‘tab’, and ‘esc’, so any keys that aren’t already covered +can be entered using their unicode values:

+ +

Unicode values for Apple non-letter keys:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Escape: \U001B
 
Tab: \U0009
Backtab: \U0019
 
Return: \U000A
Enter: \U000D
 
Delete: \U007F
 
Up Arrow: \UF700
Down Arrow: \UF701
Left Arrow: \UF702
Right Arrow: \UF703
 
Help: \UF746
Forward Delete:\UF728
Home: \UF729
End: \UF72B
Page Up: \UF72C
Page Down: \UF72D
 
Clear: \UF739
 
F1: \UF704
F2: \UF705
F3: \UF706
F35 \UF726
 
Not on Apple keyboards:
 
Menu: \UF735
+ +

Notes:

+ +
    +
  • ‘Backtab’ is ‘Shift-Tab’
  • +
  • The key labeled ‘Backspace’ on most PC keyboards is the ‘Delete’ key
  • +
  • The ‘Num Lock’ key on PC keyboards is ‘Clear’
  • +
  • The keys labeled ‘Print Screen’, ‘Scroll Lock’, and ‘Pause’ are +respectively ‘F13’, ‘F14’, and ‘F15’
  • +
  • The key labeled ‘Insert’ is the ‘Help’ key
  • +
  • I’m not sure whether the ‘Menu’ key actually does anything, as I don’t own +a keyboard with that key on it.
  • +
+ +

For a complete list, including some keys that aren’t on current apple +keyboards, but can still be used by OS X, see the Registry +of Apple Unicode corporate-zone characters.

+ +

In general, the best way I’ve found to discover key’s escape codes is to use +the free Key Codes application from Peter Maurer. The app brings +up a floating palette which prints a log of all the keys typed.

+ +

More complicated bindings and actions

+ +

Of course, sometimes we wish we had more keys on the keyboard. Even with all +of the modifier keys, it gets hard to keep different functionality separated, +and things get confused. For this reason, it is possible to use +multiple-keystroke bindings. To this end, instead of binding our first +keystroke to a selector, we bind it to a dictionary, containing the second +keystrokes. Emacs, the UNIX-based text editor, has many such +multiple-keystroke bindings. Therefore, as an example of how this can be done, +we will take Emacs bindings, and try to replicate them in Cocoa Text Widgets.

+ +

One Emacs command is ‘Control-x, u’, for ‘undo’. Another is ‘Control-x, +Control-s’ for ‘save’. To add this command to our key bindings, we need to +bind ‘Control-x’ to a dictionary of sub-bindings:

+ +
{
+    /* Control-x dictionary */
+    "^x  " = {
+        "u"  = "undo:";          /* C-x u    =>  undo */
+        "^s" = "save:";  /* C-x C-s  =>  save */
+    };
+}
+
+ +

Our ‘Control-x’ parent dictionary can have several multiple-keystroke bindings +associated with it. In this way, we can have whole areas of functionality +given to one ‘parent’ key binding, with the resulting action to be determined +by a letter. We can effectively have 4 or 5 keyboards for our bindings!

+ +

But of course, the number of bindings is not our only limitation so far. We +are also limited by the range of selectors offered by the text box. We often +find ourselves performing complicated actions repeatedly, and would like to +invoke them with single keystroke. Mostly when this happens, Applescript, or +some other programming language is the best solution. On occasion, however, +the text system has enough power and flexibility to do the trick. This is +because, besides single selectors, a binding can also execute a list of +selectors, sequentially.

+ +

As an example, imagine that I often want to change paragraphs of text to all +capital letters, but I’m tired of selecting the whole paragraph with my +keyboard or mouse. I want ‘Control-Option-u to make my paragraph all +uppercase, and then I want it to start a new paragraph by inserting two new +lines at the end of the paragraph.

+ +

This (somewhat contrived) action can be broken into steps: 1. Select paragraph +2. Make all the letters uppercase 3. Move to the end of the paragraph 4. +Insert two new lines.

+ +

We can make a plist of these directions:

+ +
{
+    "^~u" = ("selectParagraph:",
+             "uppercaseWord:",
+             "moveToEndOfParagraph:"
+             "insertNewline:",
+             "insertNewline");
+}
+
+ +

So, with the the ability to map multiple-keystroke bindings to sets of actions +that can perform complicated behaviors, what’s left?

+ +

Every time you type a key, the Cocoa text system looks for bindings, and if +none are found for the key, it instead passes the keystroke along as a string +input to the insertText: selector. Well, as luck would have it, +Kevin Ballard, from the ##textmate IRC channel on +freenode (a delightful place to chat, incidentally), found a real +gem, that doesn’t seem to be documented anywhere on Apple’s website, or +anywhere else: It is possible to use the insertText: selector as part of a +binding, and thereby bind an arbitrary string to a keystroke. If we bind a +key to a list, containing "insertText:" as one of its strings, the next +string in the list will be inserted into the text field. Example:

+ +
{
+    /* Realize that actually using this will render your a key
+       amusingly useless.*/
+    "a" = ("insertText:", "some fun text", "moveWordBackward:");
+}
+
+ +

as a DefaultKeyBinding.dict file will make the ‘a’ key type ‘some fun text’, +and then move the insertion point to the beginning of the word ‘text’, instead +of the simply typing an ‘a’, as usual.

+ +

This is amazingly useful if there are some symbols or strings which must be +entered on a regular basis. For instance, imagine that I sometimes need to +type LaTeX Greek letters, and also sometimes need the associated unicode +symbols (for alpha, beta, etc.). The following DefaultKeyBinding.dict could +reduce this load considerably:

+ +
{
+    /* Greek unicode letters */
+    "^g" = {
+        "a" = ("insertText:", "\U03B1");
+        "b" = ("insertText:", "\U03B2");
+        "g" = ("insertText:", "\U03B3");
+        "d" = ("insertText:", "\U03B4"); /*
+        ...                               */
+    }
+
+    /* Greek LaTeX letters */
+    "^m" = {
+        "a" = ("insertText:", "\\alpha");
+        "b" = ("insertText:", "\\beta");
+        "g" = ("insertText:", "\\gamma");
+        "d" = ("insertText:", "\\delta"); /*
+        ...                               */
+    }
+}
+
+ +

Now, when I type ‘Control-g, a’, ‘α’ will be inserted instead, and when +I type ‘Control-m, g’, ‘\gamma’ will be inserted, etc.

+ +

It seems like this behavior is just an exception, as I haven’t found any other +selectors which take an argument, but it’s a glorious exception, for which I +can envision some truly creative uses.

+ +

For instance, if I want to drive some friends bonkers, I could set +DefaultKeyBinding.dict up to ROT13 all of my letters, to enable +“typing in code”. Or I could set it up to allow typing in leetspeak +(“1337”).

+ +

Most obviously perhaps, I could bind common phrases or code snippets to simple +keystrokes. This would allow systemwide text shortcuts without the need for +third-party applications (though the third party applications out there, +notably Peter Maurer’s Textpander, do a lot more than key +bindings allow).

+ +

One binding that I made, and it’s one of my favorites, allows me to type +html and xml tags with ease. I have Control-shift-h make a starting and tag +pair out of the word I’ve just finished typing, and put the cursor in the +middle of them. Here’s the code:

+ +
{
+    /* This command will let Ctrl-Shift-H turn the previous word
+     * into an HTML/XML opening and closing tag pair. */
+    "^H" = ( "setMark:",
+             "moveWordBackward:",
+             "deleteToMark:",
+             "insertText:", "<",
+             "yank:",
+             "insertText:", ">",
+             "setMark:",
+             "insertText:", "</",
+             "yank:",
+             "insertText:", ">",
+             "swapWithMark:");
+}
+
+ +

Finally, the possibilities for pranks on coworkers, significant others, etc. +is considerable. For instance, we can set the keyboard up to malfunction on a +couple of letters, maybe a ‘z’ could say “you didn’t +*really* want to type that, did you?”:

+ +
{
+    "z" = ("setMark:",
+           "insertText:",
+           "you didn't *really* want to type that, did you?",
+           "selectToMark:",
+           "speakText:");
+}
+
+ +

Moving right along, now that we have the idea of how to form our bindings, we +can get to figuring out exactly which selectors are available to us.

+ +

Usable selectors

+ +

It is hard to figure out exactly which selectors a text box, and more +generally, an application, will respond to. There are a huge number of +options, but they are not all documented in one place. This is partly because +if one object in an application doesn’t respond to a particular message, it +will pass the message along to its parent object.

+ +

Still, we can find a large number of useful selectors by searching through the +documentation we can find, and testing what the selectors do. The biggest +source of selectors that we might want to use is in the NSResponder class — +see its documentation. Specifically, we care about the +‘Action methods’ section. Also, the documentation for +NSText has some selectors we can use, and many other classes provide useful +selectors as well, such as NSDocumentController and NSWindow.

+ +

Because there are so many usable selectors, I’m putting them in a separate +page. Here’s a link.

+ +

Examples

+ +

I’ve put together some examples of how this could be used. To use one of +these, simply rename the file to DefaultKeyBinding.dict and plop it in the +~/Library/KeyBindings folder. One of the most common uses of custom key +bindings is emulating another operating system or environment, such as Windows +or Emacs or BBEdit:

+ + + +

Beyond that, it’s possible make key bindings as pranks. That’s always fun:

+ + + +

Text System Defaults

+ +

Besides making our own key bindings, there are a few other nifty changes we +can apply to the Cocoa text system, using the “defaults” system. Apple’s +developer site tells about them. Some of +these defaults are for unimplemented features, and are therefore worthless to +us. There are three defaults however which are of interest to us here. They +can be set using the defaults terminal command. I will show them applying +globally with the -g flag, but it is possible to set them on an application +by application basis, by for instance specifying com.apple.textedit instead +of -g.

+ +
    +
  • NSTextKillRingSize

    + +

    This default sets the size of the kill ring. It can be set as follows:

    + +
    defaults write -g NSTextKillRingSize -string 4
    +
    + +

    This changes the size of the “kill ring” which large deleted blocks of +text get copied to. In this case, I have set it to keep track of the 4 +most recent such blocks. This means that this text can be cycled through, +and won’t be lost as soon as more text is killed. An extra binding is +useful in dealing with a kill ring: yankAndSelect:, which cycles through +the kill ring.

  • +
  • NSRepeatCountBinding

    + +

    This one is one of the coolest features of the text system. In emacs, +pressing “Control-u”, and then a number, 94 say, and then any other +command, will repeat that command 94 times. It is possible to set OS X to +do the same thing with “Control-u” as follows:

    + +
    defaults write -g NSRepeatCountBinding -string "^u"
    +
    + +

    Of course, any other binding could be set instead of “Control-u”.

  • +
  • NSQuotedKeystrokeBinding

    + +

    This default is normally linked to Control-q. It causes the next +keystroke typed to be passed through the system, without activating any +bindings. For example, if the “Option-v” is bound to scroll up in the +key bindings file, a square root sign — √ — can still be entered by +typing “Control-q, Option-v”.

  • +
+ +

Input Managers

+ +

NeXT and Apple realized, when they created Cocoa, that many actions could not +be foreseen by their framework developers. The key binding system is great if +we want to stick within the usual sorts of operations on English text, such as +transposing two letters, skipping the end of a paragraph, or upper-casing a +word, and we can combine these simple actions, but sometimes to do what we +want requires more.

+ +

An input manager is a piece of code which is loaded into every running Cocoa +application. The purpose of an input manager is to extend the text system in +ways not thought of by the application’s original programmers.

+ +

We’ve all been hearing of late about how input managers can be used for +nefarious purposes, but as long as they stick to modifying the text system, +they mostly stay out of trouble, and they can be incredibly useful. Two input +managers in particular are quite popular:

+ +
    +
  • First, Mike Ferris’s TextExtras extends the Cocoa +text system in ways that programmers, particularly, will find +useful. I haven’t spent too much time playing with TextExtras, +especially since TextMate, my editor of choice, +doesn’t quite use the same Cocoa controls as other Cocoa-based +editors like SubEthaEdit and Smultron. But +TextExtras adds quite a bit to the Cocoa text system, including +indent wrapping, auto-indentation, showing and selecting matching +braces, improved completion, and, perhaps most of all, customized +piping of text through shell commands. This allows all sorts of +snazzy behavior (note that editors like TextWrangler and +TextMate have their own implementations of this feature).

  • +
  • Second, one of my favorite text-system extensions is +Michael McCracken’s Incremental Search Input Manager +(ISIM). Here’s a link to a zip-file of the universal binary.

    + +

    ISIM is an input manager that provides three new selectors for binding in +our DefaultKeyBinding.dict file: ISIM_incrementalSearch:, +ISIM_reverseIncrementalSearch:, and abort: (that last one may +work for other things, I’m not sure). The idea is pretty simple, but +incredibly useful. Basically, when the selector is invoked, a little +window pops up at the bottom of the current text box. When you type +into this little window, ISIM searches through the current document +searching for text that matches, and selects the first occurrence of +such text. Repeatedly invoking the selector flips through any other +occurrences in the document. A picture can say this better than I can:

    + +

    Incremental Search Input Manager

    + +

    The relevant part of my key bindings file looks like this:

    + +
    /* Incremental search */
    +"^s"        = "ISIM_incrementalSearch:";
    +"^r"        = "ISIM_reverseIncrementalSearch:";
    +"^$g"        = "abort:";
    +
  • +
  • Finally, for those who can’t get enough customization in a straight +NSTextView, using the techniques described already, Gus Mueller made an +input manager, described in two blog posts, which +allows the contents of any Cocoa text field to BBEdit. Type the relvant +key, and your text will pop up in a new BBEdit document. Save, and the +text in the original text field is updated. It’s awesome. According to the +second post, modifying it to work with any editor which uses the ODBEditor +suite (used mainly by FTP programs to open remote files in a local text +editor) would be easy—it’s open source.

    + +

    TextMate, my editor of choice, comes with a similar input manager, I +believe inspired by the first one. And the great thing about TextMate’s +version is that it works in Mail (I’m not sure, but I think Gus’s +doesn’t). If there’s a text editor you like, it’s extremely nice to be +able to edit Safari form fields, emails, and other text using that editor.

  • +
+ +

Even Lower-Level Hacking: Keyboard Layouts

+ +

First, we haven’t seen any way to remap modifier keys so far. This can be +easily accomplished using the Keyboard and Mouse preference pane. Click the +‘modifier keys’ button at the bottom of the view, and a nice sheet pops up. +Mine, which I’ve set to put the keys on a Model M keyboard in the +right places, with ‘Control’ where it belongs next to the ‘A’ key, looks like +this:

+ +

Keyboard Pref Pane

+ +

For even finer control over the keyboard, it is possible to create +customized keyboard layouts. These allow any unicode glyphs +to be mapped to the keys on the keyboard, so alternate language scripts can be +entered, etc. This will work across the OS, not just in Cocoa text editors, +but is also a much lower-level change, which means that messing it up could be +much worse. I haven’t actually ever used any layouts other than U.S. on my +PowerBook, so I don’t know how easy this is. There is a pretty nice GUI +editor for this from SIL called Ukelele. It has great +documentation, and should be all that is needed to make custom keyboard +layouts.

+ +

Finally, for the truly adventurous, it is apparently possible to go even +lower-level than Ukelele, and patch the ADB codes which are registered +by Apple’s USB keyboard drivers. I’m not sure exactly which versions of OS +X this works with, and any hacking at this level requires a serious +disclaimer, as a wrong move here could really mess up your system. But here +are two links at snark.de which discuss such arcane +trickery. Good luck to any who try this. This same guy (Heiko Hellweg) also +made his own keyboard layout, and patched Apple’s keyboard drivers +to give himself a meta key:

+ +
+

“I got myself the Tiger-Version of the ADB Keyboard Driver + (AppleADBKeyboard-238.3.4) and hacked away in XCode. My current setup uses + the obnoxious enter key (between the cursor keys and the right command + key) as the alt modifier (you can do that without a compiler by just + fiddling with info.plist) and turns the original alt-key on the left + onto a META key that sends escape in front of every other key as long as + it is pressed (for this one, i needed to replace + /System/Library/Extensions/AppleADBKeyboard.kext with an actual + modified binary).

+ +

“Now i can actually type ahead blindly without thinking twice. Contact me, + if you are interested in using this too.”

+
+ +

Needless to say, I wouldn’t advise trying this, unless you know what you are +doing.

+ + + +

TODO: Much of this list of links is still incomplete

+ +

Text Editors

+ +

Free Cocoa text editors for OS X:

+ +
    +
  • TextEdit — Comes on every Mac
  • +
  • Smultron — Clean, simple, Open-source text editor. +Named after some sort of Scandinavian strawberry. Can’t beat free!
  • +
+ +

Commercial Cocoa text editors:

+ +
    +
  • TextMate — most awesome text editor ever. I really can’t +recommend this one enough. If you type lots of text, whether it’s +C or Python code, LaTeX, John Gruber’s +Markdown, or anything else, TextMate is amazing. It uses a +different text box than the usual Cocoa one, so not all of the +things discussed here will work, for instance, tying multiple commands +to one binding, or using multiple keystroke commands. Still, TextMate +allows far more customization than NSText widgets in general, so +custom system bindings aren’t as necessary.
  • +
  • SubEthaEdit — Nifty collaborative editor, which allows +people halfway around the world from each-other to work on the same +text file at once. This editor kicks all kinds of ass when it comes +to collaborative note taking, or pair programming. It’s not too shabby +for solo programming either.
  • +
+ +

Non-Cocoa text editors for OS X:

+ +
    +
  • TextWrangler — Excellent (free!) editor from Bare Bones.
    +Not Cocoa, so the keybindings described in this how-to won’t work, +but a great Mac citizen nonetheless, with lots of scriptability, +and excellent documentation.
  • +
  • BBEditBare Bones’s flagship editor. $200, or +$130 as an “upgrade” from the free TextWrangler, or $50 for +educational users. Steep pricing, but does most everything you’d +ever expect a text editor to do, and more. I think I still like +TextMate better, but Mac users have sworn by BBEdit for almost as +long as I’ve been alive.
  • +
+ +

Apple Developer Documentation

+ +

Apple has some documentation for the key bindings, but all in all it is far +from adequate, especially for regular users, as opposed to competent +Objective-C hackers.

+ + + +

Third-party documentation

+ + + +

Key Bindings Editors

+ +
    +
  • Gerd Knops’s Key Bindings Editor is a Cocoa application which +allows the viewing and editing of key bindings files. It knows where the +system, XCode, and TextMate key bindings are, and allows html and plain +text export.
  • +
  • Mikael Langer’s TextMacro does some stuff which is no +longer needed… it’s an input manager which allows arbitrary text to be +input with key bindings, and is supposed to provide for multiple sets of +key bindings which can be swapped out. It is implemented as a preference +pane.
  • +
+ +

Input Managers

+ + + + + + +