svkbd-exkc/layout.h

357 lines
9.7 KiB
C
Raw Normal View History

2020-12-22 05:51:39 +00:00
//   
2021-02-23 06:26:32 +00:00
#define KEYS 98
2020-12-22 05:51:39 +00:00
static Key keys_en[KEYS] = {
2021-02-23 06:26:32 +00:00
{ "Prtscr", XK_Print, 1 },
2021-01-31 09:39:13 +00:00
{ "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 },
2021-01-30 03:04:52 +00:00
{ 0 }, /* New row */
2020-12-22 05:51:39 +00:00
{ "`~", 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 },
2021-02-23 02:17:30 +00:00
{ "-_", XK_minus, 1 },
{ "=+", XK_plus, 1 },
2021-02-06 04:16:30 +00:00
{ "", XK_BackSpace, 1 },
2021-02-23 06:26:32 +00:00
{ "Insert",XK_Insert, 1},
2020-12-22 05:51:39 +00:00
{ 0 }, /* New row */
{ "->|", XK_Tab, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_q, 1 },
{ 0, XK_w, 1 },
{ 0, XK_e, 1 },
2021-02-22 08:02:41 +00:00
{ 0, XK_r, 1 },
2021-02-23 02:17:30 +00:00
{ 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 },
2020-12-22 08:57:15 +00:00
{ "\\|", XK_backslash, 1 },
2021-02-23 06:26:32 +00:00
{ "Home",XK_Home, 1},
2020-12-22 05:51:39 +00:00
{ 0 }, /* New row */
2021-01-31 05:50:03 +00:00
{ "", XK_Cancel, 1},
2020-12-22 05:51:39 +00:00
{ 0, XK_a, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_s, 1 },
2020-12-22 05:51:39 +00:00
{ 0, XK_d, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_f, 1 },
{ 0, XK_g, 1 },
2020-12-22 05:51:39 +00:00
{ 0, XK_h, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_j, 1 },
{ 0, XK_k, 1 },
{ 0, XK_l, 1 },
{ ":;", XK_semicolon, 1 },
{ "'\"", XK_apostrophe, 1 },
2020-12-22 08:57:15 +00:00
{ "", XK_Return, 1 },
2021-02-23 06:26:32 +00:00
{ "End",XK_End, 1},
2020-12-22 05:51:39 +00:00
{ 0 }, /* New row */
2021-02-06 03:51:37 +00:00
{ "Shift", XK_Shift_L, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_z, 1 },
2020-12-22 05:51:39 +00:00
{ 0, XK_x, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_c, 1 },
{ 0, XK_v, 1 },
2020-12-22 05:51:39 +00:00
{ 0, XK_b, 1 },
2021-02-23 02:17:30 +00:00
{ 0, XK_n, 1 },
2020-12-22 05:51:39 +00:00
{ 0, XK_m, 1 },
{ "", XK_Up, 1 },
2021-02-23 02:17:30 +00:00
{ "<,", XK_comma, 1 },
{ ">.", XK_period, 1 },
{ "/?", XK_slash, 1 },
2021-02-06 03:51:37 +00:00
{ "Shift", XK_Shift_R, 1 },
2021-02-23 06:26:32 +00:00
{ "PgDn",XK_Page_Down, 1},
2020-12-22 05:51:39 +00:00
{ 0 }, /* New row */
2021-01-31 05:50:03 +00:00
{ "Esc", XK_Escape, 1 },
2021-02-06 03:51:37 +00:00
{ "Ctrl", XK_Control_L, 1 },
{ "Alt", XK_Alt_L, 1 },
{ "", XK_Super_L, 1 },
{ "", XK_space, 3 },
2020-12-22 05:51:39 +00:00
{ "", XK_Left, 1 },
{ "", XK_Down, 1 },
{ "", XK_Right, 1},
2021-02-06 03:51:37 +00:00
{ "Alt", XK_Alt_R, 1 },
{ "", XK_Super_R, 1 },
{ "Ctrl", XK_Control_R, 1 },
2021-02-23 06:26:32 +00:00
{ "PgUp",XK_Page_Up, 1},
2020-12-22 05:51:39 +00:00
};
2021-02-06 04:16:30 +00:00
static Key keys_random [KEYS] = {
2020-12-22 05:51:39 +00:00
{ "🙂", 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
2021-02-06 04:16:30 +00:00
{0},
2020-12-22 05:51:39 +00:00
{ "😍", 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
2021-02-06 04:16:30 +00:00
{ 0 }, /* New row */
2020-12-22 05:51:39 +00:00
{ "", 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
2021-02-06 03:51:37 +00:00
{ "öÖ˝", 0xf6, 1 },
{ "äÄ^", 0xe4, 1 },
{ "üܨ", 0xfc, 1 },
{ "ъ", XK_Cyrillic_hardsign,1 },
2021-02-06 04:16:30 +00:00
{ "", XK_BackSpace, 1 },
2021-02-06 03:51:37 +00:00
{ 0 }, /* New row */
2021-02-06 03:07:11 +00:00
{ "", XK_Cancel, 1},//52
2021-01-31 09:39:13 +00:00
{ "й", 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 },
2021-02-06 04:16:30 +00:00
{ "э", XK_Cyrillic_e ,1 },
2021-02-09 04:43:26 +00:00
{ "і", XK_Ukrainian_i ,1 },
{ "ё", XK_Cyrillic_io ,1 },
2021-02-06 04:16:30 +00:00
{ "Є", XK_Ukrainian_ie ,1 },
2021-01-31 09:39:13 +00:00
{ 0 }, /* New row */
2021-02-06 03:51:37 +00:00
{ "Shift", XK_Shift_L, 1 },
2021-02-06 04:16:30 +00:00
{ "Є", XK_Ukrainian_ie ,1 },
{ "і", XK_Ukrainian_i ,1 },
{ "ї", XK_Ukrainian_yi ,1 },
{ "ў", XK_Byelorussian_shortu ,1 },
2021-01-31 09:39:13 +00:00
{ "ф", 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 },
2021-02-09 04:43:26 +00:00
{ "ї", XK_Ukrainian_yi ,1 },
{ "ў", XK_Byelorussian_shortu ,1 },
{ "х", XK_Cyrillic_ha, 1 },
2021-01-31 09:39:13 +00:00
{ 0 }, /* New row */
2021-02-06 03:51:37 +00:00
{ "ј", XK_Cyrillic_je ,1 },
{ "љ", XK_Cyrillic_lje ,1 },
{ "њ", XK_Cyrillic_nje ,1 },
{ "џ", XK_Cyrillic_dzhe ,1 },
{ "ћ", XK_Serbian_tshe ,1 },
{ "ђ", XK_Serbian_dje ,1 },
2021-01-31 09:39:13 +00:00
{ "я", 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 },
2020-12-22 05:51:39 +00:00
};
Buttonmod buttonmods[] = {
{ XK_Shift_L, Button2 },
{ XK_Alt_L, Button3 },
};
2021-02-06 03:51:37 +00:00
#define OVERLAYS 180
2020-12-22 05:51:39 +00:00
static Key overlay[OVERLAYS] = {
2021-02-06 03:51:37 +00:00
{ 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 },
2020-12-22 05:51:39 +00:00
{ 0, XK_Cancel },
2021-02-06 03:51:37 +00:00
//--
{ 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 */
2020-12-22 05:51:39 +00:00
};
#define LAYERS 2
static char* layer_names[LAYERS] = {
"en",
2021-02-06 04:16:30 +00:00
"random",
2020-12-22 05:51:39 +00:00
};
static Key* available_layers[LAYERS] = {
keys_en,
2021-02-06 04:16:30 +00:00
keys_random,
2020-12-22 05:51:39 +00:00
};
2021-02-23 02:17:30 +00:00