Update Arabic keyboards to support OSK font for better display
Follows #3817 for keymanapp/keyman#15263 for the following Arabic keyboards:
- arabic_w_o_dots (Also updated Keyman version to 17.0 because the touch layout uses flick or multi-tap gesture on K_A)
- easy_arabic (Harmattan)
- sil_arabic_phonetic
Applies the display map from #3814 and updates the touch layout keyboard and OSK. Also cleaned up the .kpj project files.
Test-bot: skip
Is the .kvks correct? The .json file is KbdArab, but the font is KbdArabScheherazade
If it's not correct, then the previous PR that I just approved is incorrect also.
Also, one of the keyboards uses Harmattan. I may have the KbdArabHarmattan ready to roll out by the end of the week, so it might be better to wait for that.
Is the .kvks correct? The .json file is
KbdArab, but the font isKbdArabScheherazadeIf it's not correct, then the previous PR that I just approved is incorrect also.
good catch. I'm not sure.
https://github.com/keymanapp/keyboards/blob/5811d30265065b1f8aeed6233697c35925b73113/release/sil/sil_hebrew/source/sil_hebrew.kvks#L11
That .json file is KbdHebr, but the font is KbdHebr-Regular.ttf
I added Harmattan as a font for the OSK, so you could now select that font instead of Scheherazade for easy_arabic.
I've updated easy_arabic to use KbdArabScheherazade.ttf
And it looks like .kvks needs to refer to the font name cause the OSK originally showed tofu when I tried KbdArab.
I'll update the basic_kbda keyboards separately.
@mcdurdin clarified:
The kvks needs to refer to a normal ttf, not the generated font.
I'll need to fix these...
@mcdurdin clarified:
The kvks needs to refer to a normal ttf, not the generated font.
I am VERY confused. All of the Khmer keyboards (.kvks) have this:
<encoding name="unicode" fontname="KbdKhmr" fontsize="12">
That refers to the font called "KbdKhmr" whose filename is KbdKhmr.ttf
All the Hebrew ones are similar:
<encoding name="unicode" fontname="KbdHebr" fontsize="12">
The difference for Arabic is that we didn't give the font files the same name as the .json file.
So, I think any keyboard that will use the font "Harmattan" should have this in the .kvks file:
<encoding name="unicode" fontname="KbdArabHarmattan" fontsize="12">
and similarly the ones using Scheherazade New (or Amiri, etc) should use:
<encoding name="unicode" fontname="KbdArabScheherazade" fontsize="12">
Is that correct @mcdurdin ?
Because the displaymap transform is done at compile time, the .kvks should refer to the design-time font, so that you don't see tofu in the .kvks editor. The package compiler will rewrite the embedded .kvk to reference the correct font (as long as it is selected in the .kps, of course!).
I still feel like fonts are too complicated -- the line between design-time and deploy-time fonts is messy.
Because the displaymap transform is done at compile time, the .kvks should refer to the design-time font, so that you don't see tofu in the .kvks editor. The package compiler will rewrite the embedded .kvk to reference the correct font (as long as it is selected in the .kps, of course!).
I assume this means we need to redo all the Khmer and Hebrew ones? Ugh.
Probably, since it's an SIL keyboard.
On Wed, Dec 17, 2025, 6:36 PM Darcy Wong @.***> wrote:
@.**** commented on this pull request.
In release/sil/sil_arabic_phonetic/source/sil_arabic_phonetic.kvks https://github.com/keymanapp/keyboards/pull/3818#discussion_r2629088335:
-@@ -7,7 +7,7 @@
+ @LornaSIL https://github.com/LornaSIL - now I'm wondering if this should also be ScheherazadeNew
— Reply to this email directly, view it on GitHub https://github.com/keymanapp/keyboards/pull/3818#pullrequestreview-3590210898, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABV6RI247GF6Y5VY2JBP5J34CHZJ5AVCNFSM6AAAAACPA3UXSCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTKOJQGIYTAOBZHA . You are receiving this because you were mentioned.Message ID: @.***>