From 5018137152cf1fe3a11e407bdd660afc32e9ea5b Mon Sep 17 00:00:00 2001 From: Keyman Build Server Date: Fri, 13 Nov 2026 16:18:19 -0600 Subject: [PATCH] auto: Keyboard help deployment --- .../elkatib/1.0/elkatib-keyboard-layout.png | Bin 0 -> 20946 bytes keyboard/elkatib/1.0/elkatib.php | 73 ++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 keyboard/elkatib/1.0/elkatib-keyboard-layout.png create mode 100644 keyboard/elkatib/1.0/elkatib.php diff --git a/keyboard/elkatib/1.0/elkatib-keyboard-layout.png b/keyboard/elkatib/1.0/elkatib-keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..9beb4978985ca1578817157cbcbd225f46215ad9 GIT binary patch literal 20946 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%0A8^rNHS}P%9!{?r>#)=z~ zv}PF?!&tDfk>USp{4Q`xe%jv?*txQ6 zH-HvmF&HMOCWqadeB2ZIOgt!ZldUk^zm_(x29y6GSl=v7KV95<+68x72%))Y{;of=L*+(ElJYgAr79VB^7KrLfpWtUl?XZ_hNK=uEUZj$OMaH9gR7b zI#PUMsa&v=iP66G`Ff)?;m2)9q1VSgTw*h!tXK1QG#DPz=EOyh8zz9>mzorJK@IMM z9HWgCW47RbPD&0z{Oy;)R&kf86|5Q^gIT?Nj~_EOb*HJ#BCiVO*6S}y4(wa;!_daA zMUE5}tNtd*AIUu9tuW8k%)}uBE9zmKvE#`ZK<8VkhMX*G!i~>)^hxhH3R-QCFJ_*XWhApPE&Nvj%@ySLOX}3dnUi(-i(hdPV|%H?6S)$9@Y90O z#!_Y>t#p5vGCQly*~4oVSUJm}MwnGSQ2mm#`j3&I`2=d@b^sh^7rr2cjCT4INJ38x zcX8`>OS+OUhyiosIjeK6a%O5vP6th5`Nu$kd_fr8^7tbrn?y|BxEojJ4;sA&kP3{#eQqOwCUhlq&WHGwxGsNR2bOo2Io2s$Qt zr?o0Wh4yjF_+x-XxVn#GaI37+55ZNAd_X6EF>lWn80am~Nw`mO?kc(&5%H%c$z-=H z4VO>yIKQ!NW#(lXxDa-N%L^9eFkZ;nqBK&<0C)_zZWX$WCkV<*EW~CwR7`169TV=j z=I4k+NPF)aDM7!ZT_214Pe2|sF&@M1E_=GJc2LBgBhjR6&zUXZW)b`!OxRW1v`!<& zI7o>ymt?bcWycU9Db}aE#>ztd9k};0G#8t$RF^$kk5mjWLnmFqN1H^XE>w=a8`e4< z)5+qvK+9a3!YKP)ns>hmYD*4}aEAL(OuStw=cng{p-41khw${-De>|l%KU^ts_dt>t>tFlWZ)${XHz&{WJ;>w#Tnqz--z$EB@%n73UaXu@;G4>i2O zC^*82US@PB=_iYq8Mdr*#uP(obC5&-^uGpBy$Y#+>c=j zTw6%K$o1+~reNsg`#G#;C1ZSEhp1Jr+jYI*k<@whm&H=f(}onA=swca)?k~h^Dbl# z0~#c~`IT6~`{3(-gN(LYOPheFO^6D3OI{nGm=WsqrekLO z3+L2hlqN&uf-zcd76W?I?Uly$`Y7rQEPC@R(SrE-*U)(zGcPb+>Gbh>l0roqhWGKw z)(yaN$nsNnl0u!D>Yx@gvykB6dJ;#S%;^+uoV|*#v`a#H4NgMm=JafF&k$u;D&B6dwQ`p{$=S~?e@yM=4tHorIDz5T8@H)jl%Hjl6((4dPWJ;bM|r8V$!yR2V@6b-v%81Z zfH9LS_f$8X7z*%jR6ABF1TI~{T1ONI=1w&d3Y~`6naw!|TITb9B=^n}X8G8GW9{e4 z?xDyWIlC{Pc}*Lkn%w8@$|j<}G#C|1?aRk{&beaUzre{GpIYrl@<+XSo$GruU-zZQ&?P=-}!P$?fVy_?R9pU+>g&g zh8-z4L%g5+-)?cke?R-=PdtrfO3u?(&&8C?7|B=1DS6+oFLdo4VcX(l2v`a8&`vyN zaB6E_HtomGN`@Lr`1qh&< zj{r-&QZDQ}SNhM;^4(;-jplYL*bG!%KN%J#iyH_ic|f=$_8+Fnv*peiH5z0GouB?W z7(F*yY87E0EjXm{v-RH^Lw_?#Et>MHv^yiCY6IJqHYP}29$mvp)Dd>c%zK1%3NgC z3tgtQ Q + +
+ +
+

Elkatib – الكاتب

+
+ Elkatib Arabic Keyboard Layout + +

Elkatib is an Arabic keyboard layout designed to make typing faster, easier, and more efficient.

+

الكاتب هو تخطيط لوحة مفاتيح عربية صُمم لجعل الكتابة باللغة العربية أسرع وأسهل وأكثر كفاءة.

+
+ +
+

Desktop Keyboard Layout

+

تخطيط لوحة المفاتيح

+

Explore the layout and its different key combinations using the visual keyboard below.

+

يمكنك استعراض توزيع الحروف العربية والتعرف على الرموز المتاحة باستخدام مفتاح Shift.

+
+
+ +
+

Using the Shift Key

+

استخدام مفتاح Shift

+

The Shift key provides access to additional characters and symbols assigned to the secondary layer.

+

يتيح مفتاح Shift الوصول إلى مجموعة إضافية من الحروف والرموز الموجودة في المستوى الثاني.

+
+ +
+

About the Project

+

Elkatib is an independent layout project created by Optikman. It includes extensive documentation and research analyzing letter frequency distributions and optimal home-row key placement.

+ +
+ +
\ No newline at end of file