Skip to content

Instantly share code, notes, and snippets.

@mcdurdin
Created June 8, 2022 19:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mcdurdin/1131d2d27fa19931816cba6706913fcd to your computer and use it in GitHub Desktop.
Save mcdurdin/1131d2d27fa19931816cba6706913fcd to your computer and use it in GitHub Desktop.

canadian_ms keyboard source

Provided as-is, without warranty or support.

MIT license.

c Keyman keyboard generated by ImportKeyboard
c Target: KeymanWeb
c
store(&Version) "7.0"
store(&Name) "Canadian Multilingual Standard"
store(&Copyright) "(C) 2007 Tavultesoft Pty Ltd"
store(&VISUALKEYBOARD) 'canadian_ms.kvk'
begin Unicode > use(main)
group(main) using keys
+ [K_SPACE] > U+0020
+ [SHIFT K_SPACE] > U+0020
+ [CTRL K_SPACE] > U+0020
+ [CTRL ALT K_SPACE] > U+00a0
+ [CTRL K_SPACE] > U+0020
+ [SHIFT CTRL K_SPACE] > U+0020
+ [K_0] > U+0030
+ [SHIFT K_0] > U+0029
+ [CTRL ALT K_0] > U+005d
+ [K_1] > U+0031
+ [SHIFT K_1] > U+0021
+ [CTRL K_1] > U+00b9
+ [SHIFT CTRL K_1] > U+00a1
+ [K_2] > U+0032
+ [SHIFT K_2] > U+0040
+ [CTRL K_2] > U+00b2
+ [K_3] > U+0033
+ [SHIFT K_3] > U+0023
+ [CTRL K_3] > U+00b3
+ [SHIFT CTRL K_3] > U+00a3
+ [K_4] > U+0034
+ [SHIFT K_4] > U+0024
+ [CTRL ALT K_4] > U+00a4
+ [CTRL K_4] > U+00bc
+ [SHIFT CTRL K_4] > U+20ac
+ [K_5] > U+0035
+ [SHIFT K_5] > U+0025
+ [CTRL K_5] > U+00bd
+ [SHIFT CTRL K_5] > U+215c
+ [K_6] > U+0036
+ [SHIFT K_6] > U+003f
+ [CTRL K_6] > U+00be
+ [SHIFT CTRL K_6] > U+215d
+ [K_7] > U+0037
+ [SHIFT K_7] > U+0026
+ [CTRL ALT K_7] > U+007b
+ [SHIFT CTRL K_7] > U+215e
+ [K_8] > U+0038
+ [SHIFT K_8] > U+002a
+ [CTRL ALT K_8] > U+007d
+ [SHIFT CTRL K_8] > U+2122
+ [K_9] > U+0039
+ [SHIFT K_9] > U+0028
+ [CTRL ALT K_9] > U+005b
+ [SHIFT CTRL K_9] > U+00b1
+ [K_A] > U+0061
+ [SHIFT K_A] > U+0041
+ [CTRL K_A] > U+00e6
+ [SHIFT CTRL K_A] > U+00c6
+ [K_B] > U+0062
+ [SHIFT K_B] > U+0042
+ [CTRL K_B] > U+201d
+ [SHIFT CTRL K_B] > U+2019
+ [K_C] > U+0063
+ [SHIFT K_C] > U+0043
+ [CTRL K_C] > U+00a2
+ [SHIFT CTRL K_C] > U+00a9
+ [K_D] > U+0064
+ [SHIFT K_D] > U+0044
+ [CTRL K_D] > U+00f0
+ [SHIFT CTRL K_D] > U+00d0
+ [K_E] > U+0065
+ [SHIFT K_E] > U+0045
+ [CTRL ALT K_E] > U+20ac
+ [CTRL K_E] > U+0153
+ [SHIFT CTRL K_E] > U+0152
+ [K_F] > U+0066
+ [SHIFT K_F] > U+0046
+ [SHIFT CTRL K_F] > U+00aa
+ [K_G] > U+0067
+ [SHIFT K_G] > U+0047
+ [CTRL K_G] > U+014b
+ [SHIFT CTRL K_G] > U+014a
+ [K_H] > U+0068
+ [SHIFT K_H] > U+0048
+ [CTRL K_H] > U+0127
+ [SHIFT CTRL K_H] > U+0126
+ [K_I] > U+0069
+ [SHIFT K_I] > U+0049
+ [CTRL K_I] > U+2192
+ [SHIFT CTRL K_I] > U+0131
+ [K_J] > U+006a
+ [SHIFT K_J] > U+004a
+ [CTRL K_J] > U+0133
+ [SHIFT CTRL K_J] > U+0132
+ [K_K] > U+006b
+ [SHIFT K_K] > U+004b
+ [CTRL K_K] > U+0138
+ [K_L] > U+006c
+ [SHIFT K_L] > U+004c
+ [CTRL K_L] > U+0140
+ [SHIFT CTRL K_L] > U+013f
+ [K_M] > U+006d
+ [SHIFT K_M] > U+004d
+ [CTRL K_M] > U+00b5
+ [SHIFT CTRL K_M] > U+00ba
+ [K_N] > U+006e
+ [SHIFT K_N] > U+004e
+ [CTRL K_N] > U+0149
+ [SHIFT CTRL K_N] > U+266a
+ [K_O] > U+006f
+ [SHIFT K_O] > U+004f
+ [CTRL K_O] > U+00f8
+ [SHIFT CTRL K_O] > U+00d8
+ [K_P] > U+0070
+ [SHIFT K_P] > U+0050
+ [CTRL K_P] > U+00fe
+ [SHIFT CTRL K_P] > U+00de
+ [K_Q] > U+0071
+ [SHIFT K_Q] > U+0051
+ [SHIFT CTRL K_Q] > U+2126
+ [K_R] > U+0072
+ [SHIFT K_R] > U+0052
+ [CTRL K_R] > U+00b6
+ [SHIFT CTRL K_R] > U+00ae
+ [K_S] > U+0073
+ [SHIFT K_S] > U+0053
+ [CTRL K_S] > U+00df
+ [SHIFT CTRL K_S] > U+00a7
+ [K_T] > U+0074
+ [SHIFT K_T] > U+0054
+ [CTRL K_T] > U+0167
+ [SHIFT CTRL K_T] > U+0166
+ [K_U] > U+0075
+ [SHIFT K_U] > U+0055
+ [CTRL K_U] > U+2193
+ [SHIFT CTRL K_U] > U+2191
+ [K_V] > U+0076
+ [SHIFT K_V] > U+0056
+ [CTRL K_V] > U+201c
+ [SHIFT CTRL K_V] > U+2018
+ [K_W] > U+0077
+ [SHIFT K_W] > U+0057
+ [CTRL K_W] > U+0142
+ [SHIFT CTRL K_W] > U+0141
+ [K_X] > U+0078
+ [SHIFT K_X] > U+0058
+ [CTRL ALT K_X] > U+00bb
+ [K_Y] > U+0079
+ [SHIFT K_Y] > U+0059
+ [CTRL K_Y] > U+2190
+ [SHIFT CTRL K_Y] > U+00a5
+ [K_Z] > U+007a
+ [SHIFT K_Z] > U+005a
+ [CTRL ALT K_Z] > U+00ab
+ [K_COLON] > U+003b
+ [SHIFT K_COLON] > U+003a
+ [CTRL ALT K_COLON] > U+00b0
+ [CTRL K_COLON] > dk(00b4)
+ [SHIFT CTRL K_COLON] > dk(02dd)
+ [K_EQUAL] > U+003d
+ [SHIFT K_EQUAL] > U+002b
+ [CTRL ALT K_EQUAL] > U+00ac
+ [CTRL K_EQUAL] > dk(00b8)
+ [SHIFT CTRL K_EQUAL] > dk(02db)
+ [K_COMMA] > U+002c
+ [SHIFT K_COMMA] > U+0027
+ [CTRL ALT K_COMMA] > U+003c
+ [CTRL K_COMMA] > U+2015
+ [SHIFT CTRL K_COMMA] > U+00d7
+ [K_HYPHEN] > U+002d
+ [SHIFT K_HYPHEN] > U+005f
+ [SHIFT CTRL K_HYPHEN] > U+00bf
+ [K_PERIOD] > U+002e
+ [SHIFT K_PERIOD] > U+0022
+ [CTRL ALT K_PERIOD] > U+003e
+ [CTRL K_PERIOD] > dk(02d9)
+ [SHIFT CTRL K_PERIOD] > U+00f7
+ [K_SLASH] > U+00e9
+ [SHIFT K_SLASH] > U+00c9
+ [SHIFT CTRL K_SLASH] > dk(02d9)
+ [K_QUOTE] > U+00e8
+ [SHIFT K_QUOTE] > U+00c8
+ [SHIFT CTRL K_QUOTE] > dk(02c7)
+ [K_LBRKT] > dk(005e)
+ [SHIFT K_LBRKT] > dk(00a8)
+ [CTRL ALT K_LBRKT] > dk(0060)
+ [SHIFT CTRL K_LBRKT] > dk(02da)
+ [K_BKSLASH] > U+00e0
+ [SHIFT K_BKSLASH] > U+00c0
+ [SHIFT CTRL K_BKSLASH] > dk(02d8)
+ [K_RBRKT] > U+00e7
+ [SHIFT K_RBRKT] > U+00c7
+ [CTRL ALT K_RBRKT] > dk(007e)
+ [CTRL K_RBRKT] > U+007e
+ [SHIFT CTRL K_RBRKT] > dk(00af)
+ [K_BKQUOTE] > U+002f
+ [SHIFT K_BKQUOTE] > U+005c
+ [CTRL ALT K_BKQUOTE] > U+007c
+ [SHIFT CTRL K_BKQUOTE] > U+00ad
+ [K_oE2] > U+00f9
+ [SHIFT K_oE2] > U+00d9
+ [SHIFT CTRL K_oE2] > U+00a6
match > use(deadkeys)
group(deadkeys)
store(dkf00b4) U+0020 U+0061 U+0041 U+0063 U+0043 U+0065 U+0045 U+0069 U+0049 U+006c U+004c U+006e U+004e U+006f U+004f U+0072 U+0052 U+0073 U+0053 U+0075 U+0055 U+0079 U+0059 U+007a U+005a
store(dkt00b4) U+00b4 U+00e1 U+00c1 U+0107 U+0106 U+00e9 U+00c9 U+00ed U+00cd U+013a U+0139 U+0144 U+0143 U+00f3 U+00d3 U+0155 U+0154 U+015b U+015a U+00fa U+00da U+00fd U+00dd U+017a U+0179
dk(00b4) any(dkf00b4) > index(dkt00b4, 2)
store(dkf02dd) U+0020 U+006f U+004f U+0075 U+0055
store(dkt02dd) U+02dd U+0151 U+0150 U+0171 U+0170
dk(02dd) any(dkf02dd) > index(dkt02dd, 2)
store(dkf00b8) U+0020 U+0063 U+0043 U+0067 U+0047 U+006b U+004b U+006c U+004c U+006e U+004e U+0072 U+0052 U+0073 U+0053 U+0074 U+0054
store(dkt00b8) U+00b8 U+00e7 U+00c7 U+0123 U+0122 U+0137 U+0136 U+013c U+013b U+0146 U+0145 U+0157 U+0156 U+015f U+015e U+0163 U+0162
dk(00b8) any(dkf00b8) > index(dkt00b8, 2)
store(dkf02db) U+0020 U+0061 U+0041 U+0065 U+0045 U+0069 U+0049 U+0075 U+0055
store(dkt02db) U+02db U+0105 U+0104 U+0119 U+0118 U+012f U+012e U+0173 U+0172
dk(02db) any(dkf02db) > index(dkt02db, 2)
store(dkf02d9) U+0020 U+0063 U+0043 U+0065 U+0045 U+0067 U+0047 U+0049 U+007a U+005a
store(dkt02d9) U+02d9 U+010b U+010a U+0117 U+0116 U+0121 U+0120 U+0130 U+0017 U+017b
dk(02d9) any(dkf02d9) > index(dkt02d9, 2)
store(dkf02c7) U+0020 U+0063 U+0043 U+0064 U+0044 U+0065 U+0045 U+006c U+004c U+006e U+004e U+0072 U+0052 U+0073 U+0053 U+0074 U+0054 U+007a U+005a
store(dkt02c7) U+02c7 U+010d U+010c U+010f U+010e U+011b U+011a U+013e U+013d U+0148 U+0147 U+0159 U+0158 U+0161 U+0160 U+0165 U+0164 U+017e U+017d
dk(02c7) any(dkf02c7) > index(dkt02c7, 2)
store(dkf005e) U+0020 U+0061 U+0041 U+0063 U+0043 U+0065 U+0045 U+0067 U+0047 U+0068 U+0048 U+0069 U+0049 U+006a U+004a U+006f U+004f U+0073 U+0053 U+0075 U+0055 U+0077 U+0057 U+0079 U+0059
store(dkt005e) U+005e U+00e2 U+00c2 U+0109 U+0108 U+00ea U+00ca U+011d U+011c U+0125 U+0124 U+00ee U+00ce U+0135 U+0134 U+00f4 U+00d4 U+015d U+015c U+00fb U+00db U+0175 U+0174 U+0177 U+0176
dk(005e) any(dkf005e) > index(dkt005e, 2)
store(dkf00a8) U+0020 U+0061 U+0041 U+0065 U+0045 U+0069 U+0049 U+006f U+004f U+0075 U+0055 U+0079 U+0059
store(dkt00a8) U+00a8 U+00e4 U+00c4 U+00eb U+00cb U+00ef U+00cf U+00f6 U+00d6 U+00fc U+00dc U+00ff U+0178
dk(00a8) any(dkf00a8) > index(dkt00a8, 2)
store(dkf0060) U+0020 U+0061 U+0041 U+0065 U+0045 U+0069 U+0049 U+006f U+004f U+0075 U+0055
store(dkt0060) U+0060 U+00e0 U+00c0 U+00e8 U+00c8 U+00ec U+00cc U+00f2 U+00d2 U+00f9 U+00d9
dk(0060) any(dkf0060) > index(dkt0060, 2)
store(dkf02da) U+0020 U+0061 U+0041 U+0075 U+0055
store(dkt02da) U+02da U+00e5 U+00c5 U+016f U+016e
dk(02da) any(dkf02da) > index(dkt02da, 2)
store(dkf02d8) U+0020 U+0061 U+0041 U+0067 U+0047 U+0075 U+0055
store(dkt02d8) U+02d8 U+0103 U+0102 U+011f U+011e U+016d U+016c
dk(02d8) any(dkf02d8) > index(dkt02d8, 2)
store(dkf007e) U+0020 U+0061 U+0041 U+0069 U+0049 U+006e U+004e U+006f U+004f U+0075 U+0055
store(dkt007e) U+007e U+00e3 U+00c3 U+0129 U+0128 U+00f1 U+00d1 U+00f5 U+00d5 U+0169 U+0168
dk(007e) any(dkf007e) > index(dkt007e, 2)
store(dkf00af) U+0020 U+0061 U+0041 U+0065 U+0045 U+0069 U+0049 U+006f U+004f U+0075 U+0055
store(dkt00af) U+00af U+0101 U+0100 U+0113 U+0112 U+012b U+012a U+014d U+014c U+016b U+016a
dk(00af) any(dkf00af) > index(dkt00af, 2)
<?xml version="1.0" encoding="utf-8"?>
<visualkeyboard>
<header>
<version>10.0</version>
<kbdname></kbdname>
<flags>
<key102/>
<displayunderlying/>
</flags>
</header>
<encoding name="unicode" fontname="Arial" fontsize="-12">
<layer shift="">
<key vkey="K_SPACE"> </key>
<key vkey="K_0">0</key>
<key vkey="K_1">1</key>
<key vkey="K_2">2</key>
<key vkey="K_3">3</key>
<key vkey="K_4">4</key>
<key vkey="K_5">5</key>
<key vkey="K_6">6</key>
<key vkey="K_7">7</key>
<key vkey="K_8">8</key>
<key vkey="K_9">9</key>
<key vkey="K_A">a</key>
<key vkey="K_B">b</key>
<key vkey="K_C">c</key>
<key vkey="K_D">d</key>
<key vkey="K_E">e</key>
<key vkey="K_F">f</key>
<key vkey="K_G">g</key>
<key vkey="K_H">h</key>
<key vkey="K_I">i</key>
<key vkey="K_J">j</key>
<key vkey="K_K">k</key>
<key vkey="K_L">l</key>
<key vkey="K_M">m</key>
<key vkey="K_N">n</key>
<key vkey="K_O">o</key>
<key vkey="K_P">p</key>
<key vkey="K_Q">q</key>
<key vkey="K_R">r</key>
<key vkey="K_S">s</key>
<key vkey="K_T">t</key>
<key vkey="K_U">u</key>
<key vkey="K_V">v</key>
<key vkey="K_W">w</key>
<key vkey="K_X">x</key>
<key vkey="K_Y">y</key>
<key vkey="K_Z">z</key>
<key vkey="K_COLON">;</key>
<key vkey="K_EQUAL">=</key>
<key vkey="K_COMMA">,</key>
<key vkey="K_HYPHEN">-</key>
<key vkey="K_PERIOD">.</key>
<key vkey="K_SLASH">é</key>
<key vkey="K_BKSLASH">à</key>
<key vkey="K_RBRKT">ç</key>
<key vkey="K_QUOTE">è</key>
<key vkey="K_oE2">ù</key>
<key vkey="K_LBRKT">^</key>
</layer>
<layer shift="S">
<key vkey="K_SPACE"> </key>
<key vkey="K_0">)</key>
<key vkey="K_1">!</key>
<key vkey="K_2">@</key>
<key vkey="K_3">#</key>
<key vkey="K_4">$</key>
<key vkey="K_5">%</key>
<key vkey="K_6">?</key>
<key vkey="K_7">&amp;</key>
<key vkey="K_8">*</key>
<key vkey="K_9">(</key>
<key vkey="K_A">A</key>
<key vkey="K_B">B</key>
<key vkey="K_C">C</key>
<key vkey="K_D">D</key>
<key vkey="K_E">E</key>
<key vkey="K_F">F</key>
<key vkey="K_G">G</key>
<key vkey="K_H">H</key>
<key vkey="K_I">I</key>
<key vkey="K_J">J</key>
<key vkey="K_K">K</key>
<key vkey="K_L">L</key>
<key vkey="K_M">M</key>
<key vkey="K_N">N</key>
<key vkey="K_O">O</key>
<key vkey="K_P">P</key>
<key vkey="K_Q">Q</key>
<key vkey="K_R">R</key>
<key vkey="K_S">S</key>
<key vkey="K_T">T</key>
<key vkey="K_U">U</key>
<key vkey="K_V">V</key>
<key vkey="K_W">W</key>
<key vkey="K_X">X</key>
<key vkey="K_Y">Y</key>
<key vkey="K_Z">Z</key>
<key vkey="K_COLON">:</key>
<key vkey="K_EQUAL">+</key>
<key vkey="K_COMMA">'</key>
<key vkey="K_HYPHEN">_</key>
<key vkey="K_PERIOD">"</key>
<key vkey="K_SLASH">É</key>
<key vkey="K_BKQUOTE">\</key>
<key vkey="K_BKSLASH">À</key>
<key vkey="K_RBRKT">Ç</key>
<key vkey="K_QUOTE">È</key>
<key vkey="K_oE2">Ù</key>
<key vkey="K_LBRKT">¨</key>
</layer>
<layer shift="C">
<key vkey="K_SPACE"> </key>
<key vkey="K_1">¹</key>
<key vkey="K_2">²</key>
<key vkey="K_3">³</key>
<key vkey="K_4">¼</key>
<key vkey="K_5">½</key>
<key vkey="K_6">¾</key>
<key vkey="K_A">æ</key>
<key vkey="K_B">”</key>
<key vkey="K_C">¢</key>
<key vkey="K_D">ð</key>
<key vkey="K_E">œ</key>
<key vkey="K_G">ŋ</key>
<key vkey="K_H">ħ</key>
<key vkey="K_I">→</key>
<key vkey="K_J">ij</key>
<key vkey="K_K">ĸ</key>
<key vkey="K_L">ŀ</key>
<key vkey="K_M">µ</key>
<key vkey="K_N">ʼn</key>
<key vkey="K_O">ø</key>
<key vkey="K_P">þ</key>
<key vkey="K_R">¶</key>
<key vkey="K_S">ß</key>
<key vkey="K_T">ŧ</key>
<key vkey="K_U">↓</key>
<key vkey="K_V">“</key>
<key vkey="K_W">ł</key>
<key vkey="K_Y">←</key>
<key vkey="K_COMMA">―</key>
<key vkey="K_RBRKT">~</key>
<key vkey="K_EQUAL">¸</key>
<key vkey="K_COLON">´</key>
<key vkey="K_PERIOD">˙</key>
</layer>
<layer shift="CA">
<key vkey="K_SPACE"> </key>
<key vkey="K_0">]</key>
<key vkey="K_4">¤</key>
<key vkey="K_7">{</key>
<key vkey="K_8">}</key>
<key vkey="K_9">[</key>
<key vkey="K_E">€</key>
<key vkey="K_X">»</key>
<key vkey="K_Z">«</key>
<key vkey="K_COLON">°</key>
<key vkey="K_EQUAL">¬</key>
<key vkey="K_COMMA">&lt;</key>
<key vkey="K_PERIOD">&gt;</key>
<key vkey="K_BKQUOTE">|</key>
<key vkey="K_LBRKT">`</key>
<key vkey="K_RBRKT">~</key>
</layer>
<layer shift="SC">
<key vkey="K_SPACE"> </key>
<key vkey="K_1">¡</key>
<key vkey="K_3">£</key>
<key vkey="K_4">€</key>
<key vkey="K_5">⅜</key>
<key vkey="K_6">⅝</key>
<key vkey="K_7">⅞</key>
<key vkey="K_8">™</key>
<key vkey="K_9">±</key>
<key vkey="K_A">Æ</key>
<key vkey="K_B">’</key>
<key vkey="K_C">©</key>
<key vkey="K_D">Ð</key>
<key vkey="K_E">Œ</key>
<key vkey="K_F">ª</key>
<key vkey="K_G">Ŋ</key>
<key vkey="K_H">Ħ</key>
<key vkey="K_I">ı</key>
<key vkey="K_J">IJ</key>
<key vkey="K_L">Ŀ</key>
<key vkey="K_M">º</key>
<key vkey="K_N">♪</key>
<key vkey="K_O">Ø</key>
<key vkey="K_P">Þ</key>
<key vkey="K_Q">Ω</key>
<key vkey="K_R">®</key>
<key vkey="K_S">§</key>
<key vkey="K_T">Ŧ</key>
<key vkey="K_U">↑</key>
<key vkey="K_V">‘</key>
<key vkey="K_W">Ł</key>
<key vkey="K_Y">¥</key>
<key vkey="K_COMMA">×</key>
<key vkey="K_HYPHEN">¿</key>
<key vkey="K_PERIOD">÷</key>
<key vkey="K_BKQUOTE">­</key>
<key vkey="K_oE2">¦</key>
<key vkey="K_EQUAL">˛</key>
<key vkey="K_COLON">˝</key>
<key vkey="K_LBRKT">˚</key>
<key vkey="K_RBRKT">¯</key>
<key vkey="K_BKSLASH">˘</key>
<key vkey="K_QUOTE">ˇ</key>
<key vkey="K_SLASH">˙</key>
</layer>
</encoding>
</visualkeyboard>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment