svkbd-exkc/layout.h

357 lines
9.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//   
#define KEYS 98
static Key keys_en[KEYS] = {
{ "Prtscr", XK_Print, 1 },
{ "F1", XK_F1, 1 },
{ "F2", XK_F2, 1 },
{ "F3", XK_F3, 1 },
{ "F4", XK_F4, 1 },
{ "F5", XK_F5, 1 },
{ "F6", XK_F6, 1 },
{ "F7", XK_F7, 1 },
{ "F8", XK_F8, 1 },
{ "F9", XK_F9, 1 },
{ "F10", XK_F10, 1 },
{ "F11", XK_F11, 1 },
{ "F12", XK_F12, 1 },
{ "Del", XK_Delete, 1 },
{ 0 }, /* New row */
{ "`~", XK_grave, 1 },
{ "1!", XK_1, 1 },
{ "2@", XK_2, 1 },
{ "3#", XK_3, 1 },
{ "4$", XK_4, 1 },
{ "5%", XK_5, 1 },
{ "6^", XK_6, 1 },
{ "7&", XK_7, 1 },
{ "8*", XK_8, 1 },
{ "9(", XK_9, 1 },
{ "0)", XK_0, 1 },
{ "-_", XK_minus, 1 },
{ "=+", XK_plus, 1 },
{ "", XK_BackSpace, 1 },
{ "Insert",XK_Insert, 1},
{ 0 }, /* New row */
{ "->|", XK_Tab, 1 },
{ 0, XK_q, 1 },
{ 0, XK_w, 1 },
{ 0, XK_e, 1 },
{ 0, XK_r, 1 },
{ 0, XK_t, 1 },
{ 0, XK_y, 1 },
{ 0, XK_u, 1 },
{ 0, XK_i, 1 },
{ 0, XK_o, 1 },
{ 0, XK_p, 1 },
{ "[", XK_bracketleft, 1 },
{ "]", XK_bracketright, 1 },
{ "\\|", XK_backslash, 1 },
{ "Home",XK_Home, 1},
{ 0 }, /* New row */
{ "", XK_Cancel, 1},
{ 0, XK_a, 1 },
{ 0, XK_s, 1 },
{ 0, XK_d, 1 },
{ 0, XK_f, 1 },
{ 0, XK_g, 1 },
{ 0, XK_h, 1 },
{ 0, XK_j, 1 },
{ 0, XK_k, 1 },
{ 0, XK_l, 1 },
{ ":;", XK_semicolon, 1 },
{ "'\"", XK_apostrophe, 1 },
{ "", XK_Return, 1 },
{ "End",XK_End, 1},
{ 0 }, /* New row */
{ "Shift", XK_Shift_L, 1 },
{ 0, XK_z, 1 },
{ 0, XK_x, 1 },
{ 0, XK_c, 1 },
{ 0, XK_v, 1 },
{ 0, XK_b, 1 },
{ 0, XK_n, 1 },
{ 0, XK_m, 1 },
{ "", XK_Up, 1 },
{ "<,", XK_comma, 1 },
{ ">.", XK_period, 1 },
{ "/?", XK_slash, 1 },
{ "Shift", XK_Shift_R, 1 },
{ "PgDn",XK_Page_Down, 1},
{ 0 }, /* New row */
{ "Esc", XK_Escape, 1 },
{ "Ctrl", XK_Control_L, 1 },
{ "Alt", XK_Alt_L, 1 },
{ "", XK_Super_L, 1 },
{ "", XK_space, 3 },
{ "", XK_Left, 1 },
{ "", XK_Down, 1 },
{ "", XK_Right, 1},
{ "Alt", XK_Alt_R, 1 },
{ "", XK_Super_R, 1 },
{ "Ctrl", XK_Control_R, 1 },
{ "PgUp",XK_Page_Up, 1},
};
static Key keys_random [KEYS] = {
{ "🙂", 0x101f642 ,1 }, //1
{ "😀", 0x101f600 ,1 },//2
{ "😁", 0x101f601 ,1 },//3
{ "😂", 0x101f602 ,1 },//4
{ "😃", 0x101f603 ,1 },//5
{ "😄", 0x101f604 ,1 },//6
{ "😅", 0x101f605 ,1 },//7
{ "😆", 0x101f606 ,1 },//8
{ "😇", 0x101f607 ,1 },//9
{ "😈", 0x101f608 ,1 },//0
{ "😉", 0x101f609 ,1 },//11
{ "😊", 0x101f60a ,1 },//12
{ "😋", 0x101f60b ,1 },//13
{ "😌", 0x101f60c ,1 },//14
{0},
{ "😍", 0x101f60d ,1 },//15
{ "😎", 0x101f60e ,1 },//16
{ "😏", 0x101f60f ,1 },//17
{ "😐", 0x101f610 ,1 },//18
{ "😒", 0x101f612 ,1 },//19
{ "😓", 0x101f613 ,1 },//20
{ "😛", 0x101f61b ,1 },//21
{ "😮", 0x101f62e ,1 },//22
{ "😟", 0x101f61f ,1 },//23
{ "😟", 0x101f620 ,1 },//24
{ "😢", 0x101f622 ,1 },//25
{ "😭", 0x101f62d ,1 },//26
{ "😳", 0x101f633 ,1 },//27
{ "😴", 0x101f634 ,1 },//28
{ 0 }, /* New row */
{ "", XF86XK_AudioPlay, 1 },//30
{ "", XF86XK_AudioRecord, 1 },//31
{ "", XF86XK_AudioStop, 1 },//32
{ "◂◂", XF86XK_AudioPrev, 1 },//33
{ "▸▸", XF86XK_AudioNext, 1 },//34
{ "♫M", XF86XK_AudioMute, 1 },//35
{ "♫-", XF86XK_AudioLowerVolume, 1 },//36
{ "♫+", XF86XK_AudioRaiseVolume, 1 },//37
{ "☀-", XF86XK_MonBrightnessDown, 1 },//38
{ "☀+", XF86XK_MonBrightnessUp, 1 },//39
{ "öÖ˝", 0xf6, 1 },
{ "äÄ^", 0xe4, 1 },
{ "üܨ", 0xfc, 1 },
{ "ъ", XK_Cyrillic_hardsign,1 },
{ "", XK_BackSpace, 1 },
{ 0 }, /* New row */
{ "", XK_Cancel, 1},//52
{ "й", XK_Cyrillic_shorti, 1 },
{ "ц", XK_Cyrillic_tse, 1 },
{ "у", XK_Cyrillic_u, 1 },
{ "к", XK_Cyrillic_ka, 1 },
{ "е", XK_Cyrillic_ie, 1 },
{ "н", XK_Cyrillic_en, 1 },
{ "г", XK_Cyrillic_ghe, 1 },
{ "ш", XK_Cyrillic_sha, 1 },
{ "щ", XK_Cyrillic_shcha, 1 },
{ "з", XK_Cyrillic_ze, 1 },
{ "э", XK_Cyrillic_e ,1 },
{ "і", XK_Ukrainian_i ,1 },
{ "ё", XK_Cyrillic_io ,1 },
{ "Є", XK_Ukrainian_ie ,1 },
{ 0 }, /* New row */
{ "Shift", XK_Shift_L, 1 },
{ "Є", XK_Ukrainian_ie ,1 },
{ "і", XK_Ukrainian_i ,1 },
{ "ї", XK_Ukrainian_yi ,1 },
{ "ў", XK_Byelorussian_shortu ,1 },
{ "ф", XK_Cyrillic_ef, 1 },
{ "ы", XK_Cyrillic_yeru, 1 },
{ "в", XK_Cyrillic_ve, 1 },
{ "а", XK_Cyrillic_a, 1 },
{ "п", XK_Cyrillic_pe, 1 },
{ "р", XK_Cyrillic_er, 1 },
{ "о", XK_Cyrillic_o, 1 },
{ "л", XK_Cyrillic_el, 1 },
{ "д", XK_Cyrillic_de, 1 },
{ "ж", XK_Cyrillic_zhe, 1 },
{ "ю", XK_Cyrillic_yu, 1 },
{ "ї", XK_Ukrainian_yi ,1 },
{ "ў", XK_Byelorussian_shortu ,1 },
{ "х", XK_Cyrillic_ha, 1 },
{ 0 }, /* New row */
{ "ј", XK_Cyrillic_je ,1 },
{ "љ", XK_Cyrillic_lje ,1 },
{ "њ", XK_Cyrillic_nje ,1 },
{ "џ", XK_Cyrillic_dzhe ,1 },
{ "ћ", XK_Serbian_tshe ,1 },
{ "ђ", XK_Serbian_dje ,1 },
{ "я", XK_Cyrillic_ya, 1 },
{ "ч", XK_Cyrillic_che, 1 },
{ "с", XK_Cyrillic_es, 1 },
{ "м", XK_Cyrillic_em, 1 },
{ "и", XK_Cyrillic_i, 1 },
{ "т", XK_Cyrillic_te, 1 },
{ "ь", XK_Cyrillic_softsign, 1 },
{ "б", XK_Cyrillic_be, 1 },
};
Buttonmod buttonmods[] = {
{ XK_Shift_L, Button2 },
{ XK_Alt_L, Button3 },
};
#define OVERLAYS 180
static Key overlay[OVERLAYS] = {
{ 0, XK_a }, //Overlay for a
//---
{ "à", XK_agrave },
{ "á", XK_aacute },
{ "â", XK_acircumflex },
{ "ä", XK_adiaeresis },
{ "ą", XK_aogonek },
{ "ã", XK_atilde },
{ "ā", XK_amacron },
{ "ă", XK_abreve },
{ "å", XK_aring },
{ "æ", XK_ae },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_e }, //Overlay for e (first item after boundary defines the trigger)
//---
{ "è", XK_egrave },
{ "é", XK_eacute },
{ "ê", XK_ecircumflex },
{ "ë", XK_ediaeresis },
{ "ę", XK_eogonek },
{ "ē", XK_emacron },
{ "ė", XK_eabovedot },
{ 0, XK_Cancel },
//--
{ 0, XK_y }, //New overlay
//---
{ "", XK_ygrave },
{ "ý", XK_yacute },
{ "ŷ", XK_ycircumflex },
{ "ÿ", XK_ydiaeresis },
{ 0, XK_Cancel },
//--
{ 0, XK_u }, //New overlay
//---
{ "ù", XK_ugrave },
{ "ú", XK_uacute },
{ "û", XK_ucircumflex },
{ "ü", XK_udiaeresis },
{ "ų", XK_uogonek },
{ "ū", XK_umacron },
{ "ů", XK_uring},
{ "ŭ", XK_ubreve},
{ "ű", XK_udoubleacute },
{ 0, XK_Cancel },
//--
{ 0, XK_i }, //New overlay
//---
{ "ì", XK_igrave },
{ "í", XK_iacute },
{ "î", XK_icircumflex },
{ "ï", XK_idiaeresis },
{ "į", XK_iogonek },
{ "ī", XK_imacron },
{ "ı", XK_idotless },
{ 0, XK_Cancel },
//--
{ 0, XK_o }, //New overlay
//---
{ "ò", XK_ograve },
{ "ó", XK_oacute },
{ "ô", XK_ocircumflex },
{ "ö", XK_odiaeresis },
{ "ǫ", XK_ogonek },
{ "õ", XK_otilde },
{ "ō", XK_omacron },
{ "ø", XK_oslash },
{ "ő", XK_odoubleacute },
{ "œ", XK_oe },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_d }, //New overlay
//---
{ "ď", XK_dcaron },
{ "ð", XK_eth },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_c }, //New overlay
//---
{ "ç", XK_ccedilla },
{ "ĉ", XK_ccircumflex },
{ "č", XK_ccaron },
{ "ć", XK_cacute },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_s }, //New overlay
//---
{ "ş", XK_scedilla },
{ "ŝ", XK_scircumflex },
{ "š", XK_scaron },
{ "ś", XK_sacute },
{ "ß", XK_ssharp },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//---
{ 0, XK_z }, //New overlay
//---
{ "ž", XK_zcaron },
{ "ż", XK_zabovedot },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_n }, //New overlay
//---
{ "ñ", XK_ntilde },
{ "ń", XK_nacute },
{ "ň", XK_ncaron },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//
{ 0, XK_t }, //New overlay
//---
{ "ț", XK_tcedilla },
{ "ť", XK_tcaron },
{ "þ", XK_thorn },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//----
{ 0, XK_g }, //New overlay
//---
{ "ĝ", XK_gcircumflex },
{ "ğ", XK_gbreve },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//
{ 0, XK_h }, //New overlay
//---
{ "ĥ", XK_hcircumflex },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//
{ 0, XK_j }, //New overlay
//---
{ "ĵ", XK_jcircumflex },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_l }, //New overlay
//---
{ "ł", XK_lstroke },
{ "ľ", XK_lcaron },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
//--
{ 0, XK_r }, //New overlay
//---
{ "ř", XK_rcaron },
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
};
#define LAYERS 2
static char* layer_names[LAYERS] = {
"en",
"random",
};
static Key* available_layers[LAYERS] = {
keys_en,
keys_random,
};