Hi David. I’m glad to see you working on this keyboard! It will be great if it can eventually be submitted to our repo so that the new version is supported.
First of all, may I recommend you update to Keyman Developer 17.0 if you have not already done so? The structure of the files then requires you to have a .kpj in the root folder, and then the .kmn, kps, kvks, bitmap in the source
folder.
For the .kmn file, I’d recommend you to update the headings to the modern syntax like this:
store(&version) '10.0'
store(&NAME) 'Greek Polytonic Unicode'
store(&BITMAP) Pi.bmp
store(&MESSAGE) 'This keyboard requires a Unicode Greek font and a Unicode-compatible word processor'
store(©RIGHT) 'Copyright © 2002–2024 by David J. Perry'
store(&TARGETS) 'desktop web'
store(&KEYBOARDVERSION) '2.0'
store(&VISUALKEYBOARD) 'grk_poly_u_2_5c.kvks'
And remove these lines:
c LANGUAGE x08,x01 c Greek standard and Ancient Greek
c LAYOUT x3 c Used 3 not 2 bc maybe this is already used for polytonic
c store(ÐNOLOGUECODE) 'ell grk'
c store(&WINDOWSLANGUAGES) 'x0408'
The language tagging information will be set in the .kps file.
Now, once I set the header statements that way, I immediately got a warning:
This keyboard contains Ctrl,Alt and LCtrl,LAlt,RCtrl,RAlt sets of modifiers. Use only one or the other set for web target.
I set the “web” target because you had included a .kvks and I have “treat warnings as errors” set. That helps me see where there are problems and in this case there are many problems with keyboards if you mix ALT
and RALT
or even CTRL
and RALT
.
You have rules like this:
+ [RALT K_I] > deadkey(6) c the iota subscript
+ [CTRL ALT K_I] > deadkey(6)
I believe you should consistently set your ALT
rules to use RALT
. I didn’t review them all to see if you have a [RALT K_I]
and an [ALT K_I]
kind of rule. Those would be problematical as Keyman wouldn’t know what to do.
Also, then you have to not use just CTRL
you could use LCTRL
or RCTRL
. I supposed you could use both, but I’d recommend RCTRL
so that your users can still use LCTRL
for things like CTRL+C to copy or CTRL+X to cut or CTRL+P to paste, etc. That goes for ALT+A to access select all and other shortcuts.
However, if you need to set both RALT
and LALT
(and the same for LCTRL and RCTRL) you may do so, you just shouldn’t mix plain old ALT and CTRL if you also use the Left or Right keys.
So, I suspect that’s where the problem is arising right now.
Since I am eager for you to update the keyboard, I’d like to recommend a few other things if you don’t mind.
- If this is going to go into the Keyman repository you should choose a keyboard filename structure now before you get too deep into the updates. Don’t name the folder/filenames with a version. Choose something like
greek_polytonic
. (I just checked and that name is available.). Then that will be part of the permanent URL for your keyboard on the Keyman site.
- You can look through the repo to see the folder structure. Here’s one example from the SIL Greek Polytonic keyboard: keyboards/release/sil/sil_greek_polytonic at master · keymanapp/keyboards · GitHub
- The .kpj, kps, kmn, kvks, should all have the same folder/filenames.
- The versioning is just done in the .kmn file. Each time something gets changed in the keyboard or even in documentation we would bump the version so the user will be notified that a new version of the keyboard is available.
- I also do not recommend having “Keyboard” or “Unicode” in the keyboard name anymore because all keyboards are keyboards and all keyboards should be Unicode unless a script isn’t encoded. So, for this keyboard I’d recommend just calling it ‘Greek Polytonic’. A benefit is that having a shorter name shows up better in the UI.