mirror of git://git.suckless.org/svkbd
Added a second key label for the shift-activated symbols
This commit is contained in:
parent
6633915997
commit
d06db9eb4f
|
@ -10,8 +10,14 @@ static const char *fonts[] = {
|
|||
static const char *colors[SchemeLast][2] = {
|
||||
/* fg bg */
|
||||
[SchemeNorm] = { "#bbbbbb", "#132a33" },
|
||||
[SchemeNormShift] = { "#008ac0", "#132a33" },
|
||||
[SchemeNormABC] = { "#ffffff", "#14313d" },
|
||||
[SchemePress] = { "#ffffff", "#000000" },
|
||||
[SchemeNormABCShift] = { "#008ac0", "#14313d" },
|
||||
[SchemePress] = { "#ffffff", "#259937" },
|
||||
[SchemePressShift] = { "#00c001", "#259937" },
|
||||
[SchemeHighlight] = { "#58a7c6", "#005577" },
|
||||
[SchemeHighlightShift] = { "#008ac0", "#005577" },
|
||||
[SchemeOverlay] = { "#ffffff", "#2b3313" },
|
||||
[SchemeOverlayShift] = { "#008ac0", "#2b3313" },
|
||||
};
|
||||
|
||||
|
|
|
@ -1,550 +1,549 @@
|
|||
#define KEYS 55
|
||||
|
||||
static Key keys_en[KEYS] = {
|
||||
{ "Esc", XK_Escape, 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 },
|
||||
{ "Esc", "", XK_Escape, 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 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ 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_apostrophe, 1 },
|
||||
{ 0, 0, XK_q, 1 },
|
||||
{ 0, 0, XK_w, 1 },
|
||||
{ 0, 0, XK_e, 1 },
|
||||
{ 0, 0, XK_r, 1 },
|
||||
{ 0, 0, XK_t, 1 },
|
||||
{ 0, 0, XK_y, 1 },
|
||||
{ 0, 0, XK_u, 1 },
|
||||
{ 0, 0, XK_i, 1 },
|
||||
{ 0, 0, XK_o, 1 },
|
||||
{ 0, 0, XK_p, 1 },
|
||||
{ "'", "\"", XK_apostrophe, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ 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_slash, 1 },
|
||||
{ "Tab", XK_Tab, 1 },
|
||||
{ 0, 0, XK_a, 1 },
|
||||
{ 0, 0, XK_s, 1 },
|
||||
{ 0, 0, XK_d, 1 },
|
||||
{ 0, 0, XK_f, 1 },
|
||||
{ 0, 0, XK_g, 1 },
|
||||
{ 0, 0, XK_h, 1 },
|
||||
{ 0, 0, XK_j, 1 },
|
||||
{ 0, 0, XK_k, 1 },
|
||||
{ 0, 0, XK_l, 1 },
|
||||
{ "/", "?", XK_slash, 1 },
|
||||
{ "Tab", 0, XK_Tab, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ 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_comma, 1 },
|
||||
{ ".>", XK_period, 1 },
|
||||
{ "⌫Bksp", XK_BackSpace, 2 },
|
||||
{ 0, 0, XK_z, 1 },
|
||||
{ 0, 0, XK_x, 1 },
|
||||
{ 0, 0, XK_c, 1 },
|
||||
{ 0, 0, XK_v, 1 },
|
||||
{ 0, 0, XK_b, 1 },
|
||||
{ 0, 0, XK_n, 1 },
|
||||
{ 0, 0, XK_m, 1 },
|
||||
{ ",", "<", XK_comma, 1 },
|
||||
{ ".", ">", XK_period, 1 },
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 2 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "Shift", XK_Shift_L, 2 },
|
||||
{ "Ctrl", XK_Control_L, 1 },
|
||||
{ "Alt", XK_Alt_L, 1 },
|
||||
{ "", XK_space, 2 },
|
||||
{ "↓", XK_Down, 1 },
|
||||
{ "↑", XK_Up, 1 },
|
||||
{ "↲ Enter", XK_Return, 2 },
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "Shift", 0, XK_Shift_L, 2 },
|
||||
{ "Ctrl", 0, XK_Control_L, 1 },
|
||||
{ "Alt", 0, XK_Alt_L, 1 },
|
||||
{ "", 0, XK_space, 2 },
|
||||
{ "↓", 0, XK_Down, 1 },
|
||||
{ "↑", 0, XK_Up, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 2 },
|
||||
};
|
||||
|
||||
#define OVERLAYS 197
|
||||
static Key overlay[OVERLAYS] = {
|
||||
{ 0, XK_a }, //Overlay for a
|
||||
{ 0, 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_agrave },
|
||||
{ "á", 0, XK_aacute },
|
||||
{ "â", 0, XK_acircumflex },
|
||||
{ "ä", 0, XK_adiaeresis },
|
||||
{ "ą", 0, XK_aogonek },
|
||||
{ "ã", 0, XK_atilde },
|
||||
{ "ā", 0, XK_amacron },
|
||||
{ "ă", 0, XK_abreve },
|
||||
{ "å", 0, XK_aring },
|
||||
{ "æ", 0, XK_ae },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_e }, //Overlay for e (first item after boundary defines the trigger)
|
||||
{ 0, 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_egrave },
|
||||
{ "é", 0, XK_eacute },
|
||||
{ "ê", 0, XK_ecircumflex },
|
||||
{ "ë", 0, XK_ediaeresis },
|
||||
{ "ę", 0, XK_eogonek },
|
||||
{ "ē", 0, XK_emacron },
|
||||
{ "ė", 0, XK_eabovedot },
|
||||
{ 0, 0, XK_Cancel },
|
||||
//--
|
||||
{ 0, XK_y }, //New overlay
|
||||
{ 0, 0, XK_y }, //New overlay
|
||||
//---
|
||||
{ "ỳ", XK_ygrave },
|
||||
{ "ý", XK_yacute },
|
||||
{ "ŷ", XK_ycircumflex },
|
||||
{ "ÿ", XK_ydiaeresis },
|
||||
{ 0, XK_Cancel },
|
||||
{ "ỳ", 0, XK_ygrave },
|
||||
{ "ý", 0, XK_yacute },
|
||||
{ "ŷ", 0, XK_ycircumflex },
|
||||
{ "ÿ", 0, XK_ydiaeresis },
|
||||
{ 0, 0, XK_Cancel },
|
||||
//--
|
||||
{ 0, XK_u }, //New overlay
|
||||
{ 0, 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_ugrave },
|
||||
{ "ú", 0, XK_uacute },
|
||||
{ "û", 0, XK_ucircumflex },
|
||||
{ "ü", 0, XK_udiaeresis },
|
||||
{ "ų", 0, XK_uogonek },
|
||||
{ "ū", 0, XK_umacron },
|
||||
{ "ů", 0, XK_uring},
|
||||
{ "ŭ", 0, XK_ubreve},
|
||||
{ "ű", 0, XK_udoubleacute },
|
||||
{ 0, 0, XK_Cancel },
|
||||
//--
|
||||
{ 0, XK_i }, //New overlay
|
||||
{ 0, 0, XK_i }, //New overlay
|
||||
//---
|
||||
{ "ì", XK_igrave },
|
||||
{ "í", XK_iacute },
|
||||
{ "î", XK_icircumflex },
|
||||
{ "ï", XK_idiaeresis },
|
||||
{ "į", XK_iogonek },
|
||||
{ "ī", XK_imacron },
|
||||
{ "ı", XK_idotless },
|
||||
{ 0, XK_Cancel },
|
||||
{ "ì", 0, XK_igrave },
|
||||
{ "í", 0, XK_iacute },
|
||||
{ "î", 0, XK_icircumflex },
|
||||
{ "ï", 0, XK_idiaeresis },
|
||||
{ "į", 0, XK_iogonek },
|
||||
{ "ī", 0, XK_imacron },
|
||||
{ "ı", 0, XK_idotless },
|
||||
{ 0, 0, XK_Cancel },
|
||||
//--
|
||||
{ 0, XK_o }, //New overlay
|
||||
{ 0, 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_ograve },
|
||||
{ "ó", 0, XK_oacute },
|
||||
{ "ô", 0, XK_ocircumflex },
|
||||
{ "ö", 0, XK_odiaeresis },
|
||||
{ "ǫ", 0, XK_ogonek },
|
||||
{ "õ", 0, XK_otilde },
|
||||
{ "ō", 0, XK_omacron },
|
||||
{ "ø", 0, XK_oslash },
|
||||
{ "ő", 0, XK_odoubleacute },
|
||||
{ "œ", 0, XK_oe },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_d }, //New overlay
|
||||
{ 0, 0, XK_d }, //New overlay
|
||||
//---
|
||||
{ "ď", XK_dcaron },
|
||||
{ "ð", XK_eth },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ď", 0, XK_dcaron },
|
||||
{ "ð", 0, XK_eth },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_c }, //New overlay
|
||||
{ 0, 0, XK_c }, //New overlay
|
||||
//---
|
||||
{ "ç", XK_ccedilla },
|
||||
{ "ĉ", XK_ccircumflex },
|
||||
{ "č", XK_ccaron },
|
||||
{ "ć", XK_cacute },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ç", 0, XK_ccedilla },
|
||||
{ "ĉ", 0, XK_ccircumflex },
|
||||
{ "č", 0, XK_ccaron },
|
||||
{ "ć", 0, XK_cacute },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_s }, //New overlay
|
||||
{ 0, 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_scedilla },
|
||||
{ "ŝ", 0, XK_scircumflex },
|
||||
{ "š", 0, XK_scaron },
|
||||
{ "ś", 0, XK_sacute },
|
||||
{ "ß", 0, XK_ssharp },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_z }, //New overlay
|
||||
{ 0, 0, XK_z }, //New overlay
|
||||
//---
|
||||
{ "ž", XK_zcaron },
|
||||
{ "ż", XK_zabovedot },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ž", 0, XK_zcaron },
|
||||
{ "ż", 0, XK_zabovedot },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_n }, //New overlay
|
||||
{ 0, 0, XK_n }, //New overlay
|
||||
//---
|
||||
{ "ñ", XK_ntilde },
|
||||
{ "ń", XK_nacute },
|
||||
{ "ň", XK_ncaron },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ñ", 0, XK_ntilde },
|
||||
{ "ń", 0, XK_nacute },
|
||||
{ "ň", 0, XK_ncaron },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//
|
||||
{ 0, XK_t }, //New overlay
|
||||
{ 0, 0, XK_t }, //New overlay
|
||||
//---
|
||||
{ "ț", XK_tcedilla },
|
||||
{ "ť", XK_tcaron },
|
||||
{ "þ", XK_thorn },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ț", 0, XK_tcedilla },
|
||||
{ "ť", 0, XK_tcaron },
|
||||
{ "þ", 0, XK_thorn },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//----
|
||||
{ 0, XK_g }, //New overlay
|
||||
{ 0, 0, XK_g }, //New overlay
|
||||
//---
|
||||
{ "ĝ", XK_gcircumflex },
|
||||
{ "ğ", XK_gbreve },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ĝ", 0, XK_gcircumflex },
|
||||
{ "ğ", 0, XK_gbreve },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//
|
||||
{ 0, XK_h }, //New overlay
|
||||
{ 0, 0, XK_h }, //New overlay
|
||||
//---
|
||||
{ "ĥ", XK_hcircumflex },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ĥ", 0, XK_hcircumflex },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//
|
||||
{ 0, XK_j }, //New overlay
|
||||
{ 0, 0, XK_j }, //New overlay
|
||||
//---
|
||||
{ "ĵ", XK_jcircumflex },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ĵ", 0, XK_jcircumflex },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_l }, //New overlay
|
||||
{ 0, 0, XK_l }, //New overlay
|
||||
//---
|
||||
{ "ł", XK_lstroke },
|
||||
{ "ľ", XK_lcaron },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ł", 0, XK_lstroke },
|
||||
{ "ľ", 0, XK_lcaron },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ 0, XK_r }, //New overlay
|
||||
{ 0, 0, XK_r }, //New overlay
|
||||
//---
|
||||
{ "ř", XK_rcaron },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ř", 0, XK_rcaron },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_softsign }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_softsign }, //New overlay
|
||||
//---
|
||||
{ "ъ", XK_Cyrillic_hardsign },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ъ", 0, XK_Cyrillic_hardsign },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_ie }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_ie }, //New overlay
|
||||
//---
|
||||
{ "ё", XK_Cyrillic_io },
|
||||
{ "э", XK_Cyrillic_e },
|
||||
{ "Є", XK_Ukrainian_ie },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ё", 0, XK_Cyrillic_io },
|
||||
{ "э", 0, XK_Cyrillic_e },
|
||||
{ "Є", 0, XK_Ukrainian_ie },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_i }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_i }, //New overlay
|
||||
//---
|
||||
{ "і", XK_Ukrainian_i },
|
||||
{ "ї", XK_Ukrainian_yi },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "і", 0, XK_Ukrainian_i },
|
||||
{ "ї", 0, XK_Ukrainian_yi },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_u }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_u }, //New overlay
|
||||
//---
|
||||
{ "ў", XK_Byelorussian_shortu },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ў", 0, XK_Byelorussian_shortu },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_shorti }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_shorti }, //New overlay
|
||||
//---
|
||||
{ "ј", XK_Cyrillic_je },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ј", 0, XK_Cyrillic_je },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_el }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_el }, //New overlay
|
||||
//---
|
||||
{ "љ", XK_Cyrillic_lje },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "љ", 0, XK_Cyrillic_lje },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_en }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_en }, //New overlay
|
||||
//---
|
||||
{ "њ", XK_Cyrillic_nje },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "њ", 0, XK_Cyrillic_nje },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_tse }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_tse }, //New overlay
|
||||
//---
|
||||
{ "џ", XK_Cyrillic_dzhe },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "џ", 0, XK_Cyrillic_dzhe },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ 0, XK_Cyrillic_che }, //New overlay
|
||||
{ 0, 0, XK_Cyrillic_che }, //New overlay
|
||||
//---
|
||||
{ "ћ", XK_Serbian_tshe },
|
||||
{ "ђ", XK_Serbian_dje },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "ћ", 0, XK_Serbian_tshe },
|
||||
{ "ђ", 0, XK_Serbian_dje },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//---
|
||||
{ "🙂", 0x101f642 }, //emoji overlay
|
||||
{ "🙂", 0, 0x101f642 }, //emoji overlay
|
||||
//---
|
||||
{ "😀", 0x101f600 },
|
||||
{ "😁", 0x101f601 },
|
||||
{ "😂", 0x101f602 },
|
||||
{ "😃", 0x101f603 },
|
||||
{ "😄", 0x101f604 },
|
||||
{ "😅", 0x101f605 },
|
||||
{ "😆", 0x101f606 },
|
||||
{ "😇", 0x101f607 },
|
||||
{ "😈", 0x101f608 },
|
||||
{ "😉", 0x101f609 },
|
||||
{ "😊", 0x101f60a },
|
||||
{ "😋", 0x101f60b },
|
||||
{ "😌", 0x101f60c },
|
||||
{ "😍", 0x101f60d },
|
||||
{ "😎", 0x101f60e },
|
||||
{ "😏", 0x101f60f },
|
||||
{ "😐", 0x101f610 },
|
||||
{ "😒", 0x101f612 },
|
||||
{ "😓", 0x101f613 },
|
||||
{ "😛", 0x101f61b },
|
||||
{ "😮", 0x101f62e },
|
||||
{ "😟", 0x101f61f },
|
||||
{ "😟", 0x101f620 },
|
||||
{ "😢", 0x101f622 },
|
||||
{ "😭", 0x101f62d },
|
||||
{ "😳", 0x101f633 },
|
||||
{ "😴", 0x101f634 },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "😀", 0, 0x101f600 },
|
||||
{ "😁", 0, 0x101f601 },
|
||||
{ "😂", 0, 0x101f602 },
|
||||
{ "😃", 0, 0x101f603 },
|
||||
{ "😄", 0, 0x101f604 },
|
||||
{ "😅", 0, 0x101f605 },
|
||||
{ "😆", 0, 0x101f606 },
|
||||
{ "😇", 0, 0x101f607 },
|
||||
{ "😈", 0, 0x101f608 },
|
||||
{ "😉", 0, 0x101f609 },
|
||||
{ "😊", 0, 0x101f60a },
|
||||
{ "😋", 0, 0x101f60b },
|
||||
{ "😌", 0, 0x101f60c },
|
||||
{ "😍", 0, 0x101f60d },
|
||||
{ "😎", 0, 0x101f60e },
|
||||
{ "😏", 0, 0x101f60f },
|
||||
{ "😐", 0, 0x101f610 },
|
||||
{ "😒", 0, 0x101f612 },
|
||||
{ "😓", 0, 0x101f613 },
|
||||
{ "😛", 0, 0x101f61b },
|
||||
{ "😮", 0, 0x101f62e },
|
||||
{ "😟", 0, 0x101f61f },
|
||||
{ "😟", 0, 0x101f620 },
|
||||
{ "😢", 0, 0x101f622 },
|
||||
{ "😭", 0, 0x101f62d },
|
||||
{ "😳", 0, 0x101f633 },
|
||||
{ "😴", 0, 0x101f634 },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
//--
|
||||
{ "/?", XK_slash }, //punctuation overlay
|
||||
{ "/?", 0, XK_slash }, //punctuation overlay
|
||||
//--
|
||||
{ "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_apostrophe, 1 },
|
||||
{ "`~", XK_grave, 1 },
|
||||
{ "-_", XK_minus, 1 },
|
||||
{ "=+", XK_plus, 1 },
|
||||
{ "[{", XK_bracketleft, 1 },
|
||||
{ "]}", XK_bracketright, 1 },
|
||||
{ ",<", XK_comma, 1 },
|
||||
{ ".>", XK_period, 1 },
|
||||
{ "/?", XK_slash, 1 },
|
||||
{ "\\|", XK_backslash, 1 },
|
||||
{ "¡", XK_exclamdown, 1 },
|
||||
{ "?", XK_questiondown, 1 },
|
||||
{ "°", XK_degree, 1 },
|
||||
{ "£", XK_sterling, 1 },
|
||||
{ "€", XK_EuroSign, 1 },
|
||||
{ "¥", XK_yen, 1 },
|
||||
{ ";:", XK_colon, 1 },
|
||||
{ 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
{ "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_apostrophe, 1 },
|
||||
{ "`", "~", XK_grave, 1 },
|
||||
{ "-", "_", XK_minus, 1 },
|
||||
{ "=", "+", XK_plus, 1 },
|
||||
{ "[", "{", XK_bracketleft, 1 },
|
||||
{ "]", "}", XK_bracketright, 1 },
|
||||
{ ",", "<", XK_comma, 1 },
|
||||
{ ".", ">", XK_period, 1 },
|
||||
{ "/", "?", XK_slash, 1 },
|
||||
{ "\\", "|", XK_backslash, 1 },
|
||||
{ "¡", 0, XK_exclamdown, 1 },
|
||||
{ "?", 0, XK_questiondown, 1 },
|
||||
{ "°", 0, XK_degree, 1 },
|
||||
{ "£", 0, XK_sterling, 1 },
|
||||
{ "€", 0, XK_EuroSign, 1 },
|
||||
{ "¥", 0, XK_yen, 1 },
|
||||
{ ";", ":", XK_colon, 1 },
|
||||
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies overlay boundary */
|
||||
};
|
||||
|
||||
static Key keys_symbols[KEYS] = {
|
||||
{ "Esc", XK_Escape, 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 },
|
||||
{ "Esc", 0, XK_Escape, 1 },
|
||||
{ "F1", 0, XK_F1, 1 },
|
||||
{ "F2", 0, XK_F2, 1 },
|
||||
{ "F3", 0, XK_F3, 1 },
|
||||
{ "F4", 0, XK_F4, 1 },
|
||||
{ "F5", 0, XK_F5, 1 },
|
||||
{ "F6", 0, XK_F6, 1 },
|
||||
{ "F7", 0, XK_F7, 1 },
|
||||
{ "F8", 0, XK_F8, 1 },
|
||||
{ "F9", 0, XK_F9, 1 },
|
||||
{ "F10", 0, XK_F10, 1 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "'\"", XK_apostrophe, 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 },
|
||||
{ "'\"", 0, XK_apostrophe, 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 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ ".>", XK_period, 1 },
|
||||
{ ",<", XK_comma, 1 },
|
||||
{ "`~", XK_grave, 1 },
|
||||
{ "-_", XK_minus, 1 },
|
||||
{ "=+", XK_plus, 1 },
|
||||
{ "\\|", XK_backslash, 1 },
|
||||
{ ";:", XK_colon, 1 },
|
||||
{ "/?", XK_slash, 1 },
|
||||
{ "[{", XK_bracketleft, 1 },
|
||||
{ "]}", XK_bracketright, 1 },
|
||||
{ "Del", XK_Delete, 1 },
|
||||
{ ".", ">", XK_period, 1 },
|
||||
{ ",", "<", XK_comma, 1 },
|
||||
{ "`", "~", XK_grave, 1 },
|
||||
{ "-", "_", XK_minus, 1 },
|
||||
{ "=", "+", XK_plus, 1 },
|
||||
{ "\\", "|", XK_backslash, 1 },
|
||||
{ ";", ":", XK_colon, 1 },
|
||||
{ "/", "?", XK_slash, 1 },
|
||||
{ "[", "{", XK_bracketleft, 1 },
|
||||
{ "]", "}", XK_bracketright, 1 },
|
||||
{ "Del", 0, XK_Delete, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "abc", XK_Mode_switch, 1 },
|
||||
{ "☺", 0x101f642, 1 },
|
||||
{ "⇤", XK_Home, 1 },
|
||||
{ "←", XK_Left, 1 },
|
||||
{ "→", XK_Right, 1 },
|
||||
{ "⇥", XK_End, 1 },
|
||||
{ "⇊", XK_Next, 1 },
|
||||
{ "⇈", XK_Prior, 1 },
|
||||
{ "Tab", XK_Tab, 1 },
|
||||
{ "⌫Bksp", XK_BackSpace, 2 },
|
||||
{ "abc", 0, XK_Mode_switch, 1 },
|
||||
{ "☺", 0, 0x101f642, 1 },
|
||||
{ "⇤", 0, XK_Home, 1 },
|
||||
{ "←", 0, XK_Left, 1 },
|
||||
{ "→", 0, XK_Right, 1 },
|
||||
{ "⇥", 0, XK_End, 1 },
|
||||
{ "⇊", 0, XK_Next, 1 },
|
||||
{ "⇈", 0, XK_Prior, 1 },
|
||||
{ "Tab", 0, XK_Tab, 1 },
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 2 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "Shift", XK_Shift_L, 2 },
|
||||
{ "Ctrl", XK_Control_L, 1 },
|
||||
{ "Alt", XK_Alt_L, 1 },
|
||||
{ "", XK_space, 2 },
|
||||
{ "↓", XK_Down, 1 },
|
||||
{ "↑", XK_Up, 1 },
|
||||
{ "↲ Enter", XK_Return, 2 },
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "Shift", 0, XK_Shift_L, 2 },
|
||||
{ "Ctrl", 0, XK_Control_L, 1 },
|
||||
{ "Alt", 0, XK_Alt_L, 1 },
|
||||
{ "", 0, XK_space, 2 },
|
||||
{ "↓", 0, XK_Down, 1 },
|
||||
{ "↑", 0, XK_Up, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 2 },
|
||||
};
|
||||
|
||||
static Key keys_functions[KEYS] = {
|
||||
|
||||
{ "Esc", XK_Escape, 1 },
|
||||
{ "▶", XF86XK_AudioPlay, 1 },
|
||||
{ "●", XF86XK_AudioRecord, 1 },
|
||||
{ "■", XF86XK_AudioStop, 1 },
|
||||
{ "◂◂", XF86XK_AudioPrev, 1 },
|
||||
{ "▸▸", XF86XK_AudioNext, 1 },
|
||||
{ "♫M", XF86XK_AudioMute, 1 },
|
||||
{ "♫-", XF86XK_AudioLowerVolume, 1 },
|
||||
{ "♫+", XF86XK_AudioRaiseVolume, 1 },
|
||||
{ "☀-", XF86XK_MonBrightnessDown, 1 },
|
||||
{ "☀+", XF86XK_MonBrightnessUp, 1 },
|
||||
{ "Esc", 0, XK_Escape, 1 },
|
||||
{ "▶", 0, XF86XK_AudioPlay, 1 },
|
||||
{ "●", 0, XF86XK_AudioRecord, 1 },
|
||||
{ "■", 0, XF86XK_AudioStop, 1 },
|
||||
{ "◂◂", 0, XF86XK_AudioPrev, 1 },
|
||||
{ "▸▸", 0, XF86XK_AudioNext, 1 },
|
||||
{ "♫M", 0, XF86XK_AudioMute, 1 },
|
||||
{ "♫-", 0, XF86XK_AudioLowerVolume, 1 },
|
||||
{ "♫+", 0, XF86XK_AudioRaiseVolume, 1 },
|
||||
{ "☀-", 0, XF86XK_MonBrightnessDown, 1 },
|
||||
{ "☀+", 0, XF86XK_MonBrightnessUp, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "≅", XK_KP_Insert, 1 },
|
||||
{ "Del", XK_Delete, 1 },
|
||||
{ "⇤", XK_Home, 1 },
|
||||
{ "←", XK_Left, 1 },
|
||||
{ "→", XK_Right, 1 },
|
||||
{ "⇥", XK_End, 1 },
|
||||
{ "⇊", XK_Next, 1 },
|
||||
{ "⇈", XK_Prior, 1 },
|
||||
{ "Tab", XK_Tab, 1 },
|
||||
{ "⌫Bksp", XK_BackSpace, 2 },
|
||||
{ "≅", 0, XK_KP_Insert, 1 },
|
||||
{ "Del", 0, XK_Delete, 1 },
|
||||
{ "⇤", 0, XK_Home, 1 },
|
||||
{ "←", 0, XK_Left, 1 },
|
||||
{ "→", 0, XK_Right, 1 },
|
||||
{ "⇥", 0, XK_End, 1 },
|
||||
{ "⇊", 0, XK_Next, 1 },
|
||||
{ "⇈", 0, XK_Prior, 1 },
|
||||
{ "Tab", 0, XK_Tab, 1 },
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 2 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "Shift", XK_Shift_L, 2 },
|
||||
{ "Ctrl", XK_Control_L, 1 },
|
||||
{ "Alt", XK_Alt_L, 1 },
|
||||
{ "", XK_space, 2 },
|
||||
{ "↓", XK_Down, 1 },
|
||||
{ "↑", XK_Up, 1 },
|
||||
{ "↲ Enter", XK_Return, 2 },
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "Shift", 0, XK_Shift_L, 2 },
|
||||
{ "Ctrl", 0, XK_Control_L, 1 },
|
||||
{ "Alt", 0, XK_Alt_L, 1 },
|
||||
{ "", 0, XK_space, 2 },
|
||||
{ "↓", 0, XK_Down, 1 },
|
||||
{ "↑", 0, XK_Up, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 2 },
|
||||
|
||||
{ 0 }, /* Last item (double 0) */
|
||||
{ 0 }, /* Last item (double 0) */
|
||||
};
|
||||
|
||||
static Key keys_navigation[KEYS] = {
|
||||
{ "Esc", XK_Escape, 1 },
|
||||
{ "⇤", XK_Home, 1 },
|
||||
{ "↑", XK_Up, 1 },
|
||||
{ "⇥", XK_End, 1 },
|
||||
{ "⇈", XK_Prior, 1 },
|
||||
{ "Esc", 0, XK_Escape, 1 },
|
||||
{ "⇤", 0, XK_Home, 1 },
|
||||
{ "↑", 0, XK_Up, 1 },
|
||||
{ "⇥", 0, XK_End, 1 },
|
||||
{ "⇈", 0, XK_Prior, 1 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "Shift", XK_Shift_L, 1 },
|
||||
{ "←", XK_Left, 1 },
|
||||
{ "", XK_space, 1 },
|
||||
{ "→", XK_Right, 1 },
|
||||
{ "⇊", XK_Next, 1 },
|
||||
{ "Shift", 0, XK_Shift_L, 1 },
|
||||
{ "←", 0, XK_Left, 1 },
|
||||
{ "", 0, XK_space, 1 },
|
||||
{ "→", 0, XK_Right, 1 },
|
||||
{ "⇊", 0, XK_Next, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "⌫Bksp", XK_BackSpace, 1 },
|
||||
{ "↓", XK_Down, 1 },
|
||||
{ "Tab", XK_Tab, 1 },
|
||||
{ "↲ Enter", XK_Return, 1},
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 1 },
|
||||
{ "↓", 0, XK_Down, 1 },
|
||||
{ "Tab", 0, XK_Tab, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 1},
|
||||
{ 0 }, /* Last item (double 0) */
|
||||
{ 0 }, /* Last item (double 0) */
|
||||
};
|
||||
|
||||
|
||||
static Key keys_ru[KEYS] = {
|
||||
{ "Esc", XK_Escape, 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 },
|
||||
{ "Esc", 0, XK_Escape, 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 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "й", 0, XK_Cyrillic_shorti, 1 },
|
||||
{ "ц", 0, XK_Cyrillic_tse, 1 },
|
||||
{ "у", 0, XK_Cyrillic_u, 1 },
|
||||
{ "к", 0, XK_Cyrillic_ka, 1 },
|
||||
{ "е", 0, XK_Cyrillic_ie, 1 },
|
||||
{ "н", 0, XK_Cyrillic_en, 1 },
|
||||
{ "г", 0, XK_Cyrillic_ghe, 1 },
|
||||
{ "ш", 0, XK_Cyrillic_sha, 1 },
|
||||
{ "щ", 0, XK_Cyrillic_shcha, 1 },
|
||||
{ "з", 0, XK_Cyrillic_ze, 1 },
|
||||
{ "х", 0, XK_Cyrillic_ha, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "й", 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_ha, 1 },
|
||||
{ "ф", 0, XK_Cyrillic_ef, 1 },
|
||||
{ "ы", 0, XK_Cyrillic_yeru, 1 },
|
||||
{ "в", 0, XK_Cyrillic_ve, 1 },
|
||||
{ "а", 0, XK_Cyrillic_a, 1 },
|
||||
{ "п", 0, XK_Cyrillic_pe, 1 },
|
||||
{ "р", 0, XK_Cyrillic_er, 1 },
|
||||
{ "о", 0, XK_Cyrillic_o, 1 },
|
||||
{ "л", 0, XK_Cyrillic_el, 1 },
|
||||
{ "д", 0, XK_Cyrillic_de, 1 },
|
||||
{ "ж", 0, XK_Cyrillic_zhe, 1 },
|
||||
{ "ю", 0, XK_Cyrillic_yu, 1 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "ф", 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 },
|
||||
{ "123", 0, XK_Mode_switch, 1 },
|
||||
{ "я", 0, XK_Cyrillic_ya, 1 },
|
||||
{ "ч", 0, XK_Cyrillic_che, 1 },
|
||||
{ "с", 0, XK_Cyrillic_es, 1 },
|
||||
{ "м", 0, XK_Cyrillic_em, 1 },
|
||||
{ "и", 0, XK_Cyrillic_i, 1 },
|
||||
{ "т", 0, XK_Cyrillic_te, 1 },
|
||||
{ "ь", 0, XK_Cyrillic_softsign, 1 },
|
||||
{ "б", 0, XK_Cyrillic_be, 1 },
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 2 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "123", XK_Mode_switch, 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 },
|
||||
{ "⌫Bksp", XK_BackSpace, 2 },
|
||||
|
||||
{ 0 }, /* New row */
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "Shift", XK_Shift_L, 2 },
|
||||
{ "Ctrl", XK_Control_L, 1 },
|
||||
{ "Alt", XK_Alt_L, 1 },
|
||||
{ "", XK_space, 2 },
|
||||
{ "↓", XK_Down, 1 },
|
||||
{ "↑", XK_Up, 1 },
|
||||
{ "↲ Enter", XK_Return, 2 },
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "Shift", 0, XK_Shift_L, 2 },
|
||||
{ "Ctrl", 0, XK_Control_L, 1 },
|
||||
{ "Alt", 0, XK_Alt_L, 1 },
|
||||
{ "", 0, XK_space, 2 },
|
||||
{ "↓", 0, XK_Down, 1 },
|
||||
{ "↑", 0, XK_Up, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 2 },
|
||||
};
|
||||
|
||||
static Key keys_dialer[KEYS] = {
|
||||
{ "Esc", XK_Escape, 1 },
|
||||
{ "1!", XK_1, 1 },
|
||||
{ "2@", XK_2, 1 },
|
||||
{ "3#", XK_3, 1 },
|
||||
{ "⌫Bksp", XK_BackSpace, 2 },
|
||||
{ "Esc", 0, XK_Escape, 1 },
|
||||
{ "1", "!" , XK_1, 1 },
|
||||
{ "2", "@", XK_2, 1 },
|
||||
{ "3", "#", XK_3, 1 },
|
||||
{ "⌫Bksp", 0, XK_BackSpace, 2 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "Shift", XK_Shift_L, 1 },
|
||||
{ "4$", XK_4, 1 },
|
||||
{ "5%", XK_5, 1 },
|
||||
{ "6^", XK_6, 1 },
|
||||
{ "-_", XK_minus, 1 },
|
||||
{ ",<", XK_comma, 1 },
|
||||
{ "Shift", 0, XK_Shift_L, 1 },
|
||||
{ "4", "$", XK_4, 1 },
|
||||
{ "5", "%", XK_5, 1 },
|
||||
{ "6", "^", XK_6, 1 },
|
||||
{ "-", "_", XK_minus, 1 },
|
||||
{ ",", "<", XK_comma, 1 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "abc", XK_Mode_switch, 1 },
|
||||
{ "7&", XK_7, 1 },
|
||||
{ "8*", XK_8, 1 },
|
||||
{ "9(", XK_9, 1 },
|
||||
{ "=+", XK_equal, 1 },
|
||||
{ "/?", XK_slash, 1 },
|
||||
{ "abc", 0, XK_Mode_switch, 1 },
|
||||
{ "7", "&", XK_7, 1 },
|
||||
{ "8", "*", XK_8, 1 },
|
||||
{ "9", "(", XK_9, 1 },
|
||||
{ "=", "+", XK_equal, 1 },
|
||||
{ "/", "?", XK_slash, 1 },
|
||||
{ 0 }, /* New row */
|
||||
|
||||
{ "↺", XK_Cancel, 1},
|
||||
{ "", XK_space, 1 },
|
||||
{ "0)", XK_0, 1 },
|
||||
{ ".>", XK_period, 1 },
|
||||
{ "↲ Enter", XK_Return, 2},
|
||||
{ "↺", 0, XK_Cancel, 1},
|
||||
{ "", 0, XK_space, 1 },
|
||||
{ "0", ")", XK_0, 1 },
|
||||
{ ".", ">", XK_period, 1 },
|
||||
{ "↲ Enter", 0, XK_Return, 2},
|
||||
{ 0 }, /* New row */
|
||||
{ 0 }, /* Last item (double 0) */
|
||||
};
|
||||
|
|
37
svkbd.c
37
svkbd.c
|
@ -33,12 +33,13 @@
|
|||
#define STRINGTOKEYSYM(X) (XStringToKeySym(X))
|
||||
|
||||
/* enums */
|
||||
enum { SchemeNorm, SchemeNormABC, SchemePress, SchemeHighlight, SchemeOverlay, SchemeLast };
|
||||
enum { SchemeNorm, SchemeNormABC, SchemeNormABCShift, SchemeNormShift, SchemePress, SchemePressShift, SchemeHighlight, SchemeHighlightShift, SchemeOverlay, SchemeOverlayShift, SchemeLast };
|
||||
enum { NetWMWindowType, NetLast };
|
||||
|
||||
/* typedefs */
|
||||
typedef struct {
|
||||
char *label;
|
||||
char *label2;
|
||||
KeySym keysym;
|
||||
unsigned int width;
|
||||
KeySym modifier;
|
||||
|
@ -303,20 +304,25 @@ void
|
|||
drawkey(Key *k, int idx)
|
||||
{
|
||||
int x, y, w, h;
|
||||
int x2, y2, w2, h2;
|
||||
const char *l;
|
||||
|
||||
int use_scheme = SchemeNorm;
|
||||
|
||||
if (k->pressed)
|
||||
drw_setscheme(drw, scheme[SchemePress]);
|
||||
use_scheme = SchemePress;
|
||||
else if (k->highlighted)
|
||||
drw_setscheme(drw, scheme[SchemeHighlight]);
|
||||
use_scheme = SchemeHighlight;
|
||||
else if (idx < overlaykeycount)
|
||||
drw_setscheme(drw, scheme[SchemeOverlay]);
|
||||
use_scheme = SchemeOverlay;
|
||||
else if ((k->keysym == XK_Return) ||
|
||||
((k->keysym >= XK_a) && (k->keysym <= XK_z)) ||
|
||||
((k->keysym >= XK_Cyrillic_io) && (k->keysym <= XK_Cyrillic_hardsign)))
|
||||
drw_setscheme(drw, scheme[SchemeNormABC]);
|
||||
use_scheme = SchemeNormABC;
|
||||
else
|
||||
drw_setscheme(drw, scheme[SchemeNorm]);
|
||||
use_scheme = SchemeNorm;
|
||||
|
||||
drw_setscheme(drw, scheme[use_scheme]);
|
||||
drw_rect(drw, k->x, k->y, k->w, k->h, 1, 1);
|
||||
|
||||
if (k->keysym == XK_KP_Insert) {
|
||||
|
@ -335,6 +341,24 @@ drawkey(Key *k, int idx)
|
|||
w = TEXTW(l);
|
||||
x = k->x + (k->w / 2) - (w / 2);
|
||||
drw_text(drw, x, y, w, h, 0, l, 0);
|
||||
if (k->label2) {
|
||||
if (use_scheme == SchemeNorm)
|
||||
use_scheme = SchemeNormShift;
|
||||
else if (use_scheme == SchemeNormABC)
|
||||
use_scheme = SchemeNormABCShift;
|
||||
else if (use_scheme == SchemePress)
|
||||
use_scheme = SchemePressShift;
|
||||
else if (use_scheme == SchemeHighlight)
|
||||
use_scheme = SchemeHighlightShift;
|
||||
else if (use_scheme == SchemeOverlay)
|
||||
use_scheme = SchemeOverlayShift;
|
||||
drw_setscheme(drw, scheme[use_scheme]);
|
||||
x += w;
|
||||
y -= 15;
|
||||
l = k->label2;
|
||||
w = TEXTW(l);
|
||||
drw_text(drw, x, y, w, h, 0, l, 0);
|
||||
}
|
||||
drw_map(drw, win, k->x, k->y, k->w, k->h);
|
||||
}
|
||||
|
||||
|
@ -882,6 +906,7 @@ showoverlay(int idx)
|
|||
if (overlay[i].width)
|
||||
j += overlay[i].width;
|
||||
keys[j].label = overlay[i].label;
|
||||
keys[j].label2 = overlay[i].label2;
|
||||
keys[j].keysym = overlay[i].keysym;
|
||||
keys[j].modifier = overlay[i].modifier;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue