]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - KBD/mkconfig.sh
update tip message for VTOY_DEFAULT_SEARCH_ROOT (#1373)
[Ventoy.git] / KBD / mkconfig.sh
1 #!/bin/sh
2
3 #
4 # Configfiles are from grubfilemanager project
5 #
6
7 cfgfile=keyboard_layout.c
8 rm -f ${cfgfile}
9
10 cat >>$cfgfile << EOF
11
12 #define ventoy_keyboard_set_layout(name) if (grub_strcmp(layout, #name) == 0) return ventoy_keyboard_layout_##name()
13
14 menuentry QWERTY_USA --class=debug_kbd {
15 setkey -r
16 setkey -d
17 }
18 EOF
19
20 ls -1 cfg | while read line; do
21 kbd=${line%.cfg}
22 name=${kbd#KBD_}
23
24 echo "menuentry $name --class=debug_kbd {" >> $cfgfile
25 grep '^setkey' cfg/$line >>$cfgfile
26 echo "}" >> $cfgfile
27 done
28
29 dos2unix $cfgfile
30 sed 's/menuentry \([^ ]*\) .*/static void ventoy_keyboard_layout_\1(void) {/g' -i $cfgfile
31 sed 's/setkey *-r/grub_keymap_reset();/g' -i $cfgfile
32 sed 's/setkey *-d/grub_keymap_disable();/g' -i $cfgfile
33 sed 's/setkey *-e/grub_keymap_enable();/g' -i $cfgfile
34 sed 's/^setkey *\([^ ]*\) *\([^ ]*\)/grub_keymap_add_by_string("\1", "\2");/g' -i $cfgfile
35
36 rm -f .tmpfunc
37 echo "void ventoy_set_keyboard_layout(const char *layout);" >> .tmpfunc
38 echo "void ventoy_set_keyboard_layout(const char *layout) {" >> .tmpfunc
39 grep 'void *ventoy_keyboard_layout_' $cfgfile | while read line; do
40 name=$(echo $line | sed 's/.*ventoy_keyboard_layout_\(.*\)(.*/\1/g')
41 echo "ventoy_keyboard_set_layout($name);" >> .tmpfunc
42 done
43
44 echo "}" >> .tmpfunc
45
46 cat .tmpfunc >> $cfgfile
47 rm -f .tmpfunc
48
49 rm -f ../GRUB2/SRC/grub-2.04/grub-core/term/$cfgfile
50 cp -a $cfgfile ../GRUB2/SRC/grub-2.04/grub-core/term/$cfgfile
51
52
53
54
55
56 ############
57 #
58 # cfg
59 #############
60
61 cfgfile=../INSTALL/grub/keyboard.cfg
62 rm -f ${cfgfile}
63
64 echo "submenu \"Keyboard Layouts\" --class=debug_krdlayout {" >>$cfgfile
65
66 cat >>$cfgfile << EOF
67 menuentry QWERTY_USA --class=debug_kbd {
68 set_keyboard_layout QWERTY_USA
69 }
70 EOF
71
72 ls -1 cfg | while read line; do
73 kbd=${line%.cfg}
74 name=${kbd#KBD_}
75
76 echo " menuentry $name --class=debug_kbd {" >> $cfgfile
77 echo " set_keyboard_layout $name" >> $cfgfile
78 echo " }" >> $cfgfile
79 done
80
81 echo "}" >>$cfgfile
82
83
84