1--- a/src/libkeymap/analyze.l
2+++ b/src/libkeymap/analyze.l
3@@ -101,6 +101,9 @@ stack_pop(struct lk_ctx *ctx, void *scan
4 static const char *const include_dirpath0[] = { "", 0 };
5 static const char *const include_dirpath1[] = { "", "../include/", "../../include/", 0 };
6 static const char *const include_dirpath3[] = {
7+ "/etc/kbd/" KEYMAPDIR "/include/",
8+ "/etc/kbd/" KEYMAPDIR "/i386/include/",
9+ "/etc/kbd/" KEYMAPDIR "/mac/include/",
10 DATADIR "/" KEYMAPDIR "/include/",
11 DATADIR "/" KEYMAPDIR "/i386/include/",
12 DATADIR "/" KEYMAPDIR "/mac/include/", 0
13--- a/src/loadkeys.c
14+++ b/src/loadkeys.c
15@@ -27,7 +27,7 @@
16 #include "keymap.h"
17
18 static const char *progname = NULL;
19-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
20+static const char *const dirpath1[] = { "", "/etc/kbd/" KEYMAPDIR "/**", DATADIR "/" KEYMAPDIR "/**", 0 };
21 static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
22
23 static void __attribute__((noreturn))
24--- a/src/loadunimap.c
25+++ b/src/loadunimap.c
26@@ -30,7 +30,7 @@
27 extern char *progname;
28 extern int force;
29
30-static const char *const unidirpath[] = { "", DATADIR "/" UNIMAPDIR "/", 0 };
31+static const char *const unidirpath[] = { "", "/etc/kbd/" UNIMAPDIR "/", DATADIR "/" UNIMAPDIR "/", 0 };
32 static const char *const unisuffixes[] = { "", ".uni", ".sfm", 0 };
33
34 #ifdef MAIN
35--- a/src/mapscrn.c
36+++ b/src/mapscrn.c
37@@ -27,7 +27,7 @@ void loadnewmap(int fd, char *mfil);
38 static int ctoi(char *);
39
40 /* search for the map file in these directories (with trailing /) */
41-static const char *const mapdirpath[] = { "", DATADIR "/" TRANSDIR "/", 0 };
42+static const char *const mapdirpath[] = { "", "/etc/kbd/" TRANSDIR "/", DATADIR "/" TRANSDIR "/", 0 };
43 static const char *const mapsuffixes[] = { "", ".trans", "_to_uni.trans", ".acm", 0 };
44
45 #ifdef MAIN
46--- a/src/resizecons.c
47+++ b/src/resizecons.c
48@@ -101,7 +101,7 @@ static int vga_get_fontheight(void);
49 static void vga_set_cursor(int, int);
50 static void vga_set_verticaldisplayend_lowbyte(int);
51
52-const char *const dirpath[] = { "", DATADIR "/" VIDEOMODEDIR "/", 0 };
53+const char *const dirpath[] = { "", "/etc/kbd/" VIDEOMODEDIR "/", DATADIR "/" VIDEOMODEDIR "/", 0};
54 const char *const suffixes[] = { "", 0 };
55
56 int main(int argc, char **argv)
57--- a/src/setfont.c
58+++ b/src/setfont.c
59@@ -53,10 +53,10 @@ int force = 0;
60 int debug = 0;
61
62 /* search for the font in these directories (with trailing /) */
63-const char *const fontdirpath[] = { "", DATADIR "/" FONTDIR "/", 0 };
64+const char *const fontdirpath[] = { "", "/etc/kbd/" FONTDIR "/", DATADIR "/" FONTDIR "/", 0 };
65 const char *const fontsuffixes[] = { "", ".psfu", ".psf", ".cp", ".fnt", 0 };
66 /* hide partial fonts a bit - loading a single one is a bad idea */
67-const char *const partfontdirpath[] = { "", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 };
68+const char *const partfontdirpath[] = { "", "/etc/kbd/" FONTDIR "/" PARTIALDIR "/", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 };
69 const char *const partfontsuffixes[] = { "", 0 };
70
71 static inline int