layout.mobile-intl.h (19259B)
1 #define KEYS 57 2 3 static Key keys_en[KEYS] = { 4 { "Esc", "", XK_Escape, 1 }, 5 { "1", "!", XK_1, 1 }, 6 { "2", "@", XK_2, 1 }, 7 { "3", "#", XK_3, 1 }, 8 { "4", "$", XK_4, 1 }, 9 { "5", "%", XK_5, 1 }, 10 { "6", "^", XK_6, 1 }, 11 { "7", "&", XK_7, 1 }, 12 { "8", "*", XK_8, 1 }, 13 { "9", "(", XK_9, 1 }, 14 { "0", ")", XK_0, 1 }, 15 { "-", "_", XK_minus, 1 }, 16 17 { 0 }, /* New row */ 18 19 { "↹", 0, XK_Tab, 0.75 }, 20 { 0, "☺", XK_q, 1 }, 21 { 0, 0, XK_w, 1 }, 22 { 0, 0, XK_e, 1 }, 23 { 0, 0, XK_r, 1 }, 24 { 0, 0, XK_t, 1 }, 25 { 0, 0, XK_y, 1 }, 26 { 0, 0, XK_u, 1 }, 27 { 0, 0, XK_i, 1 }, 28 { 0, 0, XK_o, 1 }, 29 { 0, 0, XK_p, 1 }, 30 { "/", "?", XK_slash, .75 }, 31 32 { 0 }, /* New row */ 33 34 { "^", 0, XK_Control_L, 1 }, 35 { 0, 0, XK_a, 1 }, 36 { 0, 0, XK_s, 1 }, 37 { 0, 0, XK_d, 1 }, 38 { 0, 0, XK_f, 1 }, 39 { 0, 0, XK_g, 1 }, 40 { 0, 0, XK_h, 1 }, 41 { 0, 0, XK_j, 1 }, 42 { 0, 0, XK_k, 1 }, 43 { 0, 0, XK_l, 1 }, 44 { ";", ":", XK_colon, 1 }, 45 { "'", "\"", XK_apostrophe, 1 }, 46 47 { 0 }, /* New row */ 48 49 { "⇧", 0, XK_Shift_L, 1.5 }, 50 { 0, 0, XK_z, 1 }, 51 { 0, 0, XK_x, 1 }, 52 { 0, 0, XK_c, 1 }, 53 { 0, 0, XK_v, 1 }, 54 { 0, 0, XK_b, 1 }, 55 { 0, 0, XK_n, 1 }, 56 { 0, 0, XK_m, 1 }, 57 { ",", "<", XK_comma, 1 }, 58 { ".", ">", XK_period, 1 }, 59 { "⌫", 0, XK_BackSpace, 1 }, 60 61 { 0 }, /* New row */ 62 { "↺", 0, XK_Cancel, 1}, 63 { "Alt", 0, XK_Alt_L, 1 }, 64 { "", 0, XK_space, 4 }, 65 { "↓", 0, XK_Down, 1 }, 66 { "↑", 0, XK_Up, 1 }, 67 { "↲ Enter", 0, XK_Return, 2 }, 68 }; 69 70 static Key keys_dvorak[KEYS] = { 71 { "Esc", "", XK_Escape, 1 }, 72 { "1", "!", XK_1, 1 }, 73 { "2", "@", XK_2, 1 }, 74 { "3", "#", XK_3, 1 }, 75 { "4", "$", XK_4, 1 }, 76 { "5", "%", XK_5, 1 }, 77 { "6", "^", XK_6, 1 }, 78 { "7", "&", XK_7, 1 }, 79 { "8", "*", XK_8, 1 }, 80 { "9", "(", XK_9, 1 }, 81 { "0", ")", XK_0, 1 }, 82 83 { 0 }, /* New row */ 84 85 { "↹", 0, XK_Tab, 0.75 }, 86 { ";", ":", XK_colon, 1 }, 87 { ",", "<", XK_comma, 1 }, 88 { ".", ">", XK_period, 1 }, 89 { 0, 0, XK_p, 1 }, 90 { 0, 0, XK_y, 1 }, 91 { 0, 0, XK_f, 1 }, 92 { 0, 0, XK_g, 1 }, 93 { 0, 0, XK_c, 1 }, 94 { 0, 0, XK_r, 1 }, 95 { 0, 0, XK_l, 1 }, 96 { "/", "?", XK_slash, .75 }, 97 98 { 0 }, /* New row */ 99 100 { "^", 0, XK_Control_L, 1 }, 101 { 0, 0, XK_a, 1 }, 102 { 0, 0, XK_o, 1 }, 103 { 0, 0, XK_e, 1 }, 104 { 0, 0, XK_u, 1 }, 105 { 0, 0, XK_i, 1 }, 106 { 0, 0, XK_d, 1 }, 107 { 0, 0, XK_h, 1 }, 108 { 0, 0, XK_t, 1 }, 109 { 0, 0, XK_n, 1 }, 110 { 0, 0, XK_s, 1 }, 111 { "-", "_", XK_minus, 1 }, 112 113 { 0 }, /* New row */ 114 115 { "⇧", 0, XK_Shift_L, 1.5 }, 116 { "'", "\"", XK_apostrophe, 1 }, 117 { 0, 0, XK_q, 1 }, 118 { 0, 0, XK_j, 1 }, 119 { 0, 0, XK_k, 1 }, 120 { 0, 0, XK_x, 1 }, 121 { 0, 0, XK_b, 1 }, 122 { 0, 0, XK_m, 1 }, 123 { 0, 0, XK_w, 1 }, 124 { 0, 0, XK_v, 1 }, 125 { 0, 0, XK_z, 1 }, 126 { "⌫", 0, XK_BackSpace, 1 }, 127 128 { 0 }, /* New row */ 129 { "↺", 0, XK_Cancel, 1}, 130 { "Alt", 0, XK_Alt_L, 1 }, 131 { "", 0, XK_space, 4 }, 132 { "↓", 0, XK_Down, 1 }, 133 { "↑", 0, XK_Up, 1 }, 134 { "↲ Enter", 0, XK_Return, 2 }, 135 }; 136 137 static Key keys_minimal[KEYS] = { 138 { 0, "☺", XK_q, 1 }, 139 { 0, 0, XK_w, 1 }, 140 { 0, 0, XK_e, 1 }, 141 { 0, 0, XK_r, 1 }, 142 { 0, 0, XK_t, 1 }, 143 { 0, 0, XK_y, 1 }, 144 { 0, 0, XK_u, 1 }, 145 { 0, 0, XK_i, 1 }, 146 { 0, 0, XK_o, 1 }, 147 { 0, 0, XK_p, 1 }, 148 149 { 0 }, /* New row */ 150 151 { 0, 0, XK_a, 1 }, 152 { 0, 0, XK_s, 1 }, 153 { 0, 0, XK_d, 1 }, 154 { 0, 0, XK_f, 1 }, 155 { 0, 0, XK_g, 1 }, 156 { 0, 0, XK_h, 1 }, 157 { 0, 0, XK_j, 1 }, 158 { 0, 0, XK_k, 1 }, 159 { 0, 0, XK_l, 1 }, 160 161 { 0 }, /* New row */ 162 163 { "⇧", 0, XK_Shift_L, 1.5 }, 164 { 0, 0, XK_z, 1 }, 165 { 0, 0, XK_x, 1 }, 166 { 0, 0, XK_c, 1 }, 167 { 0, 0, XK_v, 1 }, 168 { 0, 0, XK_b, 1 }, 169 { 0, 0, XK_n, 1 }, 170 { 0, 0, XK_m, 1 }, 171 { "⌫", 0, XK_BackSpace, 1.5 }, 172 173 { 0 }, /* New row */ 174 175 { "↺", 0, XK_Cancel, 1}, 176 { "'", "\"", XK_apostrophe, 1 }, 177 { ",", "<", XK_comma, 1 }, 178 { "", 0, XK_space, 4 }, 179 { ".", ">", XK_period, 1 }, 180 { "↲ Enter", 0, XK_Return, 2 }, 181 }; 182 183 #define OVERLAYS 226 184 static Key overlay[OVERLAYS] = { 185 { 0, 0, XK_a }, //Overlay for a 186 { "à", 0, XK_agrave }, 187 { "á", 0, XK_aacute }, 188 { "â", 0, XK_acircumflex }, 189 { "ä", 0, XK_adiaeresis }, 190 { "ą", 0, XK_aogonek }, 191 { "ã", 0, XK_atilde }, 192 { "ā", 0, XK_amacron }, 193 { "ă", 0, XK_abreve }, 194 { "å", 0, XK_aring }, 195 { "æ", 0, XK_ae }, 196 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 197 { 0, 0, XK_e }, //Overlay for e (first item after boundary defines the trigger) 198 { "è", 0, XK_egrave }, 199 { "é", 0, XK_eacute }, 200 { "ê", 0, XK_ecircumflex }, 201 { "ë", 0, XK_ediaeresis }, 202 { "ę", 0, XK_eogonek }, 203 { "ē", 0, XK_emacron }, 204 { "ė", 0, XK_eabovedot }, 205 { "ě", 0, XK_ecaron }, 206 { 0, 0, XK_Cancel }, 207 { 0, 0, XK_y }, //New overlay 208 { "ỳ", 0, XK_ygrave }, 209 { "ý", 0, XK_yacute }, 210 { "ŷ", 0, XK_ycircumflex }, 211 { "ÿ", 0, XK_ydiaeresis }, 212 { 0, 0, XK_Cancel }, 213 { 0, 0, XK_u }, //New overlay 214 { "ù", 0, XK_ugrave }, 215 { "ú", 0, XK_uacute }, 216 { "û", 0, XK_ucircumflex }, 217 { "ü", 0, XK_udiaeresis }, 218 { "ų", 0, XK_uogonek }, 219 { "ū", 0, XK_umacron }, 220 { "ů", 0, XK_uring}, 221 { "ŭ", 0, XK_ubreve}, 222 { "ű", 0, XK_udoubleacute }, 223 { 0, 0, XK_Cancel }, 224 { 0, 0, XK_i }, //New overlay 225 { "ì", 0, XK_igrave }, 226 { "í", 0, XK_iacute }, 227 { "î", 0, XK_icircumflex }, 228 { "ï", 0, XK_idiaeresis }, 229 { "į", 0, XK_iogonek }, 230 { "ī", 0, XK_imacron }, 231 { "ı", 0, XK_idotless }, 232 { 0, 0, XK_Cancel }, 233 { 0, 0, XK_o }, //New overlay 234 { "ò", 0, XK_ograve }, 235 { "ó", 0, XK_oacute }, 236 { "ô", 0, XK_ocircumflex }, 237 { "ö", 0, XK_odiaeresis }, 238 { "ǫ", 0, XK_ogonek }, 239 { "õ", 0, XK_otilde }, 240 { "ō", 0, XK_omacron }, 241 { "ø", 0, XK_oslash }, 242 { "ő", 0, XK_odoubleacute }, 243 { "œ", 0, XK_oe }, 244 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 245 { 0, 0, XK_d }, //New overlay 246 { "ď", 0, XK_dcaron }, 247 { "ð", 0, XK_eth }, 248 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 249 { 0, 0, XK_c }, //New overlay 250 { "ç", 0, XK_ccedilla }, 251 { "ĉ", 0, XK_ccircumflex }, 252 { "č", 0, XK_ccaron }, 253 { "ć", 0, XK_cacute }, 254 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 255 { 0, 0, XK_s }, //New overlay 256 { "ş", 0, XK_scedilla }, 257 { "ŝ", 0, XK_scircumflex }, 258 { "š", 0, XK_scaron }, 259 { "ś", 0, XK_sacute }, 260 { "ß", 0, XK_ssharp }, 261 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 262 { 0, 0, XK_z }, //New overlay 263 { "ž", 0, XK_zcaron }, 264 { "ż", 0, XK_zabovedot }, 265 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 266 { 0, 0, XK_n }, //New overlay 267 { "ñ", 0, XK_ntilde }, 268 { "ń", 0, XK_nacute }, 269 { "ň", 0, XK_ncaron }, 270 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 271 { 0, 0, XK_t }, //New overlay 272 { "ț", 0, XK_tcedilla }, 273 { "ť", 0, XK_tcaron }, 274 { "þ", 0, XK_thorn }, 275 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 276 { 0, 0, XK_g }, //New overlay 277 { "ĝ", 0, XK_gcircumflex }, 278 { "ğ", 0, XK_gbreve }, 279 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 280 { 0, 0, XK_h }, //New overlay 281 { "ĥ", 0, XK_hcircumflex }, 282 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 283 { 0, 0, XK_j }, //New overlay 284 { "ĵ", 0, XK_jcircumflex }, 285 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 286 { 0, 0, XK_l }, //New overlay 287 { "ł", 0, XK_lstroke }, 288 { "ľ", 0, XK_lcaron }, 289 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 290 { 0, 0, XK_r }, //New overlay 291 { "ř", 0, XK_rcaron }, 292 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 293 { 0, 0, XK_Cyrillic_softsign }, //New overlay 294 { "ъ", 0, XK_Cyrillic_hardsign }, 295 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 296 { 0, 0, XK_Cyrillic_ie }, //New overlay 297 { "ё", 0, XK_Cyrillic_io }, 298 { "э", 0, XK_Cyrillic_e }, 299 { "Є", 0, XK_Ukrainian_ie }, 300 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 301 { 0, 0, XK_Cyrillic_i }, //New overlay 302 { "і", 0, XK_Ukrainian_i }, 303 { "ї", 0, XK_Ukrainian_yi }, 304 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 305 { 0, 0, XK_Cyrillic_u }, //New overlay 306 { "ў", 0, XK_Byelorussian_shortu }, 307 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 308 { 0, 0, XK_Cyrillic_shorti }, //New overlay 309 { "ј", 0, XK_Cyrillic_je }, 310 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 311 { 0, 0, XK_Cyrillic_el }, //New overlay 312 { "љ", 0, XK_Cyrillic_lje }, 313 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 314 { 0, 0, XK_Cyrillic_en }, //New overlay 315 { "њ", 0, XK_Cyrillic_nje }, 316 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 317 { 0, 0, XK_Cyrillic_tse }, //New overlay 318 { "џ", 0, XK_Cyrillic_dzhe }, 319 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 320 { 0, 0, XK_Cyrillic_che }, //New overlay 321 { "ћ", 0, XK_Serbian_tshe }, 322 { "ђ", 0, XK_Serbian_dje }, 323 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 324 { "🙂", 0, 0x101f642 }, //New overlay -> emoji overlay 325 { "😀", 0, 0x101f600 }, 326 { "😁", 0, 0x101f601 }, 327 { "😂", 0, 0x101f602 }, 328 { "😃", 0, 0x101f603 }, 329 { "😄", 0, 0x101f604 }, 330 { "😅", 0, 0x101f605 }, 331 { "😆", 0, 0x101f606 }, 332 { "😇", 0, 0x101f607 }, 333 { "😈", 0, 0x101f608 }, 334 { "😉", 0, 0x101f609 }, 335 { "😊", 0, 0x101f60a }, 336 { "😋", 0, 0x101f60b }, 337 { "😌", 0, 0x101f60c }, 338 { "😍", 0, 0x101f60d }, 339 { "😎", 0, 0x101f60e }, 340 { "😏", 0, 0x101f60f }, 341 { "😐", 0, 0x101f610 }, 342 { "😒", 0, 0x101f612 }, 343 { "😓", 0, 0x101f613 }, 344 { "😛", 0, 0x101f61b }, 345 { "😮", 0, 0x101f62e }, 346 { "😟", 0, 0x101f61f }, 347 { "😟", 0, 0x101f620 }, 348 { "😢", 0, 0x101f622 }, 349 { "😭", 0, 0x101f62d }, 350 { "😳", 0, 0x101f633 }, 351 { "😴", 0, 0x101f634 }, 352 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 353 { "q", 0, XK_q }, //New overlay -> emoji overlay on Q key (for minimal layer) 354 { "😀", 0, 0x101f600 }, 355 { "😁", 0, 0x101f601 }, 356 { "😂", 0, 0x101f602 }, 357 { "😃", 0, 0x101f603 }, 358 { "😄", 0, 0x101f604 }, 359 { "😅", 0, 0x101f605 }, 360 { "😆", 0, 0x101f606 }, 361 { "😇", 0, 0x101f607 }, 362 { "😈", 0, 0x101f608 }, 363 { "😉", 0, 0x101f609 }, 364 { "😊", 0, 0x101f60a }, 365 { "😋", 0, 0x101f60b }, 366 { "😌", 0, 0x101f60c }, 367 { "😍", 0, 0x101f60d }, 368 { "😎", 0, 0x101f60e }, 369 { "😏", 0, 0x101f60f }, 370 { "😐", 0, 0x101f610 }, 371 { "😒", 0, 0x101f612 }, 372 { "😓", 0, 0x101f613 }, 373 { "😛", 0, 0x101f61b }, 374 { "😮", 0, 0x101f62e }, 375 { "😟", 0, 0x101f61f }, 376 { "😟", 0, 0x101f620 }, 377 { "😢", 0, 0x101f622 }, 378 { "😭", 0, 0x101f62d }, 379 { "😳", 0, 0x101f633 }, 380 { "😴", 0, 0x101f634 }, 381 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 382 { "/?", 0, XK_slash }, //New overlay - punctuation overlay 383 { "1", "!", XK_1, 1 }, 384 { "2", "@", XK_2, 1 }, 385 { "3", "#", XK_3, 1 }, 386 { "4", "$", XK_4, 1 }, 387 { "5", "%", XK_5, 1 }, 388 { "6", "^", XK_6, 1 }, 389 { "7", "&", XK_7, 1 }, 390 { "8", "*", XK_8, 1 }, 391 { "9", "(", XK_9, 1 }, 392 { "0", ")", XK_0, 1 }, 393 { "'", "\"", XK_apostrophe, 1 }, 394 { "`", "~", XK_grave, 1 }, 395 { "-", "_", XK_minus, 1 }, 396 { "=", "+", XK_plus, 1 }, 397 { "[", "{", XK_bracketleft, 1 }, 398 { "]", "}", XK_bracketright, 1 }, 399 { ",", "<", XK_comma, 1 }, 400 { ".", ">", XK_period, 1 }, 401 { "/", "?", XK_slash, 1 }, 402 { "\\", "|", XK_backslash, 1 }, 403 { "¡", 0, XK_exclamdown, 1 }, 404 { "?", 0, XK_questiondown, 1 }, 405 { "°", 0, XK_degree, 1 }, 406 { "£", 0, XK_sterling, 1 }, 407 { "€", 0, XK_EuroSign, 1 }, 408 { "¥", 0, XK_yen, 1 }, 409 { ";", ":", XK_colon, 1 }, 410 { 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */ 411 }; 412 413 static Key keys_symbols[KEYS] = { 414 { "Esc", 0, XK_Escape, 1 }, 415 { "F1", 0, XK_F1, 1 }, 416 { "F2", 0, XK_F2, 1 }, 417 { "F3", 0, XK_F3, 1 }, 418 { "F4", 0, XK_F4, 1 }, 419 { "F5", 0, XK_F5, 1 }, 420 { "F6", 0, XK_F6, 1 }, 421 { "F7", 0, XK_F7, 1 }, 422 { "F8", 0, XK_F8, 1 }, 423 { "F9", 0, XK_F9, 1 }, 424 { "F10", 0, XK_F10, 1 }, 425 { 0 }, /* New row */ 426 427 { "'\"", 0, XK_apostrophe, 1 }, 428 { "1", "!", XK_1, 1 }, 429 { "2", "@", XK_2, 1 }, 430 { "3", "#", XK_3, 1 }, 431 { "4", "$", XK_4, 1 }, 432 { "5", "%", XK_5, 1 }, 433 { "6", "^", XK_6, 1 }, 434 { "7", "&", XK_7, 1 }, 435 { "8", "*", XK_8, 1 }, 436 { "9", "(", XK_9, 1 }, 437 { "0", ")", XK_0, 1 }, 438 439 { 0 }, /* New row */ 440 441 { ".", ">", XK_period, 1 }, 442 { ",", "<", XK_comma, 1 }, 443 { "`", "~", XK_grave, 1 }, 444 { "-", "_", XK_minus, 1 }, 445 { "=", "+", XK_plus, 1 }, 446 { "\\", "|", XK_backslash, 1 }, 447 { ";", ":", XK_colon, 1 }, 448 { "/", "?", XK_slash, 1 }, 449 { "[", "{", XK_bracketleft, 1 }, 450 { "]", "}", XK_bracketright, 1 }, 451 { "Del", 0, XK_Delete, 1 }, 452 453 { 0 }, /* New row */ 454 455 { "abc", 0, XK_Mode_switch, 1 }, 456 { "☺", 0, 0x101f642, 1 }, 457 { "⇤", 0, XK_Home, 1 }, 458 { "←", 0, XK_Left, 1 }, 459 { "→", 0, XK_Right, 1 }, 460 { "⇥", 0, XK_End, 1 }, 461 { "⇊", 0, XK_Next, 1 }, 462 { "⇈", 0, XK_Prior, 1 }, 463 { "Tab", 0, XK_Tab, 1 }, 464 { "⌫Bksp", 0, XK_BackSpace, 2 }, 465 466 { 0 }, /* New row */ 467 { "↺", 0, XK_Cancel, 1}, 468 { "Shift", 0, XK_Shift_L, 2 }, 469 { "Ctrl", 0, XK_Control_L, 1 }, 470 { "Alt", 0, XK_Alt_L, 1 }, 471 { "", 0, XK_space, 2 }, 472 { "↓", 0, XK_Down, 1 }, 473 { "↑", 0, XK_Up, 1 }, 474 { "↲ Enter", 0, XK_Return, 2 }, 475 }; 476 477 static Key keys_functions[KEYS] = { 478 479 { "Esc", 0, XK_Escape, 1 }, 480 { "▶", 0, XF86XK_AudioPlay, 1 }, 481 { "●", 0, XF86XK_AudioRecord, 1 }, 482 { "■", 0, XF86XK_AudioStop, 1 }, 483 { "◂◂", 0, XF86XK_AudioPrev, 1 }, 484 { "▸▸", 0, XF86XK_AudioNext, 1 }, 485 { "♫M", 0, XF86XK_AudioMute, 1 }, 486 { "♫-", 0, XF86XK_AudioLowerVolume, 1 }, 487 { "♫+", 0, XF86XK_AudioRaiseVolume, 1 }, 488 { "☀-", 0, XF86XK_MonBrightnessDown, 1 }, 489 { "☀+", 0, XF86XK_MonBrightnessUp, 1 }, 490 491 { 0 }, /* New row */ 492 493 { "≅", 0, XK_KP_Insert, 1 }, 494 { "Del", 0, XK_Delete, 1 }, 495 { "⇤", 0, XK_Home, 1 }, 496 { "←", 0, XK_Left, 1 }, 497 { "→", 0, XK_Right, 1 }, 498 { "⇥", 0, XK_End, 1 }, 499 { "⇊", 0, XK_Next, 1 }, 500 { "⇈", 0, XK_Prior, 1 }, 501 { "Tab", 0, XK_Tab, 1 }, 502 { "⌫Bksp", 0, XK_BackSpace, 2 }, 503 504 { 0 }, /* New row */ 505 { "↺", 0, XK_Cancel, 1}, 506 { "Shift", 0, XK_Shift_L, 2 }, 507 { "Ctrl", 0, XK_Control_L, 1 }, 508 { "Alt", 0, XK_Alt_L, 1 }, 509 { "", 0, XK_space, 2 }, 510 { "↓", 0, XK_Down, 1 }, 511 { "↑", 0, XK_Up, 1 }, 512 { "↲ Enter", 0, XK_Return, 2 }, 513 514 { 0 }, /* Last item (double 0) */ 515 { 0 }, /* Last item (double 0) */ 516 }; 517 518 static Key keys_navigation[KEYS] = { 519 { "Esc", 0, XK_Escape, 1 }, 520 { "⇤", 0, XK_Home, 1 }, 521 { "↑", 0, XK_Up, 1 }, 522 { "⇥", 0, XK_End, 1 }, 523 { "⇈", 0, XK_Prior, 1 }, 524 { 0 }, /* New row */ 525 526 { "Shift", 0, XK_Shift_L, 1 }, 527 { "←", 0, XK_Left, 1 }, 528 { "", 0, XK_space, 1 }, 529 { "→", 0, XK_Right, 1 }, 530 { "⇊", 0, XK_Next, 1 }, 531 532 { 0 }, /* New row */ 533 534 { "↺", 0, XK_Cancel, 1}, 535 { "⌫Bksp", 0, XK_BackSpace, 1 }, 536 { "↓", 0, XK_Down, 1 }, 537 { "Tab", 0, XK_Tab, 1 }, 538 { "↲ Enter", 0, XK_Return, 1}, 539 540 { 0 }, /* Last item (double 0) */ 541 { 0 }, /* Last item (double 0) */ 542 }; 543 544 static Key keys_am[KEYS] = { 545 { "՝","՜", XK_Armenian_exclam, 1 }, 546 { "ֆ","Ֆ", XK_Armenian_fe, 1 }, 547 { "ձ","Ձ", XK_Armenian_dza, 1 }, 548 { "֊","—", XK_Armenian_hyphen, 1 }, 549 { ",","՟", XK_comma, 1 }, 550 { "։","…", XK_Armenian_full_stop, 1 }, 551 { "՞","%", XK_Armenian_question, 1 }, 552 { "․","և", XK_Armenian_ligature_ew, 1 }, 553 { "՛","՚", XK_Armenian_accent, 1 }, 554 { ")","(", XK_parenright, 1 }, 555 { "օ","Օ", XK_Armenian_o, 1 }, 556 { "է","Է", XK_Armenian_e, 1 }, 557 { "ղ","Ղ", XK_Armenian_ghat, 1 }, 558 { 0 }, /* New row */ 559 560 { "ճ", "Ճ", XK_Armenian_tche, 1 }, 561 { "փ", "Փ", XK_Armenian_pyur, 1 }, 562 { "բ", "Բ", XK_Armenian_ben, 1 }, 563 { "ս", "Ս", XK_Armenian_se, 1 }, 564 { "մ", "Մ", XK_Armenian_men, 1 }, 565 { "ո", "Ո", XK_Armenian_vo, 1 }, 566 { "ւ", "Ւ", XK_Armenian_vyun, 1 }, 567 { "կ","Կ", XK_Armenian_ken, 1 }, 568 { "ը", "Ը", XK_Armenian_at, 1 }, 569 { "թ", "Թ", XK_Armenian_to, 1 }, 570 { "ծ", "Ծ", XK_Armenian_tsa, 1 }, 571 { "ց", "Ց", XK_Armenian_tso, 1 }, 572 { 0 }, /* New row */ 573 574 { "ջ", "Ջ", XK_Armenian_je, 1 }, 575 { "վ", "Վ", XK_Armenian_vev, 1 }, 576 { "գ", "Գ", XK_Armenian_gim, 1 }, 577 { "ե", "Ե", XK_Armenian_yech, 1 }, 578 { "ա", "Ա", XK_Armenian_ayb, 1 }, 579 { "ն", "Ն", XK_Armenian_nu, 1 }, 580 { "ի", "Ի", XK_Armenian_ini, 1 }, 581 { "տ", "Տ", XK_Armenian_tyun, 1 }, 582 { "հ", "Հ", XK_Armenian_ho, 1 }, 583 { "պ", "Պ", XK_Armenian_pe, 1 }, 584 { "ր", "Ր", XK_Armenian_re, 1 }, 585 { 0 }, /* New row */ 586 587 { "123", 0, XK_Mode_switch, 1 }, 588 { "ժ", "Ժ", XK_Armenian_zhe, 1 }, 589 { "դ", "Դ", XK_Armenian_da, 1 }, 590 { "չ", "Չ", XK_Armenian_cha, 1 }, 591 { "յ", "Յ", XK_Armenian_hi, 1 }, 592 { "զ", "Զ", XK_Armenian_za, 1 }, 593 { "լ", "Լ", XK_Armenian_lyun, 1 }, 594 { "ք", "Ք", XK_Armenian_ke, 1 }, 595 { "խ", "Խ", XK_Armenian_khe, 1 }, 596 { "շ", "Շ", XK_Armenian_sha, 1 }, 597 { "ռ", "Ռ", XK_Armenian_ra, 1 }, 598 { "⌫Bksp", 0, XK_BackSpace, 2 }, 599 600 { 0 }, /* New row */ 601 { "↺", 0, XK_Cancel, 1}, 602 { "Shift", 0, XK_Shift_L, 2 }, 603 { "", 0, XK_space, 2 }, 604 { "↲ Enter", 0, XK_Return, 2 }, 605 }; 606 607 static Key keys_ru[KEYS] = { 608 { "Esc", 0, XK_Escape, 1 }, 609 { "1", "!", XK_1, 1 }, 610 { "2", "@", XK_2, 1 }, 611 { "3", "#", XK_3, 1 }, 612 { "4", "$", XK_4, 1 }, 613 { "5", "%", XK_5, 1 }, 614 { "6", "^", XK_6, 1 }, 615 { "7", "&", XK_7, 1 }, 616 { "8", "*", XK_8, 1 }, 617 { "9", "(", XK_9, 1 }, 618 { "0", ")", XK_0, 1 }, 619 { 0 }, /* New row */ 620 621 { "й", 0, XK_Cyrillic_shorti, 1 }, 622 { "ц", 0, XK_Cyrillic_tse, 1 }, 623 { "у", 0, XK_Cyrillic_u, 1 }, 624 { "к", 0, XK_Cyrillic_ka, 1 }, 625 { "е", 0, XK_Cyrillic_ie, 1 }, 626 { "н", 0, XK_Cyrillic_en, 1 }, 627 { "г", 0, XK_Cyrillic_ghe, 1 }, 628 { "ш", 0, XK_Cyrillic_sha, 1 }, 629 { "щ", 0, XK_Cyrillic_shcha, 1 }, 630 { "з", 0, XK_Cyrillic_ze, 1 }, 631 { "х", 0, XK_Cyrillic_ha, 1 }, 632 633 { 0 }, /* New row */ 634 635 { "ф", 0, XK_Cyrillic_ef, 1 }, 636 { "ы", 0, XK_Cyrillic_yeru, 1 }, 637 { "в", 0, XK_Cyrillic_ve, 1 }, 638 { "а", 0, XK_Cyrillic_a, 1 }, 639 { "п", 0, XK_Cyrillic_pe, 1 }, 640 { "р", 0, XK_Cyrillic_er, 1 }, 641 { "о", 0, XK_Cyrillic_o, 1 }, 642 { "л", 0, XK_Cyrillic_el, 1 }, 643 { "д", 0, XK_Cyrillic_de, 1 }, 644 { "ж", 0, XK_Cyrillic_zhe, 1 }, 645 { "ю", 0, XK_Cyrillic_yu, 1 }, 646 647 { 0 }, /* New row */ 648 649 { "123", 0, XK_Mode_switch, 1 }, 650 { "я", 0, XK_Cyrillic_ya, 1 }, 651 { "ч", 0, XK_Cyrillic_che, 1 }, 652 { "с", 0, XK_Cyrillic_es, 1 }, 653 { "м", 0, XK_Cyrillic_em, 1 }, 654 { "и", 0, XK_Cyrillic_i, 1 }, 655 { "т", 0, XK_Cyrillic_te, 1 }, 656 { "ь", 0, XK_Cyrillic_softsign, 1 }, 657 { "б", 0, XK_Cyrillic_be, 1 }, 658 { "⌫Bksp", 0, XK_BackSpace, 2 }, 659 660 { 0 }, /* New row */ 661 { "↺", 0, XK_Cancel, 1}, 662 { "Shift", 0, XK_Shift_L, 2 }, 663 { "Ctrl", 0, XK_Control_L, 1 }, 664 { "Alt", 0, XK_Alt_L, 1 }, 665 { "", 0, XK_space, 2 }, 666 { "↓", 0, XK_Down, 1 }, 667 { "↑", 0, XK_Up, 1 }, 668 { "↲ Enter", 0, XK_Return, 2 }, 669 }; 670 671 static Key keys_dialer[KEYS] = { 672 { "Esc", 0, XK_Escape, 1 }, 673 { "1", "!" , XK_1, 1 }, 674 { "2", "@", XK_2, 1 }, 675 { "3", "#", XK_3, 1 }, 676 { "-", "_", XK_minus, 1 }, 677 { ",", "<", XK_comma, 1 }, 678 { 0 }, /* New row */ 679 680 { "Shift", 0, XK_Shift_L, 1 }, 681 { "4", "$", XK_4, 1 }, 682 { "5", "%", XK_5, 1 }, 683 { "6", "^", XK_6, 1 }, 684 { "=", "+", XK_equal, 1 }, 685 { "/", "?", XK_slash, 1 }, 686 { 0 }, /* New row */ 687 688 { "abc", 0, XK_Mode_switch, 1 }, 689 { "7", "&", XK_7, 1 }, 690 { "8", "*", XK_8, 1 }, 691 { "9", "(", XK_9, 1 }, 692 { "⌫Bksp", 0, XK_BackSpace, 2 }, 693 { 0 }, /* New row */ 694 695 { "↺", 0, XK_Cancel, 1}, 696 { "", 0, XK_space, 1 }, 697 { "0", ")", XK_0, 1 }, 698 { ".", ">", XK_period, 1 }, 699 { "↲ Enter", 0, XK_Return, 2}, 700 { 0 }, /* New row */ 701 { 0 }, /* Last item (double 0) */ 702 }; 703 704 #define LAYERS 8 705 static char* layer_names[LAYERS] = { 706 "en", 707 "symbols", 708 "navigation", 709 "dialer", 710 "minimal", 711 "dvorak", 712 "am", 713 "ru" 714 }; 715 716 static Key* available_layers[LAYERS] = { 717 keys_en, 718 keys_symbols, 719 keys_navigation, 720 keys_dialer, 721 keys_minimal, 722 keys_dvorak, 723 keys_am, 724 keys_ru, 725 }; 726 727 Buttonmod buttonmods[] = { 728 { XK_Shift_L, Button2 }, 729 { XK_Alt_L, Button3 }, 730 };