├── README.md ├── layout.md ├── linux ├── ru └── us └── macos └── keylayout_devpew.keylayout /README.md: -------------------------------------------------------------------------------- 1 | # layout 2 | my personal layout for macos and linux 3 | -------------------------------------------------------------------------------- /layout.md: -------------------------------------------------------------------------------- 1 | #Layout 2 | 3 | Для того чтобы изменить стандартную линуксовую раскладку на мою нужно убедиться что в текущем линуксе существуют файлы "ru" и "us" в папке 4 | 5 | ~~~~ 6 | /usr/share/X11/xkb/symbols/ru 7 | ~~~~ 8 | 9 | Далее делаем бекап этих файлов: 10 | 11 | ~~~~ 12 | sudo cp /usr/share/X11/xkb/symbols/ru /usr/share/X11/xkb/symbols/ru_oiginal 13 | sudo cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/us_oiginal 14 | ~~~~ 15 | 16 | Удаляем файлы стандартные 17 | 18 | ~~~~ 19 | sudo rm /usr/share/X11/xkb/symbols/ru 20 | sudo rm /usr/share/X11/xkb/symbols/us 21 | ~~~~ 22 | 23 | Копирую свои файлы 24 | 25 | ~~~~ 26 | sudo cp /home/dm/Documents/kn_base/files/ru /usr/share/X11/xkb/symbols/ru 27 | sudo cp /home/dm/Documents/kn_base/files/us /usr/share/X11/xkb/symbols/us 28 | ~~~~ 29 | 30 | other: 31 | 32 | ~~~~ 33 | sudo chmod 0644 /usr/share/X11/xkb/symbols/ru 34 | ~~~~ 35 | 36 | ~~~~ 37 | stat /usr/share/X11/xkb/symbols/ru 38 | ~~~~ 39 | 40 | ~~~~ 41 | setxkbmap -option grp:caps_toggle "us,ru" -option grd_led:caps 42 | ~~~~ 43 | -------------------------------------------------------------------------------- /linux/ru: -------------------------------------------------------------------------------- 1 | // Keyboard layouts for Russia. 2 | // AEN 3 | // 2001/12/23 by Leon Kanter 4 | // 2005/12/09 Valery Inozemtsev 5 | 6 | // Windows layout 7 | default partial alphanumeric_keys 8 | xkb_symbols "winkeys" { 9 | 10 | include "ru(common)" 11 | name[Group1]= "Russian"; 12 | 13 | key { [ 3, numbersign ] }; 14 | key { [ 4, semicolon ] }; 15 | key { [ 5, percent ] }; 16 | key { [ 6, colon ] }; 17 | key { [ 7, question ] }; 18 | key { [ 8, asterisk ] }; 19 | 20 | key { [ slash, question ] }; 21 | //key { [ colon, semicolon ] }; 22 | key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 23 | 24 | }; 25 | 26 | hidden partial alphanumeric_keys 27 | xkb_symbols "common" { 28 | 29 | key { [ 1, exclam, U00F7, U2248 ] }; 30 | key { [ 2, quotedbl, currency, infinity ] }; 31 | key { [ 3, numbersign, U00A7, U20B4 ] }; 32 | key { [ 4, asterisk, dollar, EuroSign ] }; 33 | key { [ 5, colon, degree, U2030 ] }; 34 | key { [ 6, comma, less, U2264 ] }; 35 | key { [ 7, period, greater, U2265 ] }; 36 | key { [ 8, semicolon, enfilledcircbullet, U00D7 ] }; 37 | key { [ 9, parenleft, bracketleft, braceleft ] }; 38 | key { [ 0, parenright, bracketleft, braceleft ] }; 39 | key { [ minus, underscore, emdash, endash ] }; 40 | key { [ equal, plus, notequal, plusminus ] }; 41 | key { [ backslash, bar ] }; 42 | 43 | key { [ slash, question, backslash ] }; 44 | key { [ slash, bar ] }; 45 | 46 | key { [ Cyrillic_io, Cyrillic_IO ] }; 47 | key { [ Cyrillic_yu, Cyrillic_YU ] }; 48 | key { [ Cyrillic_tse, Cyrillic_TSE ] }; 49 | key { [ Cyrillic_u, Cyrillic_U ] }; 50 | key { [ Cyrillic_ka, Cyrillic_KA ] }; 51 | key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; 52 | key { [ Cyrillic_en, Cyrillic_EN ] }; 53 | key { [ Cyrillic_ghe, Cyrillic_GHE ] }; 54 | key { [ Cyrillic_sha, Cyrillic_SHA ] }; 55 | key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; 56 | key { [ Cyrillic_ze, Cyrillic_ZE ] }; 57 | key { [ Cyrillic_ha, Cyrillic_HA ] }; 58 | key { [ Cyrillic_be, Cyrillic_BE ] }; 59 | 60 | key { [ Cyrillic_ef, Cyrillic_EF ] }; 61 | key { [ Cyrillic_yeru, Cyrillic_YERU ] }; 62 | key { [ Cyrillic_ve, Cyrillic_VE ] }; 63 | key { [ Cyrillic_a, Cyrillic_A ] }; 64 | key { [ Cyrillic_pe, Cyrillic_PE ] }; 65 | key { [ Cyrillic_er, Cyrillic_ER ] }; 66 | key { [ Cyrillic_o, Cyrillic_O ] }; 67 | key { [ Cyrillic_el, Cyrillic_EL ] }; 68 | key { [ Cyrillic_de, Cyrillic_DE ] }; 69 | key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 70 | key { [ Cyrillic_e, Cyrillic_E ] }; 71 | 72 | key { [ Cyrillic_ya, Cyrillic_YA ] }; 73 | key { [ Cyrillic_che, Cyrillic_CHE ] }; 74 | key { [ Cyrillic_es, Cyrillic_ES ] }; 75 | key { [ Cyrillic_em, Cyrillic_EM ] }; 76 | key { [ Cyrillic_i, Cyrillic_I, Cyrillic_shorti, Cyrillic_SHORTI ] }; 77 | key { [ Cyrillic_te, Cyrillic_TE ] }; 78 | key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 79 | key { [ comma, bracketright ] }; 80 | key { [ period, bracketleft ] }; 81 | 82 | replace key { [ Control_L, Control_L ] }; 83 | replace key { [ Alt_L, Meta_L ] }; 84 | //replace key { [ ISO_Level3_Shift, Meta_L ] }; 85 | 86 | include "kpdl(comma)" 87 | }; 88 | 89 | partial alphanumeric_keys 90 | xkb_symbols "legacy" { 91 | 92 | include "ru(common)" 93 | name[Group1]= "Russian (legacy)"; 94 | }; 95 | 96 | partial alphanumeric_keys 97 | xkb_symbols "olpc" { 98 | 99 | include "ru(common)" 100 | 101 | key { [ 0x01000451, 0x01000401, grave ] }; // Ñ‘, Ð 102 | key { [ 3, numbersign, 0x01002116 ] }; // â„– 103 | key { [ 4, dollar, semicolon ] }; 104 | key { [ 6, asciicircum, colon ] }; 105 | key { [ 7, ampersand ] }; 106 | key { [ 9, parenleft, acute ] }; 107 | key { [ backslash, bar, slash ] }; 108 | 109 | include "group(olpc)" 110 | }; 111 | 112 | partial alphanumeric_keys 113 | xkb_symbols "typewriter" { 114 | 115 | include "ru(common)" 116 | name[Group1]= "Russian (typewriter)"; 117 | 118 | key { [ bar, plus ] }; 119 | key { [ numerosign, 1 ] }; 120 | key { [ minus, 2 ] }; 121 | key { [ slash, 3 ] }; 122 | key { [ quotedbl, 4 ] }; 123 | key { [ colon, 5 ] }; 124 | key { [ comma, 6 ] }; 125 | key { [ period, 7 ] }; 126 | key { [ underscore, 8 ] }; 127 | key { [ question, 9 ] }; 128 | key { [ percent, 0 ] }; 129 | key { [ exclam, equal ] }; 130 | key { [ semicolon, backslash ] }; 131 | 132 | key { [ parenright, parenleft ] }; 133 | 134 | key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 135 | key { [ Cyrillic_io, Cyrillic_IO ] }; 136 | }; 137 | 138 | partial alphanumeric_keys 139 | xkb_symbols "typewriter-legacy" { 140 | 141 | include "ru(common)" 142 | name[Group1]= "Russian (typewriter, legacy)"; 143 | 144 | key { [ apostrophe, quotedbl ] }; 145 | key { [ exclam, 1 ] }; 146 | key { [ numerosign, 2 ] }; 147 | key { [ slash, 3 ] }; 148 | key { [ semicolon, 4 ] }; 149 | key { [ colon, 5 ] }; 150 | key { [ comma, 6 ] }; 151 | key { [ period, 7 ] }; 152 | key { [ underscore, 8 ] }; 153 | key { [ question, 9 ] }; 154 | key { [ percent, 0 ] }; 155 | 156 | key { [ parenleft, parenright ] }; 157 | 158 | key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 159 | key { [ Cyrillic_io, Cyrillic_IO ] }; 160 | }; 161 | 162 | partial alphanumeric_keys 163 | xkb_symbols "phonetic" { 164 | 165 | name[Group1]= "Russian (phonetic)"; 166 | 167 | key { [ 1, exclam ] }; 168 | key { [ 2, at ] }; 169 | key { [ 3, Cyrillic_io ] }; 170 | key { [ 4, Cyrillic_IO ] }; 171 | key { [ 5, Cyrillic_hardsign ] }; 172 | key { [ 6, Cyrillic_HARDSIGN ] }; 173 | key { [ 7, ampersand ] }; 174 | key { [ 8, asterisk ] }; 175 | key { [ 9, parenleft ] }; 176 | key { [ 0, parenright ] }; 177 | key { [ minus, underscore ] }; 178 | 179 | key { [ period, greater ] }; 180 | key { [ slash, question ] }; 181 | key { [ comma, less ] }; 182 | key { [ semicolon, colon ] }; 183 | key { [ apostrophe, quotedbl ] }; 184 | key { [ bar, brokenbar ] }; 185 | 186 | key { [ Cyrillic_yu, Cyrillic_YU ] }; 187 | key { [ Cyrillic_ya, Cyrillic_YA ] }; 188 | key { [ Cyrillic_ze, Cyrillic_ZE ] }; 189 | key { [ Cyrillic_es, Cyrillic_ES ] }; 190 | key { [ Cyrillic_a, Cyrillic_A ] }; 191 | key { [ Cyrillic_ve, Cyrillic_VE ] }; 192 | key { [ Cyrillic_tse, Cyrillic_TSE ] }; 193 | key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 194 | key { [ Cyrillic_de, Cyrillic_DE ] }; 195 | key { [ Cyrillic_ie, Cyrillic_IE ] }; 196 | key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 197 | key { [ Cyrillic_ef, Cyrillic_EF ] }; 198 | key { [ Cyrillic_te, Cyrillic_TE ] }; 199 | key { [ Cyrillic_er, Cyrillic_ER ] }; 200 | key { [ Cyrillic_en, Cyrillic_EN ] }; 201 | key { [ Cyrillic_be, Cyrillic_BE ] }; 202 | key { [ Cyrillic_ha, Cyrillic_HA ] }; 203 | key { [ Cyrillic_ghe, Cyrillic_GHE ] }; 204 | key { [ Cyrillic_yeru, Cyrillic_YERU ] }; 205 | key { [ Cyrillic_em, Cyrillic_EM ] }; 206 | key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 207 | key { [ Cyrillic_u, Cyrillic_U ] }; 208 | key { [ Cyrillic_ka, Cyrillic_KA ] }; 209 | key { [ Cyrillic_i, Cyrillic_I ] }; 210 | key { [ Cyrillic_o, Cyrillic_O ] }; 211 | key { [ Cyrillic_el, Cyrillic_EL ] }; 212 | key { [ Cyrillic_pe, Cyrillic_PE ] }; 213 | 214 | key { [ Cyrillic_sha, Cyrillic_SHA ] }; 215 | key { [ Cyrillic_che, Cyrillic_CHE ] }; 216 | key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; 217 | key { [ Cyrillic_e, Cyrillic_E ] }; 218 | }; 219 | 220 | partial alphanumeric_keys 221 | xkb_symbols "phonetic_winkeys" { 222 | 223 | include "ru(phonetic)" 224 | name[Group1]= "Russian (phonetic WinKeys)"; 225 | 226 | key { [ Cyrillic_ha, Cyrillic_HA ] }; 227 | key { [ Cyrillic_che, Cyrillic_CHE ] }; 228 | key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 229 | }; 230 | 231 | partial alphanumeric_keys 232 | xkb_symbols "tt" { 233 | 234 | include "ru(winkeys)" 235 | name[Group1]= "Tatar"; 236 | 237 | key.type[group1]="FOUR_LEVEL"; 238 | 239 | key { [ 0x010004bb, 0x010004ba, Cyrillic_io, Cyrillic_IO ] }; 240 | key { [ 0x010004e9, 0x010004e8, Cyrillic_tse, Cyrillic_TSE ] }; 241 | key { [ 0x010004d9, 0x010004d8, Cyrillic_shcha, Cyrillic_SHCHA ] }; 242 | key { [ 0x010004af, 0x010004ae, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 243 | key { [ 0x010004a3, 0x010004a2, Cyrillic_zhe, Cyrillic_ZHE ] }; 244 | key { [ 0x01000497, 0x01000496, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 245 | 246 | include "level3(ralt_switch)" 247 | }; 248 | 249 | partial alphanumeric_keys 250 | xkb_symbols "os_legacy" { 251 | 252 | include "ru(common)" 253 | name[Group1]= "Ossetian (legacy)"; 254 | 255 | key { [ Cyrillic_e, Cyrillic_E ] }; 256 | key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; 257 | key { [ 0x010004D5, 0x010004D4 ] }; 258 | }; 259 | 260 | partial alphanumeric_keys 261 | xkb_symbols "os_winkeys" { 262 | 263 | include "ru(winkeys)" 264 | name[Group1]= "Ossetian (WinKeys)"; 265 | 266 | key { [ Cyrillic_e, Cyrillic_E ] }; 267 | key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; 268 | key { [ 0x010004D5, 0x010004D4 ] }; 269 | }; 270 | 271 | partial alphanumeric_keys 272 | xkb_symbols "cv" { 273 | 274 | include "ru(winkeys)" 275 | name[Group1]= "Chuvash"; 276 | 277 | key.type[group1]="FOUR_LEVEL"; 278 | 279 | key { [ Cyrillic_u, Cyrillic_U, 0x010004f3, 0x010004f2 ] }; 280 | key { [ Cyrillic_ie, Cyrillic_IE, 0x010004d7, 0x010004d6 ] }; 281 | key { [ Cyrillic_a, Cyrillic_A, 0x010004d1, 0x010004d0 ] }; 282 | key { [ Cyrillic_es, Cyrillic_ES, 0x010004ab, 0x010004aa ] }; 283 | 284 | include "level3(ralt_switch)" 285 | }; 286 | 287 | partial alphanumeric_keys 288 | xkb_symbols "udm" { 289 | 290 | include "ru(winkeys)" 291 | name[Group1]= "Udmurt"; 292 | 293 | key.type[group1]="FOUR_LEVEL"; 294 | 295 | key { [ question, exclam, 1, 1 ] }; 296 | key { [ parenleft, quotedbl, 2, 2 ] }; 297 | key { [ parenright, numerosign, 3, 3 ] }; 298 | key { [ colon, semicolon, 4, 4 ] }; 299 | key { [ asterisk, percent, 5, 5 ] }; 300 | key { [ 0x010004dd, 0x010004dc, 6, 6 ] }; 301 | key { [ 0x010004e7, 0x010004e6, 7, 7 ] }; 302 | key { [ 0x010004f5, 0x010004f4, 8, 8 ] }; 303 | key { [ 0x010004e5, 0x010004e4, 9, 9 ] }; 304 | key { [ 0x010004df, 0x010004de, 0, 0 ] }; 305 | 306 | include "level3(ralt_switch)" 307 | }; 308 | 309 | partial alphanumeric_keys 310 | xkb_symbols "cv_latin" { 311 | 312 | include "us(alt-intl)" 313 | name[Group1]= "Chuvash (Latin)"; 314 | 315 | key.type[group1]="FOUR_LEVEL"; 316 | 317 | key { [ q, Q, 0x01000161, 0x01000160 ] }; 318 | key { [ w, W, udiaeresis, Udiaeresis ] }; 319 | key { [ e, E, 0x01000115, 0x01000114 ] }; 320 | key { [ u, U, udiaeresis, Udiaeresis ] }; 321 | key { [ i, I, 0x0100012d, 0x0100012c ] }; 322 | key { [ o, O, odiaeresis, Odiaeresis ] }; 323 | key { [ a, A, abreve, Abreve ] }; 324 | key { [ s, S, scedilla, Scedilla ] }; 325 | key { [ g, G, gbreve, Gbreve ] }; 326 | key { [ j, J, 0x01000131, 0x01000130 ] }; 327 | key { [ c, C, ccedilla, Ccedilla ] }; 328 | 329 | include "level3(ralt_switch)" 330 | }; 331 | 332 | // Komi language layout 333 | // Vlad Shakhov 334 | // last changes 2007/10/23 335 | partial alphanumeric_keys 336 | xkb_symbols "kom" { 337 | 338 | include "ru(winkeys)" 339 | name[Group1]= "Komi"; 340 | 341 | key.type[group1]="FOUR_LEVEL_ALPHABETIC"; 342 | 343 | // cyrilllic o with diaeresis 344 | key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; 345 | 346 | // hard I as additional key for soft Cyrillic_I 347 | key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; 348 | 349 | include "level3(ralt_switch)" 350 | }; 351 | 352 | // Yakut language layout 353 | // 2008/04/23 Yakov Aleksandrov 354 | // 2008/04/23 Anatoliy Zhozhikov 355 | // 2008/04/23 Aleksandr Varlamov 356 | partial alphanumeric_keys 357 | xkb_symbols "sah" { 358 | 359 | include "ru(winkeys)" 360 | name[Group1]= "Yakut"; 361 | 362 | key.type[group1]="FOUR_LEVEL_ALPHABETIC"; 363 | 364 | key { [ Cyrillic_io, Cyrillic_IO, U04EB, U04EA ] }; 365 | key { [ Cyrillic_shorti, Cyrillic_SHORTI, U048B, U048A ] }; 366 | key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; 367 | key { [ Cyrillic_ka, Cyrillic_KA, U04C4, U04C3 ] }; 368 | key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; 369 | key { [ Cyrillic_ghe, Cyrillic_GHE, U0495, U0494 ] }; 370 | key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0 ] }; 371 | key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; 372 | key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; 373 | key { [ Cyrillic_zhe, Cyrillic_ZHE, U0461, U0460 ] }; 374 | key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_u_macron, Cyrillic_U_macron ] }; 375 | key { [ Cyrillic_em, Cyrillic_EM, U04C8, U04C7 ] }; 376 | key { [ Cyrillic_i, Cyrillic_I, Cyrillic_i_macron, Cyrillic_I_macron ] }; 377 | 378 | include "level3(ralt_switch)" 379 | }; 380 | 381 | 382 | //Kalmyk language layout 383 | //based on the Kalmyk language layout: http://soft.oyrat.org/ 384 | //Nikolay Korneev 385 | //Toli Miron 386 | partial alphanumeric_keys 387 | xkb_symbols "xal" { 388 | 389 | include "ru(winkeys)" 390 | name[Group1]= "Kalmyk"; 391 | 392 | key.type[group1]="FOUR_LEVEL"; 393 | 394 | key { [ question, exclam, 1 ] }; 395 | key { [ numerosign, quotedbl, 2 ] }; 396 | key { [ Cyrillic_u_straight, Cyrillic_U_straight, 3 ] }; 397 | key { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; 398 | key { [ asterisk, percent, 5 ] }; 399 | key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 6 ] }; 400 | key { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; 401 | key { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; 402 | key { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, 9 ] }; 403 | key { [ semicolon, colon, 0 ] }; 404 | 405 | key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; 406 | 407 | key { [ Cyrillic_tse, Cyrillic_TSE, dollar ] }; 408 | key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; 409 | key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; 410 | key { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; 411 | key { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; 412 | key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright ] }; 413 | key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; 414 | key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; 415 | key { [ Cyrillic_be, Cyrillic_BE, less ] }; 416 | key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; 417 | 418 | include "level3(ralt_switch)" 419 | }; 420 | 421 | partial alphanumeric_keys 422 | xkb_symbols "dos" { 423 | 424 | include "ru(common)" 425 | name[Group1]= "Russian (DOS)"; 426 | 427 | key { [ parenright, parenleft ] }; 428 | key { [ 4, currency ] }; 429 | key { [ 9, question ] }; 430 | key { [ 0, percent ] }; 431 | 432 | key { [ Cyrillic_io, Cyrillic_IO ] }; 433 | }; 434 | 435 | partial alphanumeric_keys 436 | xkb_symbols "bak" { 437 | 438 | include "ru(winkeys)" 439 | name[Group1]= "Bashkirian"; 440 | 441 | key.type[group1]="FOUR_LEVEL"; 442 | 443 | key { [ 0x010004d9, 0x010004d8, Cyrillic_io, Cyrillic_IO ] }; 444 | key { [ exclam, quotedbl, 1, 1 ] }; 445 | key { [ 0x010004e9, 0x010004e8, 2, 2 ] }; 446 | key { [ 0x010004a1, 0x010004a0, 3, 3 ] }; 447 | key { [ 0x01000493, 0x01000492, 4, 4 ] }; 448 | key { [ 0x010004ab, 0x010004aa, 5, 5 ] }; 449 | key { [ colon, semicolon, 6, 6 ] }; 450 | key { [ 0x01000499, 0x01000498, 7, 7 ] }; 451 | key { [ 0x010004bb, 0x010004ba, 8, 8 ] }; 452 | key { [ question, parenleft, 9, 9 ] }; 453 | key { [ numerosign, parenright, 0, 0 ] }; 454 | key { [ minus, percent, minus, underscore ] }; 455 | key { [ 0x010004af, 0x010004ae, equal, plus ] }; 456 | key { [ 0x010004a3, 0x010004a2, backslash, slash ] }; 457 | 458 | include "level3(ralt_switch)" 459 | }; 460 | 461 | // Serbian characters are added as third-level symbols to Russian keyboard layout. 462 | partial alphanumeric_keys 463 | xkb_symbols "srp" { 464 | 465 | include "ru(common)" 466 | name[Group1]= "Serbian (Russia)"; 467 | 468 | key { [ 3, numerosign ] }; 469 | key { [ 4, semicolon ] }; 470 | key { [ 5, percent ] }; 471 | key { [ 6, colon ] }; 472 | key { [ 7, question ] }; 473 | key { [ 8, asterisk ] }; 474 | key { [ period, comma ] }; 475 | key { [ backslash, slash ] }; 476 | key { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] }; 477 | key { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] }; 478 | key { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] }; 479 | key { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] }; 480 | key { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] }; 481 | key { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] }; 482 | 483 | include "level3(ralt_switch)" 484 | }; 485 | 486 | // Mari language layout 487 | // http://www.marlamuter.com/ 488 | // Last edit by Viatcheslav Kileev (slavakileev@yandex.ru) 489 | partial alphanumeric_keys 490 | xkb_symbols "chm" { 491 | 492 | include "ru(winkeys)" 493 | name[Group1]= "Mari"; 494 | 495 | key.type[group1]="FOUR_LEVEL_ALPHABETIC"; 496 | 497 | key { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] }; 498 | key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; 499 | key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; 500 | key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; 501 | key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; 502 | 503 | include "level3(ralt_switch)" 504 | }; 505 | 506 | partial alphanumeric_keys 507 | xkb_symbols "phonetic_azerty" { 508 | 509 | include "level3(ralt_switch)" 510 | 511 | name[Group1]= "Russian (phonetic azerty)"; 512 | 513 | key { [ ampersand, 1, onesuperior, exclamdown ] }; 514 | key { [ eacute, 2, asciitilde, oneeighth ] }; 515 | key { [ quotedbl, 3, numbersign, sterling ] }; 516 | key { [apostrophe, 4, braceleft, dollar ] }; 517 | key { [ parenleft, 5, bracketleft, threeeighths ] }; 518 | key { [ minus, 6, bar, fiveeighths ] }; 519 | key { [ egrave, 7, grave, seveneighths ] }; 520 | key { [underscore, 8, backslash, trademark ] }; 521 | key { [ ccedilla, 9, asciicircum, plusminus ] }; 522 | key { [ agrave, 0, at, degree ] }; 523 | key { [parenright, degree, bracketright, questiondown ] }; 524 | key { [ equal, plus, braceright, dead_ogonek ] }; 525 | 526 | key { [ comma, question, acute, doubleacute ] }; 527 | key { [ semicolon, period, horizconnector, multiply ] }; 528 | key { [ colon, slash, periodcentered, division ] }; 529 | key { [ exclam, section, dead_belowdot, dead_abovedot ] }; 530 | 531 | key { [ ugrave, percent, asciicircum, caron ] }; 532 | key { [ bar, brokenbar ] }; 533 | 534 | key { [ Cyrillic_yu, Cyrillic_YU ] }; 535 | key { [ Cyrillic_ya, Cyrillic_YA ] }; // Q 536 | key { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z 537 | key { [ Cyrillic_es, Cyrillic_ES ] }; 538 | key { [ Cyrillic_a, Cyrillic_A ] }; 539 | key { [ Cyrillic_ve, Cyrillic_VE ] }; // W 540 | key { [ Cyrillic_tse, Cyrillic_TSE ] }; 541 | key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; 542 | key { [ Cyrillic_de, Cyrillic_DE ] }; 543 | key { [ Cyrillic_ie, Cyrillic_IE ] }; 544 | key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 545 | key { [ Cyrillic_ef, Cyrillic_EF ] }; 546 | key { [ Cyrillic_te, Cyrillic_TE ] }; 547 | key { [ Cyrillic_er, Cyrillic_ER ] }; 548 | key { [ Cyrillic_en, Cyrillic_EN ] }; 549 | key { [ Cyrillic_be, Cyrillic_BE ] }; 550 | key { [ Cyrillic_ha, Cyrillic_HA ] }; 551 | key { [ Cyrillic_ghe, Cyrillic_GHE ] }; 552 | key { [ Cyrillic_yeru, Cyrillic_YERU ] }; 553 | key { [ Cyrillic_em, Cyrillic_EM ] }; // M 554 | key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 555 | key { [ Cyrillic_u, Cyrillic_U ] }; 556 | key { [ Cyrillic_ka, Cyrillic_KA ] }; 557 | key { [ Cyrillic_i, Cyrillic_I ] }; 558 | key { [ Cyrillic_o, Cyrillic_O ] }; 559 | key { [ Cyrillic_el, Cyrillic_EL ] }; 560 | key { [ Cyrillic_pe, Cyrillic_PE ] }; 561 | 562 | key { [ Cyrillic_sha, Cyrillic_SHA ] }; 563 | key { [ Cyrillic_che, Cyrillic_CHE ] }; 564 | key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; 565 | key { [ Cyrillic_e, Cyrillic_E ] }; 566 | }; 567 | 568 | partial alphanumeric_keys 569 | xkb_symbols "phonetic_fr" { 570 | 571 | include "fr" 572 | include "ru(phonetic_azerty)" 573 | 574 | name[Group1]= "Russian (phonetic French)"; 575 | }; 576 | 577 | // EXTRAS: 578 | 579 | // Church Slavonic language layout 580 | // based on the Russian standard keyboard 581 | // by Aleksandr Andreev and Yuri Shardt 582 | // last changes 2010/08/01; contact 583 | partial alphanumeric_keys 584 | xkb_symbols "chu" { 585 | 586 | name[Group1]= "Church Slavonic"; 587 | 588 | key { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign 589 | key { [ U0461, U0460, U047D, U047C ] }; // ѡ Ѡ ѽ Ѽ 590 | key { [ U0454, U0404, U0465, U0464 ] }; // є Є ѥ Ѥ 591 | key { [ U046F, U046E, U0469, U0468 ] }; // ѯ Ѯ ѩ Ѩ 592 | key { [ U0471, U0470, U046D, U046C ] }; // ѱ Ѱ ѭ Ѭ 593 | key { [ U0473, U0472, UA657, UA656 ] }; // ѳ Ѳ iotified A 594 | key { [ U0475, U0474, U0477, U0476 ] }; // ѵ Ѵ ѷ Ѷ 595 | key { [ U047B, U047A, UA64D, UA64C ] }; // ѻ Ѻ ꙍ Ꙍ 596 | key { [ U047F, U047E, U046B, U046A ] }; // ѿ Ѿ ѫ Ѫ 597 | key { [ U0455, U0405,parenleft,U002A ] }; // ѕ Ѕ ( * 598 | key { [Cyrillic_u,Cyrillic_U,parenright,U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u 599 | key { [ U0483, U0486, U0487, U005F ] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore) 600 | key { [ U0301, U0300, U0484, UA67E ] }; // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka) 601 | 602 | key { [ Cyrillic_shorti, Cyrillic_SHORTI, U0456 ] }; 603 | key { [ Cyrillic_tse, Cyrillic_TSE, U2DF0 ] }; 604 | key { [ UA64B, UA64A, U2DF9 ] }; // Cyrillic monograph Uk (not U)! 605 | key { [ Cyrillic_ka, Cyrillic_KA, U2DE6 ] }; 606 | key { [ Cyrillic_ie, Cyrillic_IE, U2DF7 ] }; 607 | key { [ Cyrillic_en, Cyrillic_EN, U2DE9 ] }; 608 | key { [ Cyrillic_ghe, Cyrillic_GHE, U2DE2 ] }; 609 | key { [ Cyrillic_sha, Cyrillic_SHA, U2DF2 ] }; 610 | key { [ Cyrillic_shcha, Cyrillic_SHCHA, U2DF3 ] }; 611 | key { [ Cyrillic_ze, Cyrillic_ZE, U2DE5 ] }; 612 | key { [ Cyrillic_ha, Cyrillic_HA, U2DEF ] }; 613 | key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D ] }; // Payerok 614 | key { [ backslash, slash, colon, question ] }; // \ / : ? NB: for Slavonic question, use semicolon 615 | 616 | key { [ Cyrillic_ef, Cyrillic_EF ] }; 617 | key { [ Cyrillic_yeru, Cyrillic_YERU ] }; 618 | key { [ Cyrillic_ve, Cyrillic_VE, U2DE1 ] }; 619 | key { [ Cyrillic_a, Cyrillic_A, U2DF6 ] }; 620 | key { [ Cyrillic_pe, Cyrillic_PE, U2DEB ] }; 621 | key { [ Cyrillic_er, Cyrillic_ER, U2DEC ] }; 622 | key { [ Cyrillic_o, Cyrillic_O, U2DEA ] }; 623 | key { [ Cyrillic_el, Cyrillic_EL, U2DE7 ] }; 624 | key { [ Cyrillic_de, Cyrillic_DE, U2DE3 ] }; 625 | key { [ Cyrillic_zhe, Cyrillic_ZHE, U2DE4 ] }; 626 | key { [ U0463, U0462, U2DFA ] }; // Yat 627 | 628 | key { [ U0467, U0466, U2DFD ] }; // Small Yus 629 | key { [ Cyrillic_che, Cyrillic_CHE, U2DF1 ] }; 630 | key { [ Cyrillic_es, Cyrillic_ES, U2DED ] }; 631 | key { [ Cyrillic_em, Cyrillic_EM, U2DE8 ] }; 632 | key { [ Cyrillic_i, Cyrillic_I ] }; 633 | key { [ Cyrillic_te, Cyrillic_TE, U2DEE ] }; 634 | key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; 635 | key { [ Cyrillic_be, Cyrillic_BE, U2DE0 ] }; 636 | key { [ Cyrillic_yu, Cyrillic_YU, U2DFB ] }; 637 | key { [ period, comma, semicolon, exclam ] }; 638 | }; 639 | 640 | 641 | // RUU (Russian-Ukrainian United keyboard layout). 642 | // This is a modified Russian standard keyboard, with the third level containing 643 | // Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols. 644 | // For a description see http://wiki.opennet.ru/RUU [in Russian]. 645 | // Vasyĺ V. Vercynśkyj 646 | // last changes 2011/05/11 647 | // 648 | // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 649 | // │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫ ┃ 650 | // │ ’ ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃ 651 | // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 652 | // ┃ ┃ Й │ Ц │ У Ў │ К │ Е Ё │ Н │ Г Ґ │ Ш │ Щ │ З │ Х │ Ъ Ї ┃ Enter ┃ 653 | // ┃ Tab ↹ ┃ й │ ц │ у ў │ к ® │ е ё │ н │ г ґ │ ш │ щ │ з │ х │ ъ ї ┃ ⏎ ┃ 654 | // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 655 | // ┃ Caps ┃ Ф │ Ы І │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э Є │ | ¦ ┃ ┃ 656 | // ┃ Lock ⇬ ┃ ф │ ы і │ в │ а │ п │ р │ о │ л │ д │ ж │ э є │ / \ ┃ ┃ 657 | // ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫ 658 | // ┃ ┃ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б „ │ Ю “ │ , … ┃ ┃ 659 | // ┃ Shift ⇧ ┃ я │ ч │ с © │ м │ и │ т ™ │ ь µ │ б « │ ю » │ . / ┃ Shift ⇧ ┃ 660 | // ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛ 661 | // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ 662 | // ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃ 663 | // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 664 | partial alphanumeric_keys 665 | xkb_symbols "ruu" { 666 | 667 | include "ru(common)" 668 | name[Group1]= "Russian (with Ukrainian-Belorussian layout)"; 669 | 670 | key { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol 671 | key { [ 1, exclam, U00F7, U2248 ] }; // Division Sign and Almost Equal To 672 | key { [ 2, quotedbl, currency, infinity ] }; 673 | key { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign 674 | key { [ 4, semicolon, dollar, EuroSign ] }; 675 | key { [ 5, percent, degree, U2030 ] }; // Per Mille Sign 676 | key { [ 6, colon, less, U2264 ] }; // Less-Than Or Equal To 677 | key { [ 7, question, greater, U2265 ] }; // Greater-Than Or Equal To 678 | key { [ 8, asterisk, enfilledcircbullet, U00D7 ] }; // Multiplication Sign 679 | key { [ 9, parenleft, bracketleft, braceleft ] }; 680 | key { [ 0, parenright, bracketright, braceright ] }; 681 | key { [ minus, underscore, emdash, endash ] }; 682 | key { [ equal, plus, notequal, plusminus ] }; 683 | 684 | key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; 685 | key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm 686 | key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; 687 | key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; 688 | key { [ Cyrillic_ze, Cyrillic_ZE, U00B6 ] }; // Pilcrow Sign 689 | key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] }; 690 | 691 | key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] }; 692 | key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; 693 | key { [ slash, bar, backslash, U00A6 ] }; // Broken Bar 694 | 695 | key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; 696 | key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; 697 | key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5 ] }; // Micro Sign 698 | key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; 699 | key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; 700 | key { [ period, comma, slash, ellipsis ] }; 701 | 702 | include "level3(ralt_switch)" 703 | }; 704 | 705 | partial alphanumeric_keys 706 | xkb_symbols "sun_type6" { 707 | include "sun_vndr/ru(sun_type6)" 708 | }; 709 | 710 | // Apple layout 711 | partial alphanumeric_keys 712 | xkb_symbols "mac" { 713 | 714 | include "ru(common)" 715 | name[Group1]= "Russian (Macintosh)"; 716 | 717 | key { [ less, greater ] }; 718 | key { [ 2, quotedbl ] }; 719 | key { [ 3, numerosign ] }; 720 | key { [ 4, percent ] }; 721 | key { [ 5, colon ] }; 722 | key { [ 6, comma ] }; 723 | key { [ 7, period ] }; 724 | key { [ 8, semicolon ] }; 725 | key { [ bracketright, bracketleft ] }; 726 | key { [ Cyrillic_io, Cyrillic_IO ] }; 727 | }; 728 | 729 | xkb_symbols "swap_l_alt_ctrl" { 730 | replace key { [ Control_L, Control_L ] }; 731 | replace key { [ Alt_L, Meta_L ] }; 732 | 733 | }; 734 | -------------------------------------------------------------------------------- /linux/us: -------------------------------------------------------------------------------- 1 | default partial alphanumeric_keys modifier_keys 2 | xkb_symbols "basic" { 3 | 4 | name[Group1]= "English (US)"; 5 | 6 | key { [ grave, asciitilde ] }; 7 | key { [ 1, exclam ] }; 8 | key { [ 2, at ] }; 9 | key { [ 3, numbersign ] }; 10 | key { [ 4, dollar ] }; 11 | key { [ 5, percent ] }; 12 | key { [ 6, asciicircum ] }; 13 | key { [ 7, ampersand ] }; 14 | key { [ 8, asterisk ] }; 15 | key { [ 9, parenleft ] }; 16 | key { [ 0, parenright ] }; 17 | key { [ minus, underscore ] }; 18 | key { [ equal, plus ] }; 19 | 20 | key { [ q, Q ] }; 21 | key { [ w, W ] }; 22 | key { [ e, E ] }; 23 | key { [ r, R ] }; 24 | key { [ t, T ] }; 25 | key { [ y, Y ] }; 26 | key { [ u, U ] }; 27 | key { [ i, I ] }; 28 | key { [ o, O ] }; 29 | key { [ p, P ] }; 30 | key { [ bracketleft, braceleft ] }; 31 | key { [ bracketright, braceright ] }; 32 | 33 | key { [ a, A ] }; 34 | key { [ s, S ] }; 35 | key { [ d, D ] }; 36 | key { [ f, F ] }; 37 | key { [ g, G ] }; 38 | key { [ h, H ] }; 39 | key { [ j, J ] }; 40 | key { [ k, K ] }; 41 | key { [ l, L ] }; 42 | key { [ semicolon, colon ] }; 43 | key { [ apostrophe, quotedbl ] }; 44 | 45 | key { [ z, Z ] }; 46 | key { [ x, X ] }; 47 | key { [ c, C ] }; 48 | key { [ v, V ] }; 49 | key { [ b, B ] }; 50 | key { [ n, N ] }; 51 | key { [ m, M ] }; 52 | key { [ comma, less ] }; 53 | key { [ period, greater ] }; 54 | key { [ slash, question ] }; 55 | 56 | key { [ backslash, bar ] }; 57 | 58 | replace key { [ Control_L, Control_L ] }; 59 | replace key { [ Alt_L, Meta_L ] }; 60 | }; 61 | 62 | partial alphanumeric_keys 63 | xkb_symbols "euro" { 64 | 65 | include "us(basic)" 66 | name[Group1]= "English (US, with euro on 5)"; 67 | 68 | include "eurosign(5)" 69 | 70 | include "level3(ralt_switch)" 71 | }; 72 | 73 | 74 | partial alphanumeric_keys 75 | xkb_symbols "intl" { 76 | 77 | include "us(basic)" 78 | name[Group1]= "English (US, international with dead keys)"; 79 | 80 | key { [dead_grave, dead_tilde, grave, asciitilde ] }; 81 | key { [ 1, exclam, exclamdown, onesuperior ] }; 82 | key { [ 2, at, twosuperior, dead_doubleacute ] }; 83 | key { [ 3, numbersign, threesuperior, dead_macron ] }; 84 | key { [ 4, dollar, currency, sterling ] }; 85 | key { [ 5, percent, EuroSign, dead_cedilla ] }; 86 | key { [ 6, dead_circumflex, onequarter, asciicircum ] }; 87 | key { [ 7, ampersand, onehalf, dead_horn ] }; 88 | key { [ 8, asterisk, threequarters, dead_ogonek ] }; 89 | key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; 90 | key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; 91 | key { [ minus, underscore, yen, dead_belowdot ] }; 92 | key { [ equal, plus, multiply, division ] }; 93 | 94 | key { [ q, Q, adiaeresis, Adiaeresis ] }; 95 | key { [ w, W, aring, Aring ] }; 96 | key { [ e, E, eacute, Eacute ] }; 97 | key { [ r, R, registered, registered ] }; 98 | key { [ t, T, thorn, THORN ] }; 99 | key { [ y, Y, udiaeresis, Udiaeresis ] }; 100 | key { [ u, U, uacute, Uacute ] }; 101 | key { [ i, I, iacute, Iacute ] }; 102 | key { [ o, O, oacute, Oacute ] }; 103 | key { [ p, P, odiaeresis, Odiaeresis ] }; 104 | key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; 105 | key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; 106 | 107 | key { [ a, A, aacute, Aacute ] }; 108 | key { [ s, S, ssharp, section ] }; 109 | key { [ d, D, eth, ETH ] }; 110 | key { [ f, F, f, F ] }; 111 | key { [ g, G, g, G ] }; 112 | key { [ h, H, h, H ] }; 113 | key { [ j, J, j, J ] }; 114 | key { [ k, K, oe, OE ] }; 115 | 116 | key { [ l, L, oslash, Ooblique ] }; 117 | key { [ semicolon, colon, paragraph, degree ] }; 118 | key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; 119 | 120 | key { [ z, Z, ae, AE ] }; 121 | key { [ x, X, x, X ] }; 122 | key { [ c, C, copyright, cent ] }; 123 | key { [ v, V, v, V ] }; 124 | key { [ b, B, b, B ] }; 125 | key { [ n, N, ntilde, Ntilde ] }; 126 | key { [ m, M, mu, mu ] }; 127 | key { [ comma, less, ccedilla, Ccedilla ] }; 128 | key { [ period, greater, dead_abovedot, dead_caron ] }; 129 | key { [ slash, question, questiondown, dead_hook ] }; 130 | key { [ backslash, bar, notsign, brokenbar ] }; 131 | 132 | key { [ backslash, bar, backslash, bar ] }; 133 | 134 | include "level3(ralt_switch)" 135 | }; 136 | 137 | // Based on symbols/us_intl keyboard map: 138 | // Dead-keys definition for a very simple US/ASCII layout. 139 | // by Conectiva (http://www.conectiva.com.br) 140 | // modified by Ricardo Y. Igarashi (iga@that.com.br) 141 | 142 | // Added the following deadkeys, to make it truly international: 143 | // 144 | // dead_macron: on AltGr-minus 145 | // dead_breve: on AltGr-parenleft 146 | // dead_abovedot: on AltGr-period 147 | // dead_abovering: on AltGr-0 148 | // dead_doubleacute: on AltGr-equal (as quotedbl is already used) 149 | // dead_caron: on AltGr-less (AltGr-shift-comma) 150 | // dead_cedilla: on AltGr-comma 151 | // dead_ogonek: on AltGr-semicolon 152 | // dead_belowdot: on AltGr-underscore (AltGr-shift-minus) 153 | // dead_hook: on AltGr-question 154 | // dead_horn: on AltGr-plus (AltGr-shift-equal) 155 | // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon) 156 | // 157 | // those were already there: 158 | // dead_grave 159 | // dead_acute 160 | // dead_circumflex 161 | // dead_tilde 162 | // dead_diaeresis 163 | 164 | partial alphanumeric_keys 165 | xkb_symbols "alt-intl" { 166 | 167 | include "us" 168 | name[Group1]= "English (US, alternative international)"; 169 | 170 | key { [ dead_grave, dead_tilde, grave, asciitilde ] }; 171 | key { [ 5, percent, EuroSign ] }; 172 | key { [ 6, dead_circumflex, asciicircum, asciicircum ] }; 173 | key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; 174 | key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; 175 | key { [ minus, underscore, dead_macron, dead_belowdot ] }; 176 | key { [ equal, plus, dead_doubleacute, dead_horn ] }; 177 | 178 | key { [ e, E, EuroSign, cent ] }; 179 | 180 | key { [ semicolon, colon, dead_ogonek, dead_diaeresis ] }; 181 | key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; 182 | 183 | key { [ comma, less, dead_cedilla, dead_caron ] }; 184 | key { [ period, greater, dead_abovedot, dead_circumflex ] }; 185 | key { [ slash, question, dead_hook, dead_hook ] }; 186 | 187 | key { [ backslash, bar, backslash, bar ] }; 188 | 189 | include "level3(ralt_switch)" 190 | }; 191 | 192 | // based on a keyboard map from an 'xkb/symbols/dk' file 193 | 194 | partial alphanumeric_keys 195 | xkb_symbols "dvorak" { 196 | 197 | name[Group1]= "English (Dvorak)"; 198 | 199 | key { [ grave, asciitilde, dead_grave, dead_tilde ] }; 200 | 201 | key { [ 1, exclam ] }; 202 | key { [ 2, at ] }; 203 | key { [ 3, numbersign ] }; 204 | key { [ 4, dollar ] }; 205 | key { [ 5, percent ] }; 206 | key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; 207 | key { [ 7, ampersand ] }; 208 | key { [ 8, asterisk ] }; 209 | key { [ 9, parenleft, dead_grave] }; 210 | key { [ 0, parenright ] }; 211 | key { [ bracketleft, braceleft ] }; 212 | key { [ bracketright, braceright, dead_tilde] }; 213 | 214 | key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; 215 | key { [ comma, less, dead_cedilla, dead_caron ] }; 216 | key { [ period, greater, dead_abovedot, periodcentered ] }; 217 | key { [ p, P ] }; 218 | key { [ y, Y ] }; 219 | key { [ f, F ] }; 220 | key { [ g, G ] }; 221 | key { [ c, C ] }; 222 | key { [ r, R ] }; 223 | key { [ l, L ] }; 224 | key { [ slash, question ] }; 225 | key { [ equal, plus ] }; 226 | 227 | key { [ a, A ] }; 228 | key { [ o, O ] }; 229 | key { [ e, E ] }; 230 | key { [ u, U ] }; 231 | key { [ i, I ] }; 232 | key { [ d, D ] }; 233 | key { [ h, H ] }; 234 | key { [ t, T ] }; 235 | key { [ n, N ] }; 236 | key { [ s, S ] }; 237 | key { [ minus, underscore ] }; 238 | 239 | key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; 240 | key { [ q, Q ] }; 241 | key { [ j, J ] }; 242 | key { [ k, K ] }; 243 | key { [ x, X ] }; 244 | key { [ b, B ] }; 245 | key { [ m, M ] }; 246 | key { [ w, W ] }; 247 | key { [ v, V ] }; 248 | key { [ z, Z ] }; 249 | 250 | key { [ backslash, bar ] }; 251 | }; 252 | 253 | // Dvorak international with dead keys 254 | // Olivier Mehani (shtrom-xorg@ssji.net) 255 | // Reproduce the per-key mapping of us(intl) for the dvorak layout 256 | // aka "I just swapped my keys over" 257 | partial alphanumeric_keys 258 | xkb_symbols "dvorak-intl" { 259 | 260 | include "us(dvorak)" 261 | name[Group1]= "English (Dvorak, international with dead keys)"; 262 | 263 | key { [dead_grave, dead_tilde, grave, asciitilde ] }; 264 | 265 | key { [ 1, exclam, exclamdown, onesuperior ] }; 266 | key { [ 2, at, twosuperior, dead_doubleacute ] }; 267 | key { [ 3, numbersign, threesuperior, dead_macron ] }; 268 | key { [ 4, dollar, currency, sterling ] }; 269 | key { [ 5, percent, EuroSign, dead_cedilla ] }; 270 | key { [ 6, dead_circumflex, onequarter, asciicircum ] }; 271 | key { [ 7, ampersand, onehalf, dead_horn ] }; 272 | key { [ 8, asterisk, threequarters, dead_ogonek ] }; 273 | key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; 274 | key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; 275 | key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; 276 | key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; 277 | 278 | key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; 279 | key { [ comma, less, ccedilla, Ccedilla ] }; 280 | key { [ period, greater, dead_abovedot, dead_caron ] }; 281 | key { [ p, P, odiaeresis, Odiaeresis ] }; 282 | key { [ y, Y, udiaeresis, Udiaeresis ] }; 283 | // key { [ f, F ] }; 284 | // key { [ g, G ] }; 285 | key { [ c, C, copyright, cent ] }; 286 | key { [ r, R, registered, registered ] }; 287 | key { [ l, L, oslash, Ooblique ] }; 288 | key { [ slash, question, questiondown, dead_hook ] }; 289 | // key { [ equal, plus, multiply, division ] }; 290 | 291 | key { [ a, A, aacute, Aacute ] }; 292 | key { [ o, O, oacute, Oacute ] }; 293 | key { [ e, E, eacute, Eacute ] }; 294 | key { [ u, U, uacute, Uacute ] }; 295 | key { [ i, I, iacute, Iacute ] }; 296 | key { [ d, D, eth, ETH ] }; 297 | // key { [ h, H ] }; 298 | key { [ t, T, thorn, THORN ] }; 299 | key { [ n, N, ntilde, Ntilde ] }; 300 | key { [ s, S, ssharp, section ] }; 301 | // key { [ minus, underscore, yen, dead_belowdot ] }; 302 | 303 | key { [ semicolon, colon, paragraph, degree ] }; 304 | key { [ q, Q, adiaeresis, Adiaeresis ] }; 305 | // key { [ j, J ] }; 306 | key { [ k, K, oe, OE ] }; 307 | // key { [ x, X ] }; 308 | // key { [ b, B ] }; 309 | key { [ m, M, mu, mu ] }; 310 | key { [ w, W, aring, Aring ] }; 311 | // key { [ v, V ] }; 312 | key { [ z, Z, ae, AE ] }; 313 | 314 | key { [ backslash, bar, notsign, brokenbar ] }; 315 | 316 | include "level3(ralt_switch)" 317 | }; 318 | 319 | // Dvorak international without dead keys 320 | // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) 321 | // Based on information from http://www.poupinou.org/dvorak/index.html 322 | // 323 | // ` 1 2 3 4 5 6 7 8 9 0 [ ] \ 324 | // € 325 | // 326 | // ' , . p y f g c r l / = 327 | // ä ê ë ü ç 328 | // 329 | // a o e u i d h t n s - 330 | // à ô é û î ß 331 | // 332 | // ; q j k x b m w v z 333 | // â ö è ù ï 334 | 335 | partial alphanumeric_keys 336 | xkb_symbols "dvorak-alt-intl" { 337 | 338 | include "us(dvorak)" 339 | name[Group1]= "English (Dvorak alternative international no dead keys)"; 340 | 341 | key { [ 4, dollar, EuroSign ] }; 342 | 343 | key { [ comma, less, adiaeresis, dead_caron ] }; 344 | key { [ period, greater, ecircumflex, periodcentered ] }; 345 | key { [ p, P, ediaeresis, dead_cedilla ] }; 346 | key { [ y, Y, udiaeresis ] }; 347 | key { [ c, C, ccedilla, dead_abovedot ] }; 348 | 349 | key { [ a, A, agrave ] }; 350 | key { [ o, O, ocircumflex ] }; 351 | key { [ e, E, eacute ] }; 352 | key { [ u, U, ucircumflex ] }; 353 | key { [ i, I, icircumflex ] }; 354 | key { [ s, S, ssharp ] }; 355 | 356 | key { [ semicolon, colon, acircumflex ] }; 357 | key { [ q, Q, odiaeresis, dead_ogonek ] }; 358 | key { [ j, J, egrave, dead_doubleacute ] }; 359 | key { [ k, K, ugrave ] }; 360 | key { [ x, X, idiaeresis ] }; 361 | 362 | include "level3(ralt_switch)" 363 | }; 364 | 365 | // Left and right handed dvorak layouts 366 | // by sqweek 2006-01-30 367 | // Based on the corresponding layouts in the console-tools package. 368 | partial alphanumeric_keys 369 | xkb_symbols "dvorak-l" { 370 | 371 | include "us(dvorak)" 372 | name[Group1]= "English (left handed Dvorak)"; 373 | 374 | key { [ bracketleft, braceleft ] }; 375 | key { [ bracketright, braceright ] }; 376 | key { [ slash, question ] }; 377 | key { [ p, P ] }; 378 | key { [ f, F ] }; 379 | key { [ m, M ] }; 380 | key { [ l, L ] }; 381 | key { [ j, J ] }; 382 | key { [ 4, dollar ] }; 383 | key { [ 3, numbersign ] }; 384 | key { [ 2, at ] }; 385 | key { [ 1, exclam ] }; 386 | 387 | key { [ semicolon, colon ] }; 388 | key { [ q, Q ] }; 389 | key { [ b, B ] }; 390 | key { [ y, Y ] }; 391 | key { [ u, U ] }; 392 | key { [ r, R ] }; 393 | key { [ s, S ] }; 394 | key { [ o, O ] }; 395 | key { [ period, greater ] }; 396 | key { [ 6, asciicircum ] }; 397 | key { [ 5, percent ] }; 398 | key { [ equal, plus ] }; 399 | 400 | key { [ minus, underscore ] }; 401 | key { [ k, K ] }; 402 | key { [ c, C ] }; 403 | key { [ d, D ] }; 404 | key { [ t, T ] }; 405 | key { [ h, H ] }; 406 | key { [ e, E ] }; 407 | key { [ a, A ] }; 408 | key { [ z, Z ] }; 409 | key { [ 8, asterisk ] }; 410 | key { [ 7, ampersand ] }; 411 | 412 | key { [ apostrophe, quotedbl ] }; 413 | key { [ x, X ] }; 414 | key { [ g, G ] }; 415 | key { [ v, V ] }; 416 | key { [ w, W ] }; 417 | key { [ n, N ] }; 418 | key { [ i, I ] }; 419 | key { [ comma, less ] }; 420 | key { [ 0, parenright ] }; 421 | key { [ 9, parenleft ] }; 422 | }; 423 | 424 | partial alphanumeric_keys 425 | xkb_symbols "dvorak-r" { 426 | 427 | include "us(dvorak)" 428 | name[Group1]= "English (right handed Dvorak)"; 429 | 430 | key { [ 1, exclam ] }; 431 | key { [ 2, at ] }; 432 | key { [ 3, numbersign ] }; 433 | key { [ 4, dollar ] }; 434 | key { [ j, J ] }; 435 | key { [ l, L ] }; 436 | key { [ m, M ] }; 437 | key { [ f, F ] }; 438 | key { [ p, P ] }; 439 | key { [ slash, question ] }; 440 | key { [ bracketleft, braceleft ] }; 441 | key { [ bracketright, braceright ] }; 442 | 443 | key { [ 5, percent ] }; 444 | key { [ 6, asciicircum ] }; 445 | key { [ q, Q ] }; 446 | key { [ period, greater ] }; 447 | key { [ o, O ] }; 448 | key { [ r, R ] }; 449 | key { [ s, S ] }; 450 | key { [ u, U ] }; 451 | key { [ y, Y ] }; 452 | key { [ b, B ] }; 453 | key { [ semicolon, colon ] }; 454 | key { [ equal, plus ] }; 455 | 456 | key { [ 7, ampersand ] }; 457 | key { [ 8, asterisk ] }; 458 | key { [ z, Z ] }; 459 | key { [ a, A ] }; 460 | key { [ e, E ] }; 461 | key { [ h, H ] }; 462 | key { [ t, T ] }; 463 | key { [ d, D ] }; 464 | key { [ c, C ] }; 465 | key { [ k, K ] }; 466 | key { [ minus, underscore ] }; 467 | 468 | key { [ 9, parenleft ] }; 469 | key { [ 0, parenright ] }; 470 | key { [ x, X ] }; 471 | key { [ comma, less ] }; 472 | key { [ i, I ] }; 473 | key { [ n, N ] }; 474 | key { [ w, W ] }; 475 | key { [ v, V ] }; 476 | key { [ g, G ] }; 477 | key { [ apostrophe, quotedbl ] }; 478 | }; 479 | 480 | // Classic dvorak layout 481 | // by Piter Punk - 2006-07-06 482 | // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net 483 | // on xorg list. 484 | partial alphanumeric_keys 485 | xkb_symbols "dvorak-classic" { 486 | 487 | name[Group1]= "English (classic Dvorak)"; 488 | 489 | key { [ grave, asciitilde, dead_grave, dead_tilde ] }; 490 | 491 | key { [ bracketleft, braceleft ] }; 492 | key { [ 7, ampersand ] }; 493 | key { [ 5, percent ] }; 494 | key { [ 3, numbersign ] }; 495 | key { [ 1, exclam ] }; 496 | key { [ 9, parenleft, dead_grave] }; 497 | key { [ 0, parenright ] }; 498 | key { [ 2, at ] }; 499 | key { [ 4, dollar ] }; 500 | key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; 501 | key { [ 8, asterisk ] }; 502 | key { [ bracketright, braceright, dead_tilde] }; 503 | 504 | key { [ slash, question ] }; 505 | key { [ comma, less, dead_cedilla, dead_caron ] }; 506 | key { [ period, greater, dead_abovedot, periodcentered ] }; 507 | key { [ p, P ] }; 508 | key { [ y, Y ] }; 509 | key { [ f, F ] }; 510 | key { [ g, G ] }; 511 | key { [ c, C ] }; 512 | key { [ r, R ] }; 513 | key { [ l, L ] }; 514 | key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; 515 | key { [ equal, plus ] }; 516 | 517 | key { [ a, A ] }; 518 | key { [ o, O ] }; 519 | key { [ e, E ] }; 520 | key { [ u, U ] }; 521 | key { [ i, I ] }; 522 | key { [ d, D ] }; 523 | key { [ h, H ] }; 524 | key { [ t, T ] }; 525 | key { [ n, N ] }; 526 | key { [ s, S ] }; 527 | key { [ minus, underscore ] }; 528 | 529 | key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; 530 | key { [ q, Q ] }; 531 | key { [ j, J ] }; 532 | key { [ k, K ] }; 533 | key { [ x, X ] }; 534 | key { [ b, B ] }; 535 | key { [ m, M ] }; 536 | key { [ w, W ] }; 537 | key { [ v, V ] }; 538 | key { [ z, Z ] }; 539 | key { [ backslash, bar ] }; 540 | }; 541 | 542 | // Programmer Dvorak, by Roland Kaufmann 543 | // License: BSD, available at 544 | // Main features: Numbers are in shift position (like French), symbols have been 545 | // placed in locations that give good hand-alternation and finger rolling with 546 | // symbols that usually follows, accented characters are possible for I18N. 547 | partial alphanumeric_keys 548 | xkb_symbols "dvp" { 549 | 550 | include "us(dvorak)" 551 | name[Group1] = "English (Programmer Dvorak)"; 552 | 553 | // Unmodified Shift AltGr Shift+AltGr 554 | // symbols row, left side 555 | key { [ dollar, asciitilde, dead_tilde ] }; 556 | key { [ ampersand, percent ] }; 557 | key { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 558 | key { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 559 | key { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 560 | key { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 561 | key { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 562 | 563 | // symbols row, right side 564 | key { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 565 | key { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 566 | key { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 567 | key { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 568 | key { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang 569 | key { [ numbersign, grave, dead_grave ] }; 570 | key { [ BackSpace, BackSpace ] }; 571 | 572 | // upper row, left side 573 | key { [ semicolon, colon, dead_diaeresis ] }; 574 | key { [ comma, less, guillemotleft, U201C ] }; 575 | key { [ period, greater, guillemotright, U201D ] }; 576 | key { [ p, P, paragraph, section ] }; 577 | key { [ y, Y, udiaeresis, Udiaeresis ] }; 578 | 579 | // upper row, right side 580 | key { [ c, C, ccedilla, Ccedilla ] }; 581 | key { [ r, R, registered, trademark ] }; 582 | key { [ slash, question, questiondown, U203D ] }; // interrobang 583 | key { [ at, asciicircum, dead_circumflex, dead_caron ] }; 584 | 585 | // home row, left side 586 | key { [ a, A, aring, Aring ] }; 587 | key { [ o, O, oslash, Ooblique ] }; 588 | key { [ e, E, ae, AE ] }; 589 | key { [ u, U, eacute, Eacute ] }; 590 | 591 | // home row, right side 592 | key { [ d, D, eth, ETH ] }; 593 | key { [ h, H, dead_acute ] }; 594 | key { [ t, T, thorn, THORN ] }; 595 | key { [ n, N, ntilde, Ntilde ] }; 596 | key { [ s, S, ssharp ] }; 597 | key { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; 598 | key { [ backslash, bar ] }; 599 | 600 | // lower row, left side 601 | key { [ apostrophe, quotedbl, dead_acute ] }; 602 | 603 | include "level3(ralt_switch)" 604 | }; 605 | 606 | // phonetic layout for Russian letters on an US keyboard 607 | // by Ivan Popov 2005-07-17 608 | 609 | // level3 modifier is a shortcut to the "us" meaning of the keys where 610 | // we place cyrillic letters, handy for accessing the corresponding 611 | // punctuation marks. 612 | // It is important to have access to punctuation marks, and the rest of 613 | // alphabetical keys are added for being consequent so that the users 614 | // can expect the level3 modifier to give what the key label shows. 615 | 616 | partial alphanumeric_keys 617 | xkb_symbols "rus" { 618 | 619 | include "us(basic)" 620 | name[Group1]= "Russian (US, phonetic)"; 621 | 622 | key.type[group1]="FOUR_LEVEL_ALPHABETIC"; 623 | 624 | key { [ Cyrillic_a, Cyrillic_A ] }; 625 | key { [ Cyrillic_be, Cyrillic_BE ] }; 626 | key { [ Cyrillic_ve, Cyrillic_VE ] }; 627 | key { [ Cyrillic_ghe, Cyrillic_GHE ] }; 628 | key { [ Cyrillic_de, Cyrillic_DE ] }; 629 | key { [ Cyrillic_ie, Cyrillic_IE ] }; 630 | key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; 631 | key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 632 | key { [ Cyrillic_ze, Cyrillic_ZE ] }; 633 | key { [ Cyrillic_i, Cyrillic_I ] }; 634 | key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 635 | key { [ Cyrillic_ka, Cyrillic_KA ] }; 636 | key { [ Cyrillic_el, Cyrillic_EL ] }; 637 | key { [ Cyrillic_em, Cyrillic_EM ] }; 638 | key { [ Cyrillic_en, Cyrillic_EN ] }; 639 | key { [ Cyrillic_o, Cyrillic_O ] }; 640 | key { [ Cyrillic_pe, Cyrillic_PE ] }; 641 | key { [ Cyrillic_er, Cyrillic_ER ] }; 642 | key { [ Cyrillic_es, Cyrillic_ES ] }; 643 | key { [ Cyrillic_te, Cyrillic_TE ] }; 644 | key { [ Cyrillic_u, Cyrillic_U ] }; 645 | key { [ Cyrillic_ef, Cyrillic_EF ] }; 646 | key { [ Cyrillic_ha, Cyrillic_HA ] }; 647 | key { [ Cyrillic_tse, Cyrillic_TSE ] }; 648 | key { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] }; 649 | key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] }; 650 | key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; 651 | key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; 652 | key { [ Cyrillic_yeru, Cyrillic_YERU ] }; 653 | key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 654 | key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; 655 | key { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] }; 656 | key { [ Cyrillic_ya, Cyrillic_YA ] }; 657 | 658 | include "level3(ralt_switch)" 659 | }; 660 | 661 | partial alphanumeric_keys 662 | xkb_symbols "mac" { 663 | 664 | include "us(basic)" 665 | name[Group1]= "English (Macintosh)"; 666 | key.type[group1]="FOUR_LEVEL"; 667 | 668 | // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg 669 | key { [ section, plusminus, section, plusminus ] }; 670 | key { [ grave, asciitilde, dead_grave, dead_horn ] }; 671 | key { [ 1, exclam, exclamdown, U2044 ] }; 672 | key { [ 2, at, trademark, EuroSign ] }; 673 | key { [ 3, numbersign, sterling, U2039 ] }; 674 | key { [ 4, dollar, cent, U203A ] }; 675 | key { [ 5, percent, infinity, UFB01 ] }; 676 | key { [ 6,asciicircum, section, UFB02 ] }; 677 | key { [ 7, ampersand, paragraph, doubledagger ] }; 678 | key { [ 8, asterisk, enfilledcircbullet, degree ] }; 679 | key { [ 9, parenleft, ordfeminine, periodcentered ] }; 680 | key { [ 0, parenright, masculine,singlelowquotemark] }; 681 | key { [ minus, underscore, endash, emdash ] }; 682 | key { [ equal, plus, notequal, plusminus ] }; 683 | 684 | key { [ q, Q, oe, OE ] }; 685 | key { [ w, W, U2211,doublelowquotemark] }; 686 | key { [ e, E, dead_acute, acute ] }; 687 | key { [ r, R, registered, U2030 ] }; 688 | key { [ t, T, dagger, dead_caron ] }; 689 | key { [ y, Y, yen, onequarter ] }; 690 | key { [ u, U, dead_diaeresis, diaeresis ] }; 691 | key { [ i, I, dead_circumflex, U02C6 ] }; 692 | key { [ o, O, oslash, Ooblique ] }; 693 | key { [ p, P, Greek_pi, U220F ] }; 694 | key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; 695 | key { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; 696 | key { [ backslash, bar, guillemotleft, guillemotright ] }; 697 | 698 | key { [ a, A, aring, Aring ] }; 699 | key { [ s, S, ssharp, dead_stroke ] }; 700 | key { [ d, D, partialderivative, eth ] }; 701 | key { [ f, F, function, dead_hook ] }; 702 | key { [ g, G, copyright, dead_doubleacute ] }; 703 | key { [ h, H, dead_abovedot, dead_belowdot ] }; 704 | key { [ j, J, U2206, onehalf ] }; 705 | key { [ k, K,dead_abovering, UF8FF ] }; 706 | 707 | key { [ l, L, notsign, THORN ] }; 708 | key { [ semicolon, colon, U2026, thorn ] }; 709 | key { [apostrophe, quotedbl, ae, AE ] }; 710 | 711 | key { [ z, Z, Greek_OMEGA, dead_cedilla ] }; 712 | key { [ x, X, U2248, dead_ogonek ] }; 713 | // unclear whether "approxeq" is 2248 or 2245 714 | key { [ c, C, ccedilla, Ccedilla ] }; 715 | key { [ v, V, squareroot, U25CA ] }; 716 | key { [ b, B, integral, idotless ] }; 717 | key { [ n, N, dead_tilde, U02DC ] }; 718 | key { [ m, M, mu, threequarters ] }; 719 | key { [ comma, less, lessthanequal, dead_macron ] }; 720 | key { [ period, greater, greaterthanequal, dead_breve ] }; 721 | key { [ slash, question, division, questiondown ] }; 722 | 723 | include "level3(ralt_switch)" 724 | }; 725 | 726 | // Colemak symbols for xkb on X.Org Server 7.x 727 | // 2006-01-01 Shai Coleman, http://colemak.com/ 728 | 729 | partial alphanumeric_keys 730 | xkb_symbols "colemak" { 731 | 732 | include "us" 733 | name[Group1]= "English (Colemak)"; 734 | 735 | key { [ grave, asciitilde, dead_tilde, asciitilde ] }; 736 | key { [ 1, exclam, exclamdown, onesuperior ] }; 737 | key { [ 2, at, masculine, twosuperior ] }; 738 | key { [ 3, numbersign, ordfeminine, threesuperior ] }; 739 | key { [ 4, dollar, cent, sterling ] }; 740 | key { [ 5, percent, EuroSign, yen ] }; 741 | key { [ 6, asciicircum, hstroke, Hstroke ] }; 742 | key { [ 7, ampersand, eth, ETH ] }; 743 | key { [ 8, asterisk, thorn, THORN ] }; 744 | key { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; 745 | key { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; 746 | key { [ minus, underscore, endash, emdash ] }; 747 | key { [ equal, plus, multiply, division ] }; 748 | 749 | key { [ q, Q, adiaeresis, Adiaeresis ] }; 750 | key { [ w, W, aring, Aring ] }; 751 | key { [ f, F, atilde, Atilde ] }; 752 | key { [ p, P, oslash, Ooblique ] }; 753 | key { [ g, G, dead_ogonek, asciitilde ] }; 754 | key { [ j, J, dstroke, Dstroke ] }; 755 | key { [ l, L, lstroke, Lstroke ] }; 756 | key { [ u, U, uacute, Uacute ] }; 757 | key { [ y, Y, udiaeresis, Udiaeresis ] }; 758 | key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; 759 | key { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; 760 | key { [ bracketright, braceright, guillemotright, 0x100203a ] }; 761 | key { [ backslash, bar, asciitilde, asciitilde ] }; 762 | 763 | key { [ a, A, aacute, Aacute ] }; 764 | key { [ r, R, dead_grave, asciitilde ] }; 765 | key { [ s, S, ssharp, asciitilde ] }; 766 | key { [ t, T, dead_acute, dead_doubleacute ] }; 767 | key { [ d, D, dead_diaeresis, asciitilde ] }; 768 | key { [ h, H, dead_caron, asciitilde ] }; 769 | key { [ n, N, ntilde, Ntilde ] }; 770 | key { [ e, E, eacute, Eacute ] }; 771 | key { [ i, I, iacute, Iacute ] }; 772 | key { [ o, O, oacute, Oacute ] }; 773 | key { [ apostrophe, quotedbl, otilde, Otilde ] }; 774 | 775 | key { [ z, Z, ae, AE ] }; 776 | key { [ x, X, dead_circumflex, asciitilde ] }; 777 | key { [ c, C, ccedilla, Ccedilla ] }; 778 | key { [ v, V, oe, OE ] }; 779 | key { [ b, B, dead_breve, asciitilde ] }; 780 | key { [ k, K, dead_abovering, asciitilde ] }; 781 | key { [ m, M, dead_macron, asciitilde ] }; 782 | key { [ comma, less, dead_cedilla, asciitilde ] }; 783 | key { [ period, greater, dead_abovedot, asciitilde ] }; 784 | key { [ slash, question, questiondown, asciitilde ] }; 785 | 786 | key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; 787 | key { [ minus, underscore, endash, emdash ] }; 788 | key { [ space, space, space, nobreakspace ] }; 789 | 790 | include "level3(ralt_switch)" 791 | }; 792 | 793 | // I do NOT like dead-keys - the International keyboard as defined by Microsoft 794 | // doesn't fit my needs. Why use two keystrokes for all simple characters (eg ' 795 | // and generates a single ') just to have an é (eacute) in two strokes 796 | // as well? I type ' more often than é (eacute). 797 | // 798 | // This file works just like a regular keyboard, BUT has all dead-keys 799 | // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+" 800 | // followed by an e. In other words, this keyboard is not international as long 801 | // as you leave the right Alt key alone. 802 | // 803 | // The original MS International keyboard was intended for Latin1 (iso8859-1). 804 | // With the introduction of iso8859-15, the (important) ligature oe (and OE) 805 | // became available. I added them next to ae. Because I write ediaeresis more 806 | // often than registered, I moved registered to be next to copyright and added 807 | // ediaeresis and idiaeresis. - Adriaan 808 | 809 | partial alphanumeric_keys 810 | xkb_symbols "altgr-intl" { 811 | 812 | include "us(intl)" 813 | name[Group1]= "English (international AltGr dead keys)"; 814 | 815 | // five dead keys moved into level3: 816 | 817 | key { [ grave, asciitilde, dead_grave, dead_tilde ] }; 818 | key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; 819 | 820 | // diversions from the MS Intl keyboard: 821 | 822 | key { [ 1, exclam, onesuperior, exclamdown ] }; 823 | key { [ r, R, ediaeresis, Ediaeresis ] }; 824 | key { [ j, J, idiaeresis, Idiaeresis ] }; 825 | key { [ x, X, oe, OE ] }; 826 | key { [ v, V, registered, registered ] }; 827 | 828 | // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: 829 | 830 | key { [ 6, asciicircum, dead_circumflex, onequarter ] }; 831 | key { [ 7, ampersand, dead_horn, onehalf ] }; 832 | key { [ 8, asterisk, dead_ogonek, threequarters ] }; 833 | 834 | include "level3(ralt_switch)" 835 | }; 836 | 837 | // Intel ClassmatePC Keyboard Layout 838 | // by Piter PUNK 839 | // 840 | // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl) 841 | // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since 842 | // the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key. 843 | 844 | // classmate - us(basic) 845 | partial alphanumeric_keys 846 | xkb_symbols "classmate" { 847 | include "us(basic)" 848 | name[Group1]= "English (US)"; 849 | 850 | key { [ backslash, bar, backslash, bar ] }; 851 | 852 | include "eurosign(5)" 853 | include "level3(switch)" 854 | }; 855 | 856 | // classmate-intl - us(intl) 857 | // RCTL is generated by Fn+Alt, because that, when trying to access 858 | // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got 859 | // the keypad keycodes. The keypad is changed to make Fn+Alt+ 860 | // generate the same symbol as the original key. 861 | partial alphanumeric_keys 862 | xkb_symbols "classmate-intl" { 863 | include "us(intl)" 864 | name[Group1]= "USA - ClassmatePC (International)"; 865 | key.type[Group1]="FOUR_LEVEL"; 866 | 867 | key { [ backslash, bar, backslash, bar ] }; 868 | 869 | key { [ KP_Home, KP_7, 870 | onehalf, dead_horn ] }; 871 | key { [ KP_Up, KP_8, 872 | threequarters, dead_ogonek ] }; 873 | key { [ KP_Prior, KP_9, 874 | leftsinglequotemark, dead_breve ] }; 875 | key { [ KP_Multiply, KP_Multiply, 876 | rightsinglequotemark, dead_abovering ] }; 877 | 878 | key { [ KP_Left, KP_4, 879 | uacute, Uacute ] }; 880 | key { [ KP_Begin, KP_5, 881 | iacute, Iacute ] }; 882 | key { [ KP_Right, KP_6, 883 | oacute, Oacute ] }; 884 | key { [ KP_Subtract, KP_Subtract, 885 | odiaeresis, Odiaeresis ] }; 886 | 887 | key { [ KP_Down, KP_2, 888 | oe, OE ] }; 889 | key { [ KP_Next, KP_3, 890 | oslash, Ooblique ] }; 891 | key { [ KP_Add, KP_Add, 892 | paragraph, degree ] }; 893 | 894 | key { [ KP_Insert, KP_0, 895 | mu, mu ] }; 896 | key { [ KP_Delete, KP_Decimal, 897 | dead_abovedot, dead_caron ] }; 898 | key { [ KP_Divide, KP_Divide, 899 | questiondown, dead_hook ] }; 900 | 901 | include "level3(switch)" 902 | }; 903 | 904 | // classmate-alt-intl - us(alt-intl) 905 | // RCTL is generated by Fn+Alt, because that, when trying to access 906 | // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got 907 | // the keypad keycodes. The keypad is changed to make Fn+Alt+ 908 | // generate the same symbol as the original key. 909 | partial alphanumeric_keys 910 | xkb_symbols "classmate-alt-intl" { 911 | include "us(alt-intl)" 912 | name[Group1]= "USA - ClassmatePC (Alternative international)"; 913 | key.type[Group1]="FOUR_LEVEL"; 914 | 915 | key { [ backslash, bar, backslash, bar ] }; 916 | 917 | key { [ KP_Subtract, KP_Subtract ] }; 918 | 919 | key { [ KP_Prior, KP_9, 920 | leftsinglequotemark, dead_breve ] }; 921 | key { [ KP_Multiply, KP_Multiply, 922 | rightsinglequotemark, dead_abovering ] }; 923 | 924 | key { [ KP_Add, KP_Add, 925 | dead_ogonek, dead_diaeresis ] }; 926 | 927 | key { [ KP_Delete, KP_Decimal, 928 | dead_abovedot, dead_circumflex ] }; 929 | key { [ KP_Divide, KP_Divide, 930 | dead_hook, dead_hook ] }; 931 | 932 | include "level3(switch)" 933 | }; 934 | 935 | // classmate-altgr-intl - us(altgr-intl) 936 | // RCTL is generated by Fn+Alt, because that, when trying to access 937 | // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got 938 | // the keypad keycodes. The keypad is changed to make Fn+Alt+ 939 | // generate the same symbol as the original key. 940 | partial alphanumeric_keys 941 | xkb_symbols "classmate-altgr-intl" { 942 | include "us(altgr-intl)" 943 | name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)"; 944 | key.type[Group1]="FOUR_LEVEL"; 945 | 946 | key { [ backslash, bar, backslash, bar ] }; 947 | 948 | key { [ KP_Home, KP_7, 949 | dead_horn, dead_horn ] }; 950 | key { [ KP_Up, KP_8, 951 | dead_ogonek, dead_ogonek ] }; 952 | key { [ KP_Prior, KP_9, 953 | leftsinglequotemark, dead_breve ] }; 954 | key { [ KP_Multiply, KP_Multiply, 955 | rightsinglequotemark, dead_abovering ] }; 956 | 957 | key { [ KP_Left, KP_4, 958 | uacute, Uacute ] }; 959 | key { [ KP_Begin, KP_5, 960 | iacute, Iacute ] }; 961 | key { [ KP_Right, KP_6, 962 | oacute, Oacute ] }; 963 | key { [ KP_Subtract, KP_Subtract, 964 | odiaeresis, Odiaeresis ] }; 965 | 966 | key { [ KP_End, KP_1, 967 | idiaeresis, Idiaeresis ] }; 968 | key { [ KP_Down, KP_2, 969 | oe, OE ] }; 970 | key { [ KP_Next, KP_3, 971 | oslash, Ooblique ] }; 972 | key { [ KP_Add, KP_Add, 973 | paragraph, degree ] }; 974 | 975 | key { [ KP_Insert, KP_0, 976 | mu, mu ] }; 977 | key { [ KP_Delete, KP_Decimal, 978 | dead_abovedot, dead_caron ] }; 979 | key { [ KP_Divide, KP_Divide, 980 | questiondown, dead_hook ] }; 981 | 982 | include "level3(switch)" 983 | }; 984 | 985 | partial alphanumeric_keys 986 | xkb_symbols "olpc" { 987 | 988 | include "us(basic)" 989 | name[Group1]= "English (US)"; 990 | 991 | // OLPC international US English keyboard layout. 992 | // It's a little different from the usual international layout. 993 | // See: http://wiki.laptop.org/go/Image:Keyboard_english.png 994 | 995 | key { [ grave, asciitilde, dead_grave, dead_tilde ] }; 996 | key { [ 1, exclam, exclamdown, exclamdown ] }; 997 | key { [ 2, at, notsign, notsign ] }; 998 | key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave 999 | key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute 1000 | key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above 1001 | key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above 1002 | key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above 1003 | key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above 1004 | key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above 1005 | key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above 1006 | key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above 1007 | key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above 1008 | 1009 | key { [ q, Q, Greek_omega, Greek_OMEGA ] }; 1010 | key { [ w, W, oslash, Oslash ] }; 1011 | key { [ e, E, oe, OE ] }; 1012 | key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla 1013 | key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below 1014 | key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below 1015 | key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below 1016 | key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below 1017 | key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below 1018 | key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below 1019 | key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below 1020 | key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below 1021 | 1022 | key { [ a, A, ae, AE ] }; 1023 | key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp 1024 | key { [ d, D, eth, ETH ] }; 1025 | key { [ f, F, thorn, THORN ] }; 1026 | key { [ h, H, sterling, sterling ] }; 1027 | key { [ j, J, EuroSign, EuroSign ] }; 1028 | key { [ semicolon, colon, masculine, ordfeminine ] }; 1029 | key { [ apostrophe, quotedbl, currency, currency ] }; 1030 | key { [ backslash, bar, section, section ] }; 1031 | 1032 | key { [ c, C, ccedilla, Ccedilla ] }; 1033 | key { [ n, N, ntilde, Ntilde ] }; 1034 | key { [ m, M, mu, mu ] }; 1035 | key { [ comma, less, guillemotleft, guillemotleft ] }; 1036 | key { [ period, greater, guillemotright, guillemotright ] }; 1037 | key { [ slash, question, questiondown, questiondown ] }; 1038 | 1039 | key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; 1040 | 1041 | include "level3(ralt_switch)" 1042 | }; 1043 | 1044 | partial alphanumeric_keys 1045 | xkb_symbols "olpc2" { 1046 | include "us(olpc)" 1047 | name[Group1]= "English (the divide/multiply keys toggle the layout)"; 1048 | include "group(olpc)" 1049 | }; 1050 | 1051 | xkb_symbols "olpcm" { 1052 | 1053 | include "us(basic)" 1054 | name[Group1]= "English (US)"; 1055 | 1056 | // Mechanical (non-membrane) OLPC int'l US English keyboard layout. 1057 | // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard 1058 | 1059 | key { [ grave, asciitilde, dead_grave, dead_tilde ] }; 1060 | key { [ 1, exclam, exclamdown, exclamdown ] }; 1061 | key { [ 2, at, notsign, notsign ] }; 1062 | key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave 1063 | key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute 1064 | key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above 1065 | key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above 1066 | key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above 1067 | key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above 1068 | key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above 1069 | key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above 1070 | key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above 1071 | 1072 | key { [ q, Q, Greek_omega, Greek_OMEGA ] }; 1073 | key { [ w, W, oslash, Oslash ] }; 1074 | key { [ e, E, oe, OE ] }; 1075 | key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla 1076 | key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below 1077 | key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below 1078 | key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below 1079 | key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below 1080 | key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below 1081 | key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below 1082 | key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below 1083 | key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below 1084 | 1085 | key { [ a, A, ae, AE ] }; 1086 | key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp 1087 | key { [ d, D, eth, ETH ] }; 1088 | key { [ f, F, thorn, THORN ] }; 1089 | key { [ h, H, sterling, sterling ] }; 1090 | key { [ j, J, EuroSign, EuroSign ] }; 1091 | key { [ semicolon, colon, masculine, ordfeminine ] }; 1092 | // no AC11 or AC12 on olpcm 1093 | 1094 | key { [ c, C, ccedilla, Ccedilla ] }; 1095 | key { [ n, N, ntilde, Ntilde ] }; 1096 | key { [ m, M, mu, mu ] }; 1097 | key { [ comma, less, guillemotleft, guillemotleft ] }; 1098 | key { [ period, greater, guillemotright, guillemotright ] }; 1099 | key { [ slash, question, questiondown, questiondown ] }; 1100 | 1101 | key { [ backslash, bar, section, section ] }; 1102 | key { [ equal, plus, 0x1000303, 0x1000303 ] }; 1103 | key { [ apostrophe, quotedbl, currency, currency ] }; 1104 | 1105 | include "level3(ralt_switch)" 1106 | }; 1107 | 1108 | // Based on Cherokee Nation Official Layout 1109 | // http://www.cherokee.org/extras/downloads/font/Keyboard.htm 1110 | 1111 | partial alphanumeric_keys modifier_keys 1112 | xkb_symbols "chr" { 1113 | 1114 | name[Group1]= "Cherokee"; 1115 | key.type[group1]="ALPHABETIC"; 1116 | 1117 | key { [ grave, U13CA ] }; 1118 | key { [ 1, U13B1 ] }; 1119 | key { [ 2, U13C7 ] }; 1120 | key { [ 3, U13E7 ] }; 1121 | key { [ U13D9, U13B0 ] }; 1122 | key { [ U13E6, U13B9 ] }; 1123 | key { [ U13DC, U13DD ] }; 1124 | key { [ U13CB, U13E1 ] }; 1125 | key { [ U13D6, U13BA ] }; 1126 | key { [ U13D2, parenleft ] }; 1127 | key { [ U13C4, parenright ] }; 1128 | key { [ U13BF, U13BC ] }; 1129 | key { [ U13F3, U13BD ] }; 1130 | 1131 | key { [ U13AA, U13C6 ] }; 1132 | key { [ U13B3, U13EB ] }; 1133 | key { [ U13A1, U13E3 ] }; 1134 | key { [ U13DB, U13CF ] }; 1135 | key { [ U13D4, U13D8 ] }; 1136 | key { [ U13EF, U13F2 ] }; 1137 | key { [ U13A4, U13AD ] }; 1138 | key { [ U13A2, U13F1 ] }; 1139 | key { [ U13A3, U13EC ] }; 1140 | key { [ U13C1, U13EA ] }; 1141 | key { [ U13D5, U13D1 ] }; 1142 | key { [ U13B6, U13E4 ] }; 1143 | key { [ U13E9, U13EE ] }; 1144 | 1145 | key { [ U13A0, U13CC ] }; 1146 | key { [ U13CD, U13CE ] }; 1147 | key { [ U13D7, U13D0 ] }; 1148 | key { [ U13A9, U13C8 ] }; 1149 | key { [ U13A6, U13E5 ] }; 1150 | key { [ U13AF, U13B2 ] }; 1151 | key { [ U13DA, U13AB ] }; 1152 | key { [ U13B8, U13A7 ] }; 1153 | key { [ U13B5, U13AE ] }; 1154 | key { [ U13E8, U13E0 ] }; 1155 | key { [ apostrophe, quotedbl ] }; 1156 | 1157 | key { [ U13AC, U13C3 ] }; 1158 | key { [ U13F4, U13ED ] }; 1159 | key { [ U13D3, U13DF ] }; 1160 | key { [ U13A5, U13DE ] }; 1161 | key { [ U13A8, U13F0 ] }; 1162 | key { [ U13BE, U13BB ] }; 1163 | key { [ U13C5, U13B7 ] }; 1164 | key { [ comma, U13E2 ] }; 1165 | key { [ period, U13B4 ] }; 1166 | key { [ U13C2, U13C9 ] }; 1167 | }; 1168 | 1169 | // Serbian charecters added as third level symbols to US keyboard layout. 1170 | 1171 | partial alphanumeric_keys 1172 | xkb_symbols "hbs" { 1173 | 1174 | include "us" 1175 | name[Group1]= "Serbo-Croatian (US)"; 1176 | 1177 | key { [ grave, asciitilde ] }; 1178 | key { [ 6, dead_caron, asciicircum, asciicircum ] }; 1179 | key { [ 8, asterisk, multiply, division ] }; 1180 | key { [ minus, underscore, endash, emdash ] }; 1181 | key { [ l, L, U1C9, U1C8 ] }; 1182 | key { [ n, N, U1CC, U1CB ] }; 1183 | key { [ z, Z, U1C6, U1C5 ] }; 1184 | key { [ e, E, EuroSign, cent ] }; 1185 | key { [ d, D, dstroke, Dstroke ] }; 1186 | key { [ dead_acute, quotedbl, apostrophe, apostrophe ] }; 1187 | key { [ space, space, nobreakspace, nobreakspace ] }; 1188 | key { [ comma, less, U3003, guillemotright ] }; 1189 | key { [ period, greater, ellipsis, guillemotleft ] }; 1190 | 1191 | include "level3(ralt_switch)" 1192 | }; 1193 | 1194 | //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg 1195 | partial alphanumeric_keys 1196 | xkb_symbols "htcdream" { 1197 | include "inet(htcdream)" 1198 | name[Group1]= "English (US)"; 1199 | 1200 | //second row 1201 | key { [ q, Q, Tab, Tab ] }; 1202 | key { [ w, W, grave, grave ] }; 1203 | key { [ e, E, underscore, underscore ] }; 1204 | key { [ r, R, sterling, sterling ] }; 1205 | key { [ t, T, EuroSign, EuroSign ] }; 1206 | key { [ y, Y, division, division ] }; 1207 | key { [ u, U, multiply, multiply ] }; 1208 | key { [ i, I, minus, minus ] }; 1209 | key { [ o, O, plus, plus ] }; 1210 | key { [ p, P, equal, equal ] }; 1211 | 1212 | //third row 1213 | key { [ a, A, NoSymbol, NoSymbol ] }; 1214 | key { [ s, S, bar, bar ] }; 1215 | key { [ d ,D, backslash, backslash ] }; 1216 | key { [ f, F, braceleft, braceleft ] }; 1217 | key { [ g, G, braceright, braceright ] }; 1218 | key { [ h, H, colon, colon ] }; 1219 | key { [ j, J, semicolon, semicolon ] }; 1220 | key { [ k, K, quotedbl, quotedbl ] }; 1221 | key { [ l, L, apostrophe, apostrophe ] }; 1222 | 1223 | //forth row 1224 | key { [ z, Z, NoSymbol, NoSymbol ] }; 1225 | key { [ x, X, NoSymbol, NoSymbol ] }; 1226 | key { [ c, C, NoSymbol, NoSymbol ] }; 1227 | key { [ v, V, bracketleft, bracketleft ] }; 1228 | key { [ b, B, bracketright, bracketright ] }; 1229 | key { [ n, N, less, less ] }; 1230 | key { [ m, M, greater, greater ] }; 1231 | key { [ comma, comma, question, question ] }; 1232 | 1233 | //fifth row 1234 | key { [ at, at, asciitilde, asciitilde ] }; 1235 | 1236 | include "level3(alt_switch)" 1237 | }; 1238 | 1239 | // Workman Keyboard Layout symbols for xkb on X.Org Server 7.x 1240 | // 09-06-2010 OJ Bucao. http://www.workmanlayout.com 1241 | 1242 | partial alphanumeric_keys 1243 | xkb_symbols "workman" { 1244 | 1245 | include "us(basic)" 1246 | name[Group1]= "English (Workman)"; 1247 | 1248 | key { [ q, Q ] }; 1249 | key { [ d, D ] }; 1250 | key { [ r, R ] }; 1251 | key { [ w, W ] }; 1252 | key { [ b, B ] }; 1253 | key { [ j, J ] }; 1254 | key { [ f, F ] }; 1255 | key { [ u, U ] }; 1256 | key { [ p, P ] }; 1257 | key { [ semicolon, colon ] }; 1258 | 1259 | key { [ a, A ] }; 1260 | key { [ s, S ] }; 1261 | key { [ h, H ] }; 1262 | key { [ t, T ] }; 1263 | key { [ g, G ] }; 1264 | key { [ y, Y ] }; 1265 | key { [ n, N ] }; 1266 | key { [ e, E ] }; 1267 | key { [ o, O ] }; 1268 | key { [ i, I ] }; 1269 | 1270 | key { [ z, Z ] }; 1271 | key { [ x, X ] }; 1272 | key { [ m, M ] }; 1273 | key { [ c, C ] }; 1274 | key { [ v, V ] }; 1275 | key { [ k, K ] }; 1276 | key { [ l, L ] }; 1277 | 1278 | key { [ BackSpace, Escape, BackSpace, BackSpace ] }; 1279 | 1280 | include "level3(ralt_switch)" 1281 | }; 1282 | 1283 | partial alphanumeric_keys 1284 | xkb_symbols "workman-intl" { 1285 | 1286 | include "us(intl)" 1287 | name[Group1]= "English (Workman, international with dead keys)"; 1288 | 1289 | key { [ q, Q, adiaeresis, Adiaeresis ] }; 1290 | key { [ d, D, eth, ETH ] }; 1291 | key { [ r, R, registered, registered ] }; 1292 | key { [ w, W, aring, Aring ] }; 1293 | key { [ b, B, b, B ] }; 1294 | key { [ j, J, j, J ] }; 1295 | key { [ f, F, f, F ] }; 1296 | key { [ u, U, uacute, Uacute ] }; 1297 | key { [ p, P, odiaeresis, Odiaeresis ] }; 1298 | key { [ semicolon, colon, paragraph, degree ] }; 1299 | 1300 | key { [ a, A, aacute, Aacute ] }; 1301 | key { [ s, S, ssharp, section ] }; 1302 | key { [ h, H, h, H ] }; 1303 | key { [ t, T, thorn, THORN ] }; 1304 | key { [ g, G, g, G ] }; 1305 | key { [ y, Y, udiaeresis, Udiaeresis ] }; 1306 | key { [ n, N, ntilde, Ntilde ] }; 1307 | key { [ e, E, eacute, Eacute ] }; 1308 | key { [ o, O, oacute, Oacute ] }; 1309 | key { [ i, I, iacute, Iacute ] }; 1310 | 1311 | key { [ z, Z, ae, AE ] }; 1312 | key { [ x, X, x, X ] }; 1313 | key { [ m, M, mu, mu ] }; 1314 | key { [ c, C, copyright, cent ] }; 1315 | key { [ v, V, v, V ] }; 1316 | key { [ k, K, oe, OE ] }; 1317 | key { [ l, L, oslash, Ooblique ] }; 1318 | 1319 | key { [ BackSpace, Escape, BackSpace, BackSpace ] }; 1320 | 1321 | include "level3(ralt_switch)" 1322 | }; 1323 | 1324 | // Norman keyboard layout symbols for xkb on X.Org Server 7.x 1325 | // Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info 1326 | // To the extent possible under law, the author(s) have dedicated all 1327 | // copyright and related and neighboring rights to this software to the 1328 | // public domain worldwide. This software is distributed without any warranty. 1329 | 1330 | partial alphanumeric_keys 1331 | xkb_symbols "norman" { 1332 | 1333 | include "us(basic)" 1334 | name[Group1]= "English (Norman)"; 1335 | 1336 | key { [ q, Q ] }; 1337 | key { [ w, W ] }; 1338 | key { [ d, D ] }; 1339 | key { [ f, F ] }; 1340 | key { [ k, K ] }; 1341 | key { [ j, J ] }; 1342 | key { [ u, U ] }; 1343 | key { [ r, R ] }; 1344 | key { [ l, L ] }; 1345 | key { [ semicolon, colon ] }; 1346 | 1347 | key { [ a, A ] }; 1348 | key { [ s, S ] }; 1349 | key { [ e, E ] }; 1350 | key { [ t, T ] }; 1351 | key { [ g, G ] }; 1352 | key { [ y, Y ] }; 1353 | key { [ n, N ] }; 1354 | key { [ i, I ] }; 1355 | key { [ o, O ] }; 1356 | key { [ h, H ] }; 1357 | 1358 | key { [ z, Z ] }; 1359 | key { [ x, X ] }; 1360 | key { [ c, C ] }; 1361 | key { [ v, V ] }; 1362 | key { [ b, B ] }; 1363 | key { [ p, P ] }; 1364 | key { [ m, M ] }; 1365 | 1366 | key { [ BackSpace ] }; 1367 | 1368 | include "level3(ralt_switch)" 1369 | }; 1370 | 1371 | // EXTRAS: 1372 | 1373 | // Czech, Slovak and German charecters added as third level symbols to US keyboard layout. 1374 | partial alphanumeric_keys 1375 | xkb_symbols "cz_sk_de" { 1376 | 1377 | include "us" 1378 | name[Group1]="Czech Slovak and German (US)"; 1379 | 1380 | key { [grave, asciitilde, uring, Uring ] }; 1381 | key { [ 1, exclam, uacute, Uacute ] }; 1382 | key { [ 2, at, ecaron, Ecaron ] }; 1383 | key { [ 3, numbersign, scaron, Scaron ] }; 1384 | key { [ 4, dollar, ccaron, Ccaron ] }; 1385 | key { [ 5, percent, rcaron, Rcaron ] }; 1386 | key { [ 6, asciicircum, zcaron, Zcaron ] }; 1387 | key { [ 7, ampersand, yacute, Yacute ] }; 1388 | key { [ 8, asterisk, aacute, Aacute ] }; 1389 | key { [ 9, parenleft, iacute, Iacute ] }; 1390 | key { [ 0, parenright, eacute, Eacute ] }; 1391 | key { [minus, underscore, ssharp, 0x1001E9E ] }; 1392 | key { [equal, plus, dead_acute, dead_caron ] }; 1393 | 1394 | key { [ e, E, EuroSign, Eacute ] }; 1395 | 1396 | key { [bracketleft, braceleft, udiaeresis, Udiaeresis ] }; 1397 | key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; 1398 | key { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] }; 1399 | 1400 | key { [ a, A, aacute, Aacute ] }; 1401 | key { [ i, I, iacute, Iacute ] }; 1402 | key { [ o, O, oacute, Oacute ] }; 1403 | key { [ y, Y, yacute, Yacute ] }; 1404 | key { [ u, U, uring, Uring ] }; 1405 | 1406 | key { [ s, S, scaron, Scaron ] }; 1407 | key { [ z, Z, zcaron, Zcaron ] }; 1408 | key { [ c, C, ccaron, Ccaron ] }; 1409 | key { [ r, R, rcaron, Rcaron ] }; 1410 | key { [ t, T, tcaron, Tcaron ] }; 1411 | key { [ d, D, dcaron, Dcaron ] }; 1412 | key { [ n, N, ncaron, Ncaron ] }; 1413 | key { [ l, L, lcaron, Lcaron ] }; 1414 | key { [ p, P,ocircumflex, Ocircumflex ] }; 1415 | 1416 | key { [ space, space, nobreakspace, nobreakspace] }; 1417 | 1418 | include "level3(ralt_switch)" 1419 | }; 1420 | 1421 | // XCompose is out! Unicode combining is in! For those of us who live 1422 | // on the edge: A keymap using Unicode combining characters instead of 1423 | // deadkeys. This variation does not deviate from the lame MS-style 1424 | // US-intl layout; but it uses AltGr for combining, like altgr-intl. 1425 | // 1426 | // This might break your font layout layout systems (because they 1427 | // suck), caveat emptor. Also, most of today's software will count 1428 | // individual combining marks for selection, deletion, character 1429 | // counting &c., and won't be smart enough to do canonical equivalence 1430 | // when searching, &c. 1431 | // 1432 | // With Unicode combining you use "handwriting order", not 1433 | // "typewriting order" as with deadkeys. That is, you first type the 1434 | // base character, then the diacritics/accents/modifiers. This has 1435 | // the advantage of avoiding hidden states --- each keypress changes 1436 | // something on screen. 1437 | // 1438 | // TODO: as of now, this duplicates all us(intl) functionality with 1439 | // combining. With care, perhaps we could add more combining marks 1440 | // not present in intl, and support all major languages. 1441 | partial alphanumeric_keys 1442 | xkb_symbols "intl-unicode" { 1443 | 1444 | name[Group1]= "English (US, international AltGr Unicode combining)"; 1445 | 1446 | include "us(intl)" 1447 | include "level3(ralt_switch)" 1448 | 1449 | // grave, tilde 1450 | key { [grave, asciitilde, U0300, U0303 ] }; 1451 | // double acute 1452 | key { [ 2, at, twosuperior, U030B ] }; 1453 | // macron 1454 | key { [ 3, numbersign, threesuperior, U0304 ] }; 1455 | // circumflex 1456 | key { [ 6, asciicircum, onequarter, U0302 ] }; 1457 | // horn 1458 | key { [ 7, ampersand, onehalf, U031B ] }; 1459 | // ogonek 1460 | key { [ 8, asterisk, threequarters, U0328 ] }; 1461 | // breve 1462 | key { [ 9, parenleft, leftsinglequotemark, U0306 ] }; 1463 | // abovering 1464 | key { [ 0, parenright, rightsinglequotemark, U030A ] }; 1465 | 1466 | // belowdot 1467 | key { [ minus, underscore, yen, U0323 ] }; 1468 | // acute, diaeresis 1469 | key { [apostrophe, quotedbl, U0301, U0308 ] }; 1470 | // abovedot, caron 1471 | key { [ period, greater, U0307, U030C ] }; 1472 | // hook 1473 | key { [ slash, question, questiondown, U0309 ] }; 1474 | 1475 | // alt-intl compatibility 1476 | // cedilla, caron 1477 | key { [ comma, less, U0327, U030C ] }; 1478 | // ogonek, diaeresis 1479 | key { [ semicolon, colon, U0328, U0308 ] }; 1480 | // doubleacute, horn 1481 | key { [ equal, plus, U030B, U031B ] }; 1482 | 1483 | // we don't do combining latin letters and combining enclosures 1484 | // because support for those is very rare. 1485 | }; 1486 | 1487 | // XCompose is out! Unicode combining is in! For those of us who live 1488 | // on the edge: A keymap using Unicode combining characters instead of 1489 | // deadkeys. This variation does break compatibility with us-intl, 1490 | // whenever I thought it would be more mnemonic or Unicodeish. 1491 | partial alphanumeric_keys 1492 | xkb_symbols "alt-intl-unicode" { 1493 | 1494 | name[Group1]= "English (US, international AltGr Unicode combining, alternative)"; 1495 | 1496 | include "us(intl-unicode)" 1497 | 1498 | // easier macron; em-dash. 1499 | // em-dash is available via compose, but I added here since it's such 1500 | // an important typographic character. 1501 | key { [ minus, underscore, U0304, U2014 ] }; 1502 | 1503 | // belowdot, abovedot (caron at coma/less key, per above) 1504 | key { [ period, greater, U0323, U0307 ] }; 1505 | 1506 | }; 1507 | 1508 | partial alphanumeric_keys 1509 | xkb_symbols "ats" { 1510 | 1511 | include "us" 1512 | name[Group1]= "Atsina"; 1513 | 1514 | //Using Dead key to get COMBINING COMMA ABOVE for ejectives on 1515 | //q, l, t, s, m, g, k, p, w, y, r 1516 | //XCompose key is used for the other accute and grave. 1517 | 1518 | key { [ e, E, eacute, Eacute ] }; 1519 | key { [ u, U, uacute, Uacute ] }; 1520 | key { [ i, I, iacute, Iacute ] }; 1521 | key { [ o, O, oacute, Oacute ] }; 1522 | key { [ bracketleft, braceleft, U03B8 ] }; 1523 | key { [ bracketright, braceright, U010D, U010C ] }; 1524 | //U+010C (uppercase Č) and U+010D (lowercase č). 1525 | 1526 | key { [ a, A, aacute, Aacute ] }; 1527 | 1528 | //Small letter Open use compose to key get acute accent 1529 | key { [ c, C, U0254, U0186 ] }; 1530 | key { [ comma, less, U0313 ] }; 1531 | key { [ slash, question, U0294 ] }; 1532 | 1533 | include "level3(ralt_switch)" 1534 | include "compose(rctrl)" 1535 | }; 1536 | 1537 | partial alphanumeric_keys 1538 | xkb_symbols "crd" { 1539 | 1540 | include "us" 1541 | name[Group1]= "Coeur d'Alene Salish"; 1542 | 1543 | key { [ w, W, U02B7, U02B7 ] }; 1544 | key { [ 7, ampersand, U0294 ] }; 1545 | key { [ q, Q, U221A ] }; 1546 | key { [ v, V, U0259 ] }; 1547 | key { [ backslash, bar, U026B ] }; 1548 | key { [ e, E, U025B ] }; 1549 | key { [ i, I, U026A ] }; 1550 | key { [ j, J, U01F0 ] }; 1551 | key { [ 6, asciicircum, U0295 ] }; 1552 | key { [ s, S, U0161 ] }; 1553 | key { [ c, C, U010D ] }; 1554 | key { [ o, O, U0254 ] }; 1555 | key { [ period, greater, U0323 ] }; 1556 | 1557 | include "level3(ralt_switch)" 1558 | include "compose(rctrl)" 1559 | }; 1560 | 1561 | 1562 | partial alphanumeric_keys 1563 | xkb_symbols "sun_type6" { 1564 | include "sun_vndr/us(sun_type6)" 1565 | }; 1566 | -------------------------------------------------------------------------------- /macos/keylayout_devpew.keylayout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | --------------------------------------------------------------------------------