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
|
/*
* ## SPANISH KEYBOARD LAYOUT ## *
*
*/
#ifndef __EVS_MAP_ES
#define __EVS_MAP_ES
// Right Alt (ALTGR) map
#define EVS_ALTGR_ENABLED
#define EVS_ALTGR_BIND(KEY, VALUE) kmap_insert(akm, (KEY), (VALUE))
static struct kmap *akm;
static void init_altgrmap(void)
{
akm = kmap_create();
EVS_ALTGR_BIND(KEY_1, "|");
EVS_ALTGR_BIND(KEY_2, "@");
EVS_ALTGR_BIND(KEY_3, "#");
EVS_ALTGR_BIND(KEY_4, "~");
// EVS_ALTGR_BIND(KEY_5, "½"); // TODO enable
// EVS_ALTGR_BIND(KEY_6, "¬"); // TODO enable
EVS_ALTGR_BIND(KEY_7, "{");
EVS_ALTGR_BIND(KEY_8, "[");
EVS_ALTGR_BIND(KEY_9, "]");
EVS_ALTGR_BIND(KEY_0, "}");
EVS_ALTGR_BIND(KEY_MINUS, "\\");
EVS_ALTGR_BIND(KEY_EQUAL, "~");
EVS_ALTGR_BIND(KEY_LEFTBRACE, "[");
EVS_ALTGR_BIND(KEY_RIGHTBRACE, "]");
EVS_ALTGR_BIND(KEY_SEMICOLON, "~");
EVS_ALTGR_BIND(KEY_APOSTROPHE, "{");
EVS_ALTGR_BIND(KEY_GRAVE, "}");
EVS_ALTGR_BIND(KEY_BACKSLASH, "}");
EVS_ALTGR_BIND(KEY_COMMA, "─");
// EVS_ALTGR_BIND(KEY_DOT, "·"); // TODO enable
EVS_ALTGR_BIND(KEY_102ND, "|");
}
static inline void exit_altgrmap(void)
{
kmap_destroy(akm);
}
// Shift map
#define EVS_SHIFT_BIND(KEY, VALUE) kmap_insert(skm, (KEY), (VALUE))
static struct kmap *skm;
static void init_shiftmap(void)
{
skm = kmap_create();
EVS_SHIFT_BIND(KEY_1, "!");
EVS_SHIFT_BIND(KEY_2, "\"");
EVS_SHIFT_BIND(KEY_4, "$");
EVS_SHIFT_BIND(KEY_5, "%");
EVS_SHIFT_BIND(KEY_6, "&");
EVS_SHIFT_BIND(KEY_7, "/");
EVS_SHIFT_BIND(KEY_8, "(");
EVS_SHIFT_BIND(KEY_9, ")");
EVS_SHIFT_BIND(KEY_0, "=");
EVS_SHIFT_BIND(KEY_MINUS, "?");
EVS_SHIFT_BIND(KEY_EQUAL, "?"); // TODO change to '¿'
EVS_SHIFT_BIND(KEY_LEFTBRACE, "^");
EVS_SHIFT_BIND(KEY_RIGHTBRACE, "*");
EVS_SHIFT_BIND(KEY_SEMICOLON, "N"); // TODO change to 'Ñ'
// EVS_SHIFT_BIND(KEY_GRAVE, "Ç"); // TODO enable
EVS_SHIFT_BIND(KEY_COMMA, ";");
EVS_SHIFT_BIND(KEY_DOT, ":");
EVS_SHIFT_BIND(KEY_SLASH, "_");
EVS_SHIFT_BIND(KEY_102ND, ">");
}
static inline void exit_shiftmap(void)
{
kmap_destroy(skm);
}
static char map[] = {
'.', '.', '1', '2', '3', // 0 // 1:ESC
'4', '5', '6', '7', '8', // 5
'9', '0', '\'', '!', '.', // 10 // 13:¡ (NOASCII) 14:BACKSPACE
'.', 'q', 'w', 'e', 'r', // 15 // 15:TAB
't', 'y', 'u', 'i', 'o', // 20
'p', '`', '+', '\n', '.', // 25 // 29:LCTRL
'a', 's', 'd', 'f', 'g', // 30
'h', 'j', 'k', 'l', 'n', // 35 // 39:ñ (NOASCII)
'\'', '.', '.', 'c', 'z', // 40 // 42:LMAYUS 43:ç (NOASCII)
'x', 'c', 'v', 'b', 'n', // 45
'm', ',', '.', '-', '.', // 50 // 52:. 54:RMAYUS
'*', '.', ' ', '.', '.', // 55 // 56:ALT 58:BLKMAYUS 59-68:F1-F10
'.', '.', '.', '.', '.', // 60
'.', '.', '.', '.', '.', // 65
'.', '7', '8', '9', '-', // 70
'4', '5', '6', '+', '1', // 75
'2', '3', '.', '.', '.', // 80
'.', '<', '.', '.', '.', // 85
'.', '.', '.', '.', '.', // 90
'.', '\n', '.', '/', '.', // 95 // 97:RCTRL
};
#endif // __EVS_MAP_ES
|