From 95893887c7f55489261d4733502cb4d761aa2b8b Mon Sep 17 00:00:00 2001 From: "Jared R. Warren" Date: Tue, 2 Jun 2026 14:54:02 -0700 Subject: [PATCH 1/6] Changed Shifted Number Row to Capital Lekwungen Characters --- .../fv/fv_lekwungen/source/fv_lekwungen.kmn | 551 ++++++++++-------- .../fv/fv_lekwungen/source/fv_lekwungen.kvks | 456 +++++++-------- 2 files changed, 537 insertions(+), 470 deletions(-) diff --git a/release/fv/fv_lekwungen/source/fv_lekwungen.kmn b/release/fv/fv_lekwungen/source/fv_lekwungen.kmn index 0c341051ac..7c4a3778e0 100644 --- a/release/fv/fv_lekwungen/source/fv_lekwungen.kmn +++ b/release/fv/fv_lekwungen/source/fv_lekwungen.kmn @@ -1,242 +1,309 @@ -c This keyboard is designed for the Lekwungen (Lək̓ʷəŋən) language of the BC Coast region of Canada. -c -c Alternate names: Songish, lək̓ʷəŋiʔnəŋ -store(&VERSION) "10.0" -store(&KEYBOARDVERSION) '1.0.1' -c store(ÐNOLOGUECODE) "str" -store(©RIGHT) '(c) 2024 FirstVoices, SIL International.' -store(&NAME) 'Lekwungen (Lək̓ʷəŋən)' -store(&LAYOUTFILE) 'fv_lekwungen.keyman-touch-layout' -store(&VISUALKEYBOARD) 'fv_lekwungen.kvks' -store(&TARGETS) 'any' -begin Unicode > use(main) - -group(main) using keys - - -c --- START OF TOUCH LAYOUT RULES --- - - -C mobile default layer -+ [T_Q_0] > 'q̓' -+ [T_Q] > 'q' -+ [T_W_0] > 'q̓ʷ' -+ [T_W] > 'qʷ' -+ [T_E_1] > 'ʷ' -+ [T_E_0] > 'w̓' -+ [T_E] > 'w' -+ [T_R_0] > 'ə́' -+ [T_R] > 'ə' -+ [T_T_0] > 't̓' -+ [T_T] > 't' -+ [T_Y_0] > 'y̓' -+ [T_Y] > 'y' -+ [T_U_0] > 'ú' -+ [T_U] > 'u' -+ [T_I_0] > 'í' -+ [T_I] > 'i' -+ [T_O] > 'ƛ̓' -+ [T_P_0] > 'p̓' -+ [T_P] > 'p' - -+ [T_A_0] > 'á' -+ [T_A] > 'a' -+ [T_S] > 's' -+ [T_D] > 'š' -+ [T_F_0] > 'é' -+ [T_F] > 'e' -+ [T_G] > 'ʔ' -+ [T_H] > 'h' -+ [T_K_1] > 'k' -+ [T_K_0] > 'k̓ʷ' -+ [T_K] > 'kʷ' -+ [T_L] > 'l' -+ [T_COLON] > 'ɬ' - -+ [T_Z] > 'x̣' -+ [T_Z_0] > 'x̣ʷ' -+ [T_X] > 'xʷ' -+ [T_C_0] > 'c̓' -+ [T_C] > 'c' -+ [T_V] > 'č' -+ [T_V_0] > 'č̓' -+ [T_B] > 'ŋ' -+ [T_B_0] > 'ŋ̓' -+ [T_N_0] > 'n̓' -+ [T_N] > 'n' -+ [T_M_0] > 'm̓' -+ [T_M] > 'm' - -C mobile shift layer -+ [SHIFT T_Q_0] > 'Q̓' layer('default') -+ [SHIFT T_Q] > 'Q' layer('default') -+ [SHIFT T_W_0] > 'Q̓ʷ' layer('default') -+ [SHIFT T_W] > 'Qʷ' layer('default') -+ [SHIFT T_E_1] > 'ʷ' layer('default') -+ [SHIFT T_E_0] > 'W̓' layer('default') -+ [SHIFT T_E] > 'W' layer('default') -+ [SHIFT T_R_0] > 'Ə́' layer('default') -+ [SHIFT T_R] > 'Ə' layer('default') -+ [SHIFT T_T_0] > 'T̓' layer('default') -+ [SHIFT T_T] > 'T' layer('default') -+ [SHIFT T_Y_0] > 'Y̓' layer('default') -+ [SHIFT T_Y] > 'Y' layer('default') -+ [SHIFT T_U_0] > 'Ú' layer('default') -+ [SHIFT T_U] > 'U' layer('default') -+ [SHIFT T_I_0] > 'Í' layer('default') -+ [SHIFT T_I] > 'I' layer('default') -+ [SHIFT T_O] > 'ƛ̓' layer('default') -+ [SHIFT T_P_0] > 'P̓' layer('default') -+ [SHIFT T_P] > 'P' layer('default') - -+ [SHIFT T_A_0] > 'Á' layer('default') -+ [SHIFT T_A] > 'A' layer('default') -+ [SHIFT T_S] > 'S' layer('default') -+ [SHIFT T_D] > 'Š' layer('default') -+ [SHIFT T_F_0] > 'É' layer('default') -+ [SHIFT T_F] > 'E' layer('default') -+ [SHIFT T_G] > 'ʔ' layer('default') -+ [SHIFT T_H] > 'H' layer('default') -+ [SHIFT T_K_1] > 'K' layer('default') -+ [SHIFT T_K_0] > 'K̓ʷ' layer('default') -+ [SHIFT T_K] > 'Kʷ' layer('default') -+ [SHIFT T_L] > 'L' layer('default') -+ [SHIFT T_COLON] > 'ɬ' layer('default') - -+ [SHIFT T_Z_0] > 'X̣ʷ' layer('default') -+ [SHIFT T_Z] > 'X̣' layer('default') -+ [SHIFT T_X] > 'Xʷ' layer('default') -+ [SHIFT T_C_0] > 'C̓' layer('default') -+ [SHIFT T_C] > 'C' layer('default') -+ [SHIFT T_V_0] > 'Č̓' layer('default') -+ [SHIFT T_V] > 'Č' layer('default') -+ [SHIFT T_B] > 'ŋ' layer('default') -+ [SHIFT T_B_0] > 'ŋ̓' layer('default') -+ [SHIFT T_N_0] > 'N̓' layer('default') -+ [SHIFT T_N] > 'N' layer('default') -+ [SHIFT T_M_0] > 'M̓' layer('default') -+ [SHIFT T_M] > 'M' layer('default') - -c mobile glottal apostrophe deadkey for rounded sounds kʷ, qʷ -'kʷ' + [T_J] > 'k̓ʷ' -'kʷ' + [SHIFT T_J] > 'k̓ʷ' -'Kʷ' + [T_J] > 'K̓ʷ' -'Kʷ' + [SHIFT T_J] > 'K̓ʷ' -'qʷ' + [T_J] > 'q̓ʷ' -'qʷ' + [SHIFT T_J] > 'q̓ʷ' -'Qʷ' + [T_J] > 'Q̓ʷ' -'Qʷ' + [SHIFT T_J] > 'Q̓ʷ' - - -c --- END OF TOUCH LAYOUT RULES --- - - -c ********************** -c Constraints and Rules -c ********************** - - -c Acute and grave accent rules -store(plainVowels) "aeiouAEIOU" -store(acuteVowels) "áéíóúÁÉÍÓÚ" c combined unicode characters -store(graveVowels) "àèìòùÀÈÌÒÙ" c combined unicode characters - -store(acuteKeys) [T_acute] [SHIFT T_acute] [K_COLON] -any(plainVowels) + any(acuteKeys) > index(acuteVowels,1) - -store(graveKeys) [K_BKSLASH] -any(plainVowels) + any(graveKeys) > index(graveVowels,1) - -any(acuteVowels) + [K_BKSP] > index(plainVowels,1) c backspace on accented vowel will leave the plain vowel behind -any(graveVowels) + [K_BKSP] > index(plainVowels,1) - -store(schwa) "əƏ" -any(schwa) + any(acuteKeys) > index(schwa,1) U+0301 c acute on schwa -any(schwa) + any(graveKeys) > index(schwa,1) U+0300 c grave on schwa - -c Caron diacritic - backspace will delete just the caron on letters with caron -store(noCaron) "csCS" -store(withCaron) "čšČŠ" -any(withCaron) + [K_BKSP] > index(noCaron,1) - -c Glottal apostrophe combining rules -store(noGlottal) 'cčwkpqtƛlmnŋyCČWKPQTLMNY' -store(glottalKeys) [T_J] [SHIFT T_J] [K_QUOTE] -any(noGlottal) + any(glottalKeys) > index(noGlottal,1) U+0313 - - -c Stacking prevention rules - -store(NumbersAndPunctuation) '1234567890-=[]\;,./`~!@#$%^&*()_+{}|:"<>?' "'" c preventing accents on non-letters -any(NumbersAndPunctuation) + any(glottalKeys) > context beep -any(NumbersAndPunctuation) + any(acuteKeys) > context beep -any(NumbersAndPunctuation) + any(graveKeys) > context beep - - -any(acuteVowels) + any(acuteKeys) > context beep c no double stacking accent on already accented V -any(acuteVowels) + any(graveKeys) > context beep - -any(graveVowels) + any(graveKeys) > context beep -any(graveVowels) + any(acuteKeys) > context beep - -U+0313 + any(glottalKeys) > context beep c no double stacking diacritics -U+0301 + any(acuteKeys) > context beep -U+0300 + any(graveKeys) > context beep - -U+0313 + any(acuteKeys) > context beep c no stacking on combining glottal -U+0313 + any(graveKeys) > context beep - -U+0301 + any(graveKeys) > context beep c no stacking on acute -U+0301 + any(glottalKeys) > context beep - -U+0300 + any(acuteKeys) > context beep c no stacking on curly apostrophe -U+0300 + any(glottalKeys) > context beep - -any(acuteVowels) + any(glottalKeys) > context beep c no glottal on accented vowels -any(graveVowels) + any(glottalKeys) > context beep - - -c **************** -c Main -c ************** - -c combining keys for accents -+ [K_COLON] > U+0301 c acute -+ [K_QUOTE] > U+0313 c comma above -+ [K_BKSLASH] > U+0300 c grave - -c lekwungen characters -+ [K_2] > 'ʷ' -+ [K_3] > 'ə' -+ [K_4] > 'ʔ' -+ [K_5] > 'č' -+ [K_6] > 'š' -+ [K_7] > 'x̣' -+ [K_8] > 'ƛ̓' -+ [K_9] > 'ɬ' -+ [K_0] > 'ŋ' - -c letters not in lekwungen but added here to be consistant with LG layout -+ [K_BKQUOTE] > 'θ' -+ [K_1] > 'tᶿ' - -c original keys with right-alt -+ [RALT K_COLON] > ";" -+ [RALT K_QUOTE] > "'" -+ [RALT K_BKSLASH] > "\" - -+ [RALT K_BKQUOTE] > '`' -+ [RALT K_1] > '1' -+ [RALT K_2] > '2' -+ [RALT K_3] > '3' -+ [RALT K_4] > '4' -+ [RALT K_5] > '5' -+ [RALT K_6] > '6' -+ [RALT K_7] > '7' -+ [RALT K_8] > '8' -+ [RALT K_9] > '9' -+ [RALT K_0] > '0' - - -nomatch > use(x) -group(x) using keys +c This keyboard is designed for the Lekwungen (Lək̓ʷəŋən) language of the BC Coast region of Canada. +c +c Alternate names: Songish, lək̓ʷəŋiʔnəŋ +store(&VERSION) "10.0" +store(&KEYBOARDVERSION) '1.1' +c store(ÐNOLOGUECODE) "str" +store(©RIGHT) '(c) 2024 FirstVoices, SIL International.' +store(&NAME) 'Lekwungen (Lək̓ʷəŋən)' +store(&LAYOUTFILE) 'fv_lekwungen.keyman-touch-layout' +store(&VISUALKEYBOARD) 'fv_lekwungen.kvks' +store(&TARGETS) 'any' +begin Unicode > use(main) + +group(main) using keys + + +c --- START OF TOUCH LAYOUT RULES --- + + +C mobile default layer ++ [T_Q_0] > 'q̓' ++ [T_Q] > 'q' ++ [T_W_0] > 'q̓ʷ' ++ [T_W] > 'qʷ' ++ [T_E_1] > 'ʷ' ++ [T_E_0] > 'w̓' ++ [T_E] > 'w' ++ [T_R_0] > 'ə́' ++ [T_R] > 'ə' ++ [T_T_0] > 't̓' ++ [T_T] > 't' ++ [T_Y_0] > 'y̓' ++ [T_Y] > 'y' ++ [T_U_0] > 'ú' ++ [T_U] > 'u' ++ [T_I_0] > 'í' ++ [T_I] > 'i' ++ [T_O] > 'ƛ̓' ++ [T_P_0] > 'p̓' ++ [T_P] > 'p' + ++ [T_A_0] > 'á' ++ [T_A] > 'a' ++ [T_S] > 's' ++ [T_D] > 'š' ++ [T_F_0] > 'é' ++ [T_F] > 'e' ++ [T_G] > 'ʔ' ++ [T_H] > 'h' ++ [T_K_1] > 'k' ++ [T_K_0] > 'k̓ʷ' ++ [T_K] > 'kʷ' ++ [T_L] > 'l' ++ [T_COLON] > 'ɬ' + ++ [T_Z] > 'x̣' ++ [T_Z_0] > 'x̣ʷ' ++ [T_X] > 'xʷ' ++ [T_C_0] > 'c̓' ++ [T_C] > 'c' ++ [T_V] > 'č' ++ [T_V_0] > 'č̓' ++ [T_B] > 'ŋ' ++ [T_B_0] > 'ŋ̓' ++ [T_N_0] > 'n̓' ++ [T_N] > 'n' ++ [T_M_0] > 'm̓' ++ [T_M] > 'm' + +C mobile shift layer ++ [SHIFT T_Q_0] > 'Q̓' layer('default') ++ [SHIFT T_Q] > 'Q' layer('default') ++ [SHIFT T_W_0] > 'Q̓ʷ' layer('default') ++ [SHIFT T_W] > 'Qʷ' layer('default') ++ [SHIFT T_E_1] > 'ʷ' layer('default') ++ [SHIFT T_E_0] > 'W̓' layer('default') ++ [SHIFT T_E] > 'W' layer('default') ++ [SHIFT T_R_0] > 'Ə́' layer('default') ++ [SHIFT T_R] > 'Ə' layer('default') ++ [SHIFT T_T_0] > 'T̓' layer('default') ++ [SHIFT T_T] > 'T' layer('default') ++ [SHIFT T_Y_0] > 'Y̓' layer('default') ++ [SHIFT T_Y] > 'Y' layer('default') ++ [SHIFT T_U_0] > 'Ú' layer('default') ++ [SHIFT T_U] > 'U' layer('default') ++ [SHIFT T_I_0] > 'Í' layer('default') ++ [SHIFT T_I] > 'I' layer('default') ++ [SHIFT T_O] > 'ƛ̓' layer('default') ++ [SHIFT T_P_0] > 'P̓' layer('default') ++ [SHIFT T_P] > 'P' layer('default') + ++ [SHIFT T_A_0] > 'Á' layer('default') ++ [SHIFT T_A] > 'A' layer('default') ++ [SHIFT T_S] > 'S' layer('default') ++ [SHIFT T_D] > 'Š' layer('default') ++ [SHIFT T_F_0] > 'É' layer('default') ++ [SHIFT T_F] > 'E' layer('default') ++ [SHIFT T_G] > 'ʔ' layer('default') ++ [SHIFT T_H] > 'H' layer('default') ++ [SHIFT T_K_1] > 'K' layer('default') ++ [SHIFT T_K_0] > 'K̓ʷ' layer('default') ++ [SHIFT T_K] > 'Kʷ' layer('default') ++ [SHIFT T_L] > 'L' layer('default') ++ [SHIFT T_COLON] > 'Ɬ' layer('default') + ++ [SHIFT T_Z_0] > 'X̣ʷ' layer('default') ++ [SHIFT T_Z] > 'X̣' layer('default') ++ [SHIFT T_X] > 'Xʷ' layer('default') ++ [SHIFT T_C_0] > 'C̓' layer('default') ++ [SHIFT T_C] > 'C' layer('default') ++ [SHIFT T_V_0] > 'Č̓' layer('default') ++ [SHIFT T_V] > 'Č' layer('default') ++ [SHIFT T_B] > 'ŋ' layer('default') ++ [SHIFT T_B_0] > 'ŋ̓' layer('default') ++ [SHIFT T_N_0] > 'N̓' layer('default') ++ [SHIFT T_N] > 'N' layer('default') ++ [SHIFT T_M_0] > 'M̓' layer('default') ++ [SHIFT T_M] > 'M' layer('default') + +c mobile glottal apostrophe deadkey for rounded sounds kʷ, qʷ +'kʷ' + [T_J] > 'k̓ʷ' +'kʷ' + [SHIFT T_J] > 'k̓ʷ' +'Kʷ' + [T_J] > 'K̓ʷ' +'Kʷ' + [SHIFT T_J] > 'K̓ʷ' +'qʷ' + [T_J] > 'q̓ʷ' +'qʷ' + [SHIFT T_J] > 'q̓ʷ' +'Qʷ' + [T_J] > 'Q̓ʷ' +'Qʷ' + [SHIFT T_J] > 'Q̓ʷ' + + +c --- END OF TOUCH LAYOUT RULES --- + + +c ********************** +c Constraints and Rules +c ********************** + + +c Acute and grave accent rules +store(plainVowels) "aeiouAEIOU" +store(acuteVowels) "áéíóúÁÉÍÓÚ" c combined unicode characters +store(graveVowels) "àèìòùÀÈÌÒÙ" c combined unicode characters + +store(acuteKeys) [T_acute] [SHIFT T_acute] [K_COLON] +any(plainVowels) + any(acuteKeys) > index(acuteVowels,1) + +store(graveKeys) [K_BKSLASH] +any(plainVowels) + any(graveKeys) > index(graveVowels,1) + +any(acuteVowels) + [K_BKSP] > index(plainVowels,1) c backspace on accented vowel will leave the plain vowel behind +any(graveVowels) + [K_BKSP] > index(plainVowels,1) + +store(schwa) "əƏ" +any(schwa) + any(acuteKeys) > index(schwa,1) U+0301 c acute on schwa +any(schwa) + any(graveKeys) > index(schwa,1) U+0300 c grave on schwa + +c Caron diacritic - backspace will delete just the caron on letters with caron +store(noCaron) "csCS" +store(withCaron) "čšČŠ" +any(withCaron) + [K_BKSP] > index(noCaron,1) + +c Glottal apostrophe combining rules +c Added Ŋ to the uppercase list to ensure combinations with standard capitals map seamlessly. +store(noGlottal) 'cčwkpqtƛlmnŋyCČWKPQTLMNYŊ' +store(glottalKeys) [T_J] [SHIFT T_J] [K_QUOTE] +any(noGlottal) + any(glottalKeys) > index(noGlottal,1) U+0313 + + +c Stacking prevention rules + +store(NumbersAndPunctuation) '1234567890-=[]\;,./`~!@#$%^&*()_+{}|:"<>?' "'" c preventing accents on non-letters +any(NumbersAndPunctuation) + any(glottalKeys) > context beep +any(NumbersAndPunctuation) + any(acuteKeys) > context beep +any(NumbersAndPunctuation) + any(graveKeys) > context beep + + +any(acuteVowels) + any(acuteKeys) > context beep c no double stacking accent on already accented V +any(acuteVowels) + any(graveKeys) > context beep + +any(graveVowels) + any(graveKeys) > context beep +any(graveVowels) + any(acuteKeys) > context beep + +U+0313 + any(glottalKeys) > context beep c no double stacking diacritics +U+0301 + any(acuteKeys) > context beep +U+0300 + any(graveKeys) > context beep + +U+0313 + any(acuteKeys) > context beep c no stacking on combining glottal +U+0313 + any(graveKeys) > context beep + +U+0301 + any(graveKeys) > context beep c no stacking on acute +U+0301 + any(glottalKeys) > context beep + +U+0300 + any(acuteKeys) > context beep c no stacking on curly apostrophe +U+0300 + any(glottalKeys) > context beep + +any(acuteVowels) + any(glottalKeys) > context beep c no glottal on accented vowels +any(graveVowels) + any(glottalKeys) > context beep + + +c **************** +c Main +c ************** + +c combining keys for accents ++ [K_COLON] > U+0301 c acute ++ [K_QUOTE] > U+0313 c comma above ++ [K_BKSLASH] > U+0300 c grave + +c lekwungen characters + +c Key 2: ʷ (Modifier - typically caseless) ++ [NCAPS K_2] > 'ʷ' ++ [CAPS K_2] > 'ʷ' ++ [NCAPS SHIFT K_2] > 'ʷ' ++ [CAPS SHIFT K_2] > 'ʷ' + +c Key 3: ə / Ə ++ [NCAPS K_3] > 'ə' ++ [CAPS K_3] > 'Ə' ++ [NCAPS SHIFT K_3] > 'Ə' ++ [CAPS SHIFT K_3] > 'ə' + +c Key 4: ʔ (Glottal stop - caseless) ++ [NCAPS K_4] > 'ʔ' ++ [CAPS K_4] > 'ʔ' ++ [NCAPS SHIFT K_4] > 'ʔ' ++ [CAPS SHIFT K_4] > 'ʔ' + +c Key 5: č / Č ++ [NCAPS K_5] > 'č' ++ [CAPS K_5] > 'Č' ++ [NCAPS SHIFT K_5] > 'Č' ++ [CAPS SHIFT K_5] > 'č' + +c Key 6: š / Š ++ [NCAPS K_6] > 'š' ++ [CAPS K_6] > 'Š' ++ [NCAPS SHIFT K_6] > 'Š' ++ [CAPS SHIFT K_6] > 'š' + +c Key 7: x̣ / X̣ ++ [NCAPS K_7] > 'x̣' ++ [CAPS K_7] > 'X̣' ++ [NCAPS SHIFT K_7] > 'X̣' ++ [CAPS SHIFT K_7] > 'x̣' + +c Key 8: ƛ̓ (Caseless) ++ [NCAPS K_8] > 'ƛ̓' ++ [CAPS K_8] > 'ƛ̓' ++ [NCAPS SHIFT K_8] > 'ƛ̓' ++ [CAPS SHIFT K_8] > 'ƛ̓' + +c Key 9: ɬ / Ɬ ++ [NCAPS K_9] > 'ɬ' ++ [CAPS K_9] > 'Ɬ' ++ [NCAPS SHIFT K_9] > 'Ɬ' ++ [CAPS SHIFT K_9] > 'ɬ' + +c Key 0: ŋ / Ŋ ++ [NCAPS K_0] > 'ŋ' ++ [CAPS K_0] > 'Ŋ' ++ [NCAPS SHIFT K_0] > 'Ŋ' ++ [CAPS SHIFT K_0] > 'ŋ' + +c letters not in lekwungen but added here to be consistant with LG layout + +c Backquote: θ / Θ ++ [NCAPS K_BKQUOTE] > 'θ' ++ [CAPS K_BKQUOTE] > 'Θ' ++ [NCAPS SHIFT K_BKQUOTE] > 'Θ' ++ [CAPS SHIFT K_BKQUOTE] > 'θ' + +c Key 1: tᶿ / Tᶿ ++ [NCAPS K_1] > 'tᶿ' ++ [CAPS K_1] > 'Tᶿ' ++ [NCAPS SHIFT K_1] > 'Tᶿ' ++ [CAPS SHIFT K_1] > 'tᶿ' + +c original keys with right-alt ++ [RALT K_COLON] > ";" ++ [RALT K_QUOTE] > "'" ++ [RALT K_BKSLASH] > "\" + ++ [NCAPS RALT K_BKQUOTE] > '`' ++ [CAPS RALT K_BKQUOTE] > '`' ++ [NCAPS RALT K_1] > '1' ++ [CAPS RALT K_1] > '1' ++ [NCAPS RALT K_2] > '2' ++ [CAPS RALT K_2] > '2' ++ [NCAPS RALT K_3] > '3' ++ [CAPS RALT K_3] > '3' ++ [NCAPS RALT K_4] > '4' ++ [CAPS RALT K_4] > '4' ++ [NCAPS RALT K_5] > '5' ++ [CAPS RALT K_5] > '5' ++ [NCAPS RALT K_6] > '6' ++ [CAPS RALT K_6] > '6' ++ [NCAPS RALT K_7] > '7' ++ [CAPS RALT K_7] > '7' ++ [NCAPS RALT K_8] > '8' ++ [CAPS RALT K_8] > '8' ++ [NCAPS RALT K_9] > '9' ++ [CAPS RALT K_9] > '9' ++ [NCAPS RALT K_0] > '0' ++ [CAPS RALT K_0] > '0' + + +nomatch > use(x) +group(x) using keys diff --git a/release/fv/fv_lekwungen/source/fv_lekwungen.kvks b/release/fv/fv_lekwungen/source/fv_lekwungen.kvks index 292269ea8d..6a92a099ec 100644 --- a/release/fv/fv_lekwungen/source/fv_lekwungen.kvks +++ b/release/fv/fv_lekwungen/source/fv_lekwungen.kvks @@ -1,228 +1,228 @@ - - -
- 10.0 - fv_lekwungen - - - -
- - - θ - tᶿ - ʷ - ə - ʔ - č - š - - ƛ̓ - ɬ - ŋ - - - = - q - w - e - r - t - y - u - i - o - p - [ - ] - a - s - d - f - g - h - j - k - l - \ - z - x - c - v - b - n - m - , - . - / - ʼ - ` - ´ - - - ~ - ! - @ - # - $ - % - ^ - & - * - ( - ) - _ - + - Q - W - E - R - T - Y - U - I - O - P - { - } - | - A - S - D - F - G - H - J - K - L - : - " - | - Z - X - C - V - B - N - M - < - > - ? - - - ` - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - - - = - q - w - e - r - t - y - u - i - o - p - [ - ] - \ - a - s - d - f - g - h - j - k - l - ; - ' - \ - z - x - c - v - b - n - m - , - . - / - - - ~ - ! - @ - # - $ - % - ^ - & - * - ( - ) - _ - + - Q - W - E - R - T - Y - U - I - O - P - { - } - | - A - S - D - F - G - H - J - K - L - : - " - | - Z - X - C - V - B - N - M - < - > - ? - - - ; - ' - \ - ` - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - - -
+ + +
+ 10.0 + fv_lekwungen + + + +
+ + + θ + tᶿ + ʷ + ə + ʔ + č + š + + ƛ̓ + ɬ + ŋ + - + = + q + w + e + r + t + y + u + i + o + p + [ + ] + a + s + d + f + g + h + j + k + l + \ + z + x + c + v + b + n + m + , + . + / + ʼ + ` + ´ + + + Θ + Tᶿ + ʷ + Ə + ʔ + Č + Š + + ƛ̓ + + Ŋ + _ + + + Q + W + E + R + T + Y + U + I + O + P + { + } + | + A + S + D + F + G + H + J + K + L + : + " + | + Z + X + C + V + B + N + M + < + > + ? + + + ` + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + - + = + q + w + e + r + t + y + u + i + o + p + [ + ] + \ + a + s + d + f + g + h + j + k + l + ; + ' + \ + z + x + c + v + b + n + m + , + . + / + + + ~ + ! + @ + # + $ + % + ^ + & + * + ( + ) + _ + + + Q + W + E + R + T + Y + U + I + O + P + { + } + | + A + S + D + F + G + H + J + K + L + : + " + | + Z + X + C + V + B + N + M + < + > + ? + + + ; + ' + \ + ` + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + + +
From 0f24efbae67a9c0ab064112f8b4dcd770c824b82 Mon Sep 17 00:00:00 2001 From: "Jared R. Warren" Date: Wed, 3 Jun 2026 12:07:58 -0700 Subject: [PATCH 2/6] Add capital characters From fb2dae6214d293d3e6157d2069d2af7470cf8d4e Mon Sep 17 00:00:00 2001 From: Jared Warren Date: Wed, 10 Jun 2026 11:22:26 -0700 Subject: [PATCH 3/6] =?UTF-8?q?Consistent=20Shift=20=C5=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated keyboard layout for Lekwungen language with new versioning and layout adjustments. --- release/fv/fv_lekwungen/source/fv_lekwungen.kmn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/release/fv/fv_lekwungen/source/fv_lekwungen.kmn b/release/fv/fv_lekwungen/source/fv_lekwungen.kmn index 7c4a3778e0..dac82d184b 100644 --- a/release/fv/fv_lekwungen/source/fv_lekwungen.kmn +++ b/release/fv/fv_lekwungen/source/fv_lekwungen.kmn @@ -1,8 +1,8 @@ -c This keyboard is designed for the Lekwungen (Lək̓ʷəŋən) language of the BC Coast region of Canada. +c This keyboard is designed for the Lekwungen (Lək̓ʷəŋən) language of the BC Coast region of Canada. c c Alternate names: Songish, lək̓ʷəŋiʔnəŋ store(&VERSION) "10.0" -store(&KEYBOARDVERSION) '1.1' +store(&KEYBOARDVERSION) '1.0.1' c store(ÐNOLOGUECODE) "str" store(©RIGHT) '(c) 2024 FirstVoices, SIL International.' store(&NAME) 'Lekwungen (Lək̓ʷəŋən)' @@ -110,8 +110,8 @@ C mobile shift layer + [SHIFT T_C] > 'C' layer('default') + [SHIFT T_V_0] > 'Č̓' layer('default') + [SHIFT T_V] > 'Č' layer('default') -+ [SHIFT T_B] > 'ŋ' layer('default') -+ [SHIFT T_B_0] > 'ŋ̓' layer('default') ++ [SHIFT T_B] > 'Ŋ' layer('default') ++ [SHIFT T_B_0] > 'Ŋ̓' layer('default') + [SHIFT T_N_0] > 'N̓' layer('default') + [SHIFT T_N] > 'N' layer('default') + [SHIFT T_M_0] > 'M̓' layer('default') @@ -262,7 +262,7 @@ c Key 0: ŋ / Ŋ + [NCAPS SHIFT K_0] > 'Ŋ' + [CAPS SHIFT K_0] > 'ŋ' -c letters not in lekwungen but added here to be consistant with LG layout +c letters not in lekwungen but added here to be consistent with LG layout c Backquote: θ / Θ + [NCAPS K_BKQUOTE] > 'θ' From 726e03b3c3e4b6afb32ac07aac47cb74760074ae Mon Sep 17 00:00:00 2001 From: Jared Warren Date: Wed, 10 Jun 2026 11:24:14 -0700 Subject: [PATCH 4/6] Update HISTORY.md for version 1.1 release Added version 1.1 with updates to the number row characters. --- release/fv/fv_lekwungen/HISTORY.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/release/fv/fv_lekwungen/HISTORY.md b/release/fv/fv_lekwungen/HISTORY.md index a4e1225049..45254c722e 100644 --- a/release/fv/fv_lekwungen/HISTORY.md +++ b/release/fv/fv_lekwungen/HISTORY.md @@ -1,5 +1,9 @@ Lekwungen (Lək̓ʷəŋən) Change History ============================ +1.1 (10 June 2026) +------------------- +* Shifted/Caps Lock number row now has capital Lək̓ʷəŋən characters + 1.0.1 (31 July 2024) ------------------- * Corrected package name @@ -7,4 +11,4 @@ Lekwungen (Lək̓ʷəŋən) Change History 1.0 (1 July 2024) ------------------- * New mobile keyboard -* New desktop keyboard \ No newline at end of file +* New desktop keyboard From e96d8ddbca35a49817c8e7605047f3fdca8a5c06 Mon Sep 17 00:00:00 2001 From: Jared Warren Date: Wed, 10 Jun 2026 11:24:34 -0700 Subject: [PATCH 5/6] Modify copyright year in LICENSE file Updated copyright year range in LICENSE.md --- release/fv/fv_lekwungen/LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/fv/fv_lekwungen/LICENSE.md b/release/fv/fv_lekwungen/LICENSE.md index 5c4e11ca75..c92726407c 100644 --- a/release/fv/fv_lekwungen/LICENSE.md +++ b/release/fv/fv_lekwungen/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2024 FirstVoices, SIL International +Copyright (c) 2024-2026 FirstVoices, SIL International Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 6702636a59a1783060438fcbd86b1340591ef70f Mon Sep 17 00:00:00 2001 From: Jared Warren Date: Wed, 10 Jun 2026 11:28:07 -0700 Subject: [PATCH 6/6] Changed CRLF to LF --- .../fv/fv_lekwungen/source/fv_lekwungen.kvks | 456 +++++++++--------- 1 file changed, 228 insertions(+), 228 deletions(-) diff --git a/release/fv/fv_lekwungen/source/fv_lekwungen.kvks b/release/fv/fv_lekwungen/source/fv_lekwungen.kvks index 6a92a099ec..2d7bf4d006 100644 --- a/release/fv/fv_lekwungen/source/fv_lekwungen.kvks +++ b/release/fv/fv_lekwungen/source/fv_lekwungen.kvks @@ -1,228 +1,228 @@ - - -
- 10.0 - fv_lekwungen - - - -
- - - θ - tᶿ - ʷ - ə - ʔ - č - š - - ƛ̓ - ɬ - ŋ - - - = - q - w - e - r - t - y - u - i - o - p - [ - ] - a - s - d - f - g - h - j - k - l - \ - z - x - c - v - b - n - m - , - . - / - ʼ - ` - ´ - - - Θ - Tᶿ - ʷ - Ə - ʔ - Č - Š - - ƛ̓ - - Ŋ - _ - + - Q - W - E - R - T - Y - U - I - O - P - { - } - | - A - S - D - F - G - H - J - K - L - : - " - | - Z - X - C - V - B - N - M - < - > - ? - - - ` - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - - - = - q - w - e - r - t - y - u - i - o - p - [ - ] - \ - a - s - d - f - g - h - j - k - l - ; - ' - \ - z - x - c - v - b - n - m - , - . - / - - - ~ - ! - @ - # - $ - % - ^ - & - * - ( - ) - _ - + - Q - W - E - R - T - Y - U - I - O - P - { - } - | - A - S - D - F - G - H - J - K - L - : - " - | - Z - X - C - V - B - N - M - < - > - ? - - - ; - ' - \ - ` - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - - -
+ + +
+ 10.0 + fv_lekwungen + + + +
+ + + θ + tᶿ + ʷ + ə + ʔ + č + š + + ƛ̓ + ɬ + ŋ + - + = + q + w + e + r + t + y + u + i + o + p + [ + ] + a + s + d + f + g + h + j + k + l + \ + z + x + c + v + b + n + m + , + . + / + ʼ + ` + ´ + + + Θ + Tᶿ + ʷ + Ə + ʔ + Č + Š + + ƛ̓ + + Ŋ + _ + + + Q + W + E + R + T + Y + U + I + O + P + { + } + | + A + S + D + F + G + H + J + K + L + : + " + | + Z + X + C + V + B + N + M + < + > + ? + + + ` + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + - + = + q + w + e + r + t + y + u + i + o + p + [ + ] + \ + a + s + d + f + g + h + j + k + l + ; + ' + \ + z + x + c + v + b + n + m + , + . + / + + + ~ + ! + @ + # + $ + % + ^ + & + * + ( + ) + _ + + + Q + W + E + R + T + Y + U + I + O + P + { + } + | + A + S + D + F + G + H + J + K + L + : + " + | + Z + X + C + V + B + N + M + < + > + ? + + + ; + ' + \ + ` + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + + +