keys_config.h - ledit - Text editor (WIP)
HTML git clone git://lumidify.org/ledit.git (fast, but not encrypted)
HTML git clone https://lumidify.org/git/ledit.git (encrypted, but very slow)
HTML git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/ledit.git (over tor)
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
keys_config.h (6797B)
---
1 #ifndef _KEYS_CONFIG_H_
2 #define _KEYS_CONFIG_H_
3
4 #include "X11/Xlib.h"
5 #include "X11/keysym.h"
6
7 #include "common.h"
8 #include "keys.h"
9
10 /*********************************
11 * Key and command configuration *
12 *********************************/
13
14 char *language_default = "English (US)";
15
16 /* FIXME: binary search keys */
17 struct {
18 char *func_name;
19 char *text;
20 unsigned int mods;
21 KeySym keysym;
22 ledit_mode modes;
23 } basic_keys_default[] = {
24 {"delete-chars-backwards-multiline", NULL, 0, XK_BackSpace, INSERT},
25 {"cursor-left", NULL, 0, XK_Left, VISUAL|INSERT|NORMAL},
26 {"cursor-right", NULL, 0, XK_Right, VISUAL|INSERT|NORMAL},
27 {"cursor-up", NULL, 0, XK_Up, VISUAL|INSERT|NORMAL},
28 {"cursor-down", NULL, 0, XK_Down, VISUAL|INSERT|NORMAL},
29 {"break-line", NULL, XK_ANY_MOD, XK_Return, INSERT},
30 {"delete-chars-forwards-multiline", NULL, 0, XK_Delete, INSERT},
31 {"return-to-normal", NULL, 0, XK_Escape, NORMAL|VISUAL|INSERT},
32 {"enter-insert", "i", 0, 0, NORMAL|VISUAL},
33 {"cursor-left", "h", 0, 0, NORMAL|VISUAL},
34 {"cursor-left", "h", ControlMask, 0, NORMAL|VISUAL},
35 {"cursor-right", "l", 0, 0, NORMAL|VISUAL},
36 {"cursor-up", "k", 0, 0, NORMAL|VISUAL},
37 {"cursor-down", "j", 0, 0, NORMAL|VISUAL},
38 {"toggle-hard-line-based", "t", ControlMask, 0, NORMAL|VISUAL|INSERT},
39 {"cursor-right", NULL, 0, XK_space, NORMAL|VISUAL},
40 {"cursor-down", "j", ControlMask, 0, NORMAL|VISUAL},
41 {"cursor-down", "n", ControlMask, 0, NORMAL|VISUAL},
42 {"cursor-up", "p", ControlMask, 0, NORMAL|VISUAL},
43 {"key-0", "0", 0, 0, NORMAL|VISUAL},
44 {"push-1", "1", 0, 0, NORMAL|VISUAL},
45 {"push-2", "2", 0, 0, NORMAL|VISUAL},
46 {"push-3", "3", 0, 0, NORMAL|VISUAL},
47 {"push-4", "4", 0, 0, NORMAL|VISUAL},
48 {"push-5", "5", 0, 0, NORMAL|VISUAL},
49 {"push-6", "6", 0, 0, NORMAL|VISUAL},
50 {"push-7", "7", 0, 0, NORMAL|VISUAL},
51 {"push-8", "8", 0, 0, NORMAL|VISUAL},
52 {"push-9", "9", 0, 0, NORMAL|VISUAL},
53 {"delete-graphemes-forwards", "x", 0, 0, NORMAL},
54 {"delete-graphemes-backwards", "X", 0, 0, NORMAL},
55 {"delete", "d", 0, 0, NORMAL|VISUAL},
56 {"yank", "y", 0, 0, NORMAL|VISUAL},
57 {"yank-lines", "Y", 0, 0, NORMAL},
58 {"change", "c", 0, 0, NORMAL|VISUAL},
59 {"enter-visual", "v", 0, 0, NORMAL},
60 {"switch-selection-end", "o", 0, 0, VISUAL},
61 {"clipboard-copy", "c", ControlMask, 0, NORMAL|VISUAL|INSERT},
62 {"clipboard-paste", "v", ControlMask, 0, VISUAL|INSERT},
63 {"show-line", "g", ControlMask, 0, NORMAL|VISUAL|INSERT},
64 {"enter-commandedit", ":", 0, 0, NORMAL|VISUAL},
65 {"enter-searchedit-backwards", "?", 0, 0, NORMAL},
66 {"enter-searchedit-forwards", "/", 0, 0, NORMAL},
67 {"search-next", "n", 0, 0, NORMAL|VISUAL},
68 {"search-previous", "N", 0, 0, NORMAL|VISUAL},
69 {"undo", "u", 0, 0, NORMAL},
70 {"redo", "U", 0, 0, NORMAL},
71 {"repeat-command", ".", 0, 0, NORMAL}, /* FIXME: only allow after finished key sequence */
72 {"undo", "z", ControlMask, 0, INSERT},
73 {"redo", "y", ControlMask, 0, INSERT}, /* FIXME: this is confusing with ctrl-y in normal mode */
74 {"screen-up", "b", ControlMask, 0, NORMAL},
75 {"screen-down", "f", ControlMask, 0, NORMAL},
76 {"scroll-with-cursor-down", "e", ControlMask, 0, NORMAL},
77 {"scroll-with-cursor-up", "y", ControlMask, 0, NORMAL},
78 {"scroll-lines-down", "d", ControlMask, 0, NORMAL},
79 {"scroll-lines-up", "u", ControlMask, 0, NORMAL},
80 {"move-to-eol", "$", 0, 0, NORMAL|VISUAL},
81 {"next-word", "w", 0, 0, NORMAL|VISUAL},
82 {"next-word-end", "e", 0, 0, NORMAL|VISUAL},
83 {"next-bigword", "W", 0, 0, NORMAL|VISUAL},
84 {"next-bigword-end", "E", 0, 0, NORMAL|VISUAL},
85 {"previous-word", "b", 0, 0, NORMAL|VISUAL},
86 {"previous-bigword", "B", 0, 0, NORMAL|VISUAL},
87 {"move-to-line", "G", 0, 0, NORMAL|VISUAL},
88 {"join-lines", "J", 0, 0, NORMAL},
89 {"insert-at-beginning", "I", 0, 0, NORMAL},
90 {"paste-buffer", "p", 0, 0, NORMAL},
91 {"paste-buffer-backwards", "P", 0, 0, NORMAL},
92 {"append-after-eol", "A", 0, 0, NORMAL},
93 {"append-after-cursor", "a", 0, 0, NORMAL},
94 {"append-line-above", "O", 0, 0, NORMAL},
95 {"append-line-below", "o", 0, 0, NORMAL},
96 {"insert-mark", "m", 0, 0, NORMAL|VISUAL},
97 {"jump-to-mark", "'", 0, 0, NORMAL|VISUAL},
98 {"change-to-eol", "C", 0, 0, NORMAL},
99 {"delete-to-eol", "D", 0, 0, NORMAL},
100 {"replace", "r", 0, 0, NORMAL},
101 {"cursor-to-first-non-whitespace", "^", 0, 0, NORMAL},
102 {"find-next-char-forwards", "t", 0, 0, NORMAL|VISUAL},
103 {"find-next-char-backwards", "T", 0, 0, NORMAL|VISUAL},
104 {"find-char-forwards", "f", 0, 0, NORMAL|VISUAL},
105 {"find-char-backwards", "F", 0, 0, NORMAL|VISUAL},
106 {"insert-text", "", 0, 0, INSERT}
107 };
108
109 struct {
110 char *func_name;
111 char *text;
112 unsigned int mods;
113 KeySym keysym;
114 command_mode modes;
115 } command_keys_default[] = {
116 {"substitute-yes", "y", 0, 0, CMD_SUBSTITUTE},
117 {"substitute-yes-all", "Y", 0, 0, CMD_SUBSTITUTE},
118 {"substitute-no", "n", 0, 0, CMD_SUBSTITUTE},
119 {"substitute-no-all", "N", 0, 0, CMD_SUBSTITUTE},
120 {"edit-submit", NULL, XK_ANY_MOD, XK_Return, CMD_EDIT},
121 {"edit-submit-search", NULL, XK_ANY_MOD, XK_Return, CMD_EDITSEARCH},
122 {"edit-submit-backwards-search", NULL, XK_ANY_MOD, XK_Return, CMD_EDITSEARCHB},
123 {"edit-cursor-left", NULL, 0, XK_Left, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
124 {"edit-cursor-right", NULL, 0, XK_Right, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
125 {"edit-cursor-right", NULL, 0, XK_Right, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
126 {"edit-previous-command", NULL, 0, XK_Up, CMD_EDIT},
127 {"edit-next-command", NULL, 0, XK_Down, CMD_EDIT},
128 {"edit-previous-search", NULL, 0, XK_Up, CMD_EDITSEARCH|CMD_EDITSEARCHB},
129 {"edit-next-search", NULL, 0, XK_Down, CMD_EDITSEARCH|CMD_EDITSEARCHB},
130 {"edit-backspace", NULL, 0, XK_BackSpace, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
131 {"edit-delete", NULL, 0, XK_Delete, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
132 {"edit-cursor-to-end", NULL, 0, XK_End, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
133 {"edit-cursor-to-beginning", NULL, 0, XK_Home, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
134 {"edit-discard", NULL, 0, XK_Escape, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB},
135 {"edit-insert-text", "", 0, 0, CMD_EDIT|CMD_EDITSEARCH|CMD_EDITSEARCHB}
136 };
137
138 struct {
139 char *func_name;
140 char *text;
141 } commands_default[] = {
142 {"write-quit", "wq"},
143 {"write", "w"},
144 {"quit", "q"},
145 {"create-view", "v"},
146 {"close-view", "c"},
147 {"substitute", "s"}
148 };
149
150 /*****************************************
151 * Key and command mapping configuration *
152 *****************************************/
153
154 struct mapping {
155 char *from;
156 char *to;
157 };
158
159 struct language_mapping {
160 char *lang;
161 struct mapping *keys;
162 struct mapping *cmds;
163 size_t keys_len;
164 size_t cmds_len;
165 };
166
167 struct mapping key_mapping_de[] = {
168 {"z", "y"},
169 {"y", "z"},
170 {"Z", "Y"},
171 {"Y", "Z"},
172 {"Ö", ":"},
173 {"_", "?"},
174 {"-", "/"},
175 {"ä", "'"}
176 };
177
178 struct language_mapping mappings_default[] = {
179 {"German", key_mapping_de, NULL, LENGTH(key_mapping_de), 0}
180 };
181
182 #endif /* _KEYS_CONFIG_H_ */