mirror of https://github.com/ventoy/Ventoy.git
1. Add Ctrl+h hotkey for help
2. Add VTOY_HELP_TXT_LANGUAGE option in Global Control plugin 3. Add Ctrl+m hotkey for file cheksum
This commit is contained in:
parent
734c7b8ac4
commit
d6eba15d71
|
@ -49,6 +49,19 @@ int g_ventoy_menu_esc = 0;
|
||||||
int g_ventoy_fn_mutex = 0;
|
int g_ventoy_fn_mutex = 0;
|
||||||
int g_ventoy_terminal_output = 0;
|
int g_ventoy_terminal_output = 0;
|
||||||
|
|
||||||
|
#define VTOY_COMM_HOTKEY(cmdkey) \
|
||||||
|
if (0 == g_ventoy_fn_mutex) { \
|
||||||
|
cmdstr = grub_env_get(cmdkey); \
|
||||||
|
if (cmdstr) \
|
||||||
|
{ \
|
||||||
|
menu_fini (); \
|
||||||
|
g_ventoy_fn_mutex = 1; \
|
||||||
|
grub_script_execute_sourcecode(cmdstr); \
|
||||||
|
g_ventoy_fn_mutex = 0; \
|
||||||
|
goto refresh; \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
/* Time to delay after displaying an error message about a default/fallback
|
/* Time to delay after displaying an error message about a default/fallback
|
||||||
entry failing to boot. */
|
entry failing to boot. */
|
||||||
#define DEFAULT_ENTRY_ERROR_DELAY_MS 2500
|
#define DEFAULT_ENTRY_ERROR_DELAY_MS 2500
|
||||||
|
@ -388,7 +401,7 @@ int g_menu_update_mode = 0;
|
||||||
int g_ventoy_tip_label_enable = 0;
|
int g_ventoy_tip_label_enable = 0;
|
||||||
const char * g_ventoy_tip_msg1 = NULL;
|
const char * g_ventoy_tip_msg1 = NULL;
|
||||||
const char * g_ventoy_tip_msg2 = NULL;
|
const char * g_ventoy_tip_msg2 = NULL;
|
||||||
|
static const char *g_ventoy_cur_img_path = NULL;
|
||||||
static void menu_set_chosen_tip(grub_menu_t menu, int entry)
|
static void menu_set_chosen_tip(grub_menu_t menu, int entry)
|
||||||
{
|
{
|
||||||
img_info *img;
|
img_info *img;
|
||||||
|
@ -402,6 +415,7 @@ static void menu_set_chosen_tip(grub_menu_t menu, int entry)
|
||||||
{
|
{
|
||||||
g_ventoy_tip_msg1 = img->tip1;
|
g_ventoy_tip_msg1 = img->tip1;
|
||||||
g_ventoy_tip_msg2 = img->tip2;
|
g_ventoy_tip_msg2 = img->tip2;
|
||||||
|
g_ventoy_cur_img_path = img->path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -835,71 +849,23 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
||||||
|
|
||||||
case GRUB_TERM_KEY_F2:
|
case GRUB_TERM_KEY_F2:
|
||||||
case '2':
|
case '2':
|
||||||
if (0 == g_ventoy_fn_mutex) {
|
VTOY_COMM_HOTKEY("VTOY_F2_CMD");
|
||||||
cmdstr = grub_env_get("VTOY_F2_CMD");
|
|
||||||
if (cmdstr)
|
|
||||||
{
|
|
||||||
menu_fini ();
|
|
||||||
g_ventoy_fn_mutex = 1;
|
|
||||||
grub_script_execute_sourcecode(cmdstr);
|
|
||||||
g_ventoy_fn_mutex = 0;
|
|
||||||
goto refresh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GRUB_TERM_KEY_F3:
|
case GRUB_TERM_KEY_F3:
|
||||||
case '3':
|
case '3':
|
||||||
if (0 == g_ventoy_fn_mutex) {
|
VTOY_COMM_HOTKEY("VTOY_F3_CMD");
|
||||||
cmdstr = grub_env_get("VTOY_F3_CMD");
|
|
||||||
if (cmdstr)
|
|
||||||
{
|
|
||||||
menu_fini ();
|
|
||||||
grub_script_execute_sourcecode(cmdstr);
|
|
||||||
goto refresh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GRUB_TERM_KEY_F4:
|
case GRUB_TERM_KEY_F4:
|
||||||
case '4':
|
case '4':
|
||||||
if (0 == g_ventoy_fn_mutex) {
|
VTOY_COMM_HOTKEY("VTOY_F4_CMD");
|
||||||
cmdstr = grub_env_get("VTOY_F4_CMD");
|
|
||||||
if (cmdstr)
|
|
||||||
{
|
|
||||||
menu_fini ();
|
|
||||||
g_ventoy_fn_mutex = 1;
|
|
||||||
grub_script_execute_sourcecode(cmdstr);
|
|
||||||
g_ventoy_fn_mutex = 0;
|
|
||||||
goto refresh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GRUB_TERM_KEY_F5:
|
case GRUB_TERM_KEY_F5:
|
||||||
case '5':
|
case '5':
|
||||||
if (0 == g_ventoy_fn_mutex) {
|
VTOY_COMM_HOTKEY("VTOY_F5_CMD");
|
||||||
cmdstr = grub_env_get("VTOY_F5_CMD");
|
|
||||||
if (cmdstr)
|
|
||||||
{
|
|
||||||
menu_fini ();
|
|
||||||
g_ventoy_fn_mutex = 1;
|
|
||||||
grub_script_execute_sourcecode(cmdstr);
|
|
||||||
g_ventoy_fn_mutex = 0;
|
|
||||||
goto refresh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GRUB_TERM_KEY_F6:
|
case GRUB_TERM_KEY_F6:
|
||||||
case '6':
|
case '6':
|
||||||
if (0 == g_ventoy_fn_mutex) {
|
VTOY_COMM_HOTKEY("VTOY_F6_CMD");
|
||||||
cmdstr = grub_env_get("VTOY_F6_CMD");
|
|
||||||
if (cmdstr)
|
|
||||||
{
|
|
||||||
menu_fini ();
|
|
||||||
g_ventoy_fn_mutex = 1;
|
|
||||||
grub_script_execute_sourcecode(cmdstr);
|
|
||||||
g_ventoy_fn_mutex = 0;
|
|
||||||
goto refresh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GRUB_TERM_KEY_F7:
|
case GRUB_TERM_KEY_F7:
|
||||||
menu_fini ();
|
menu_fini ();
|
||||||
|
@ -945,6 +911,38 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
||||||
g_ventoy_menu_refresh = 1;
|
g_ventoy_menu_refresh = 1;
|
||||||
goto refresh;
|
goto refresh;
|
||||||
|
|
||||||
|
case (GRUB_TERM_CTRL | 'h'):
|
||||||
|
{
|
||||||
|
cmdstr = grub_env_get("VTOY_HELP_CMD");
|
||||||
|
if (cmdstr)
|
||||||
|
{
|
||||||
|
grub_script_execute_sourcecode(cmdstr);
|
||||||
|
while (grub_getkey() != GRUB_TERM_ESC)
|
||||||
|
;
|
||||||
|
menu_fini ();
|
||||||
|
goto refresh;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (GRUB_TERM_CTRL | 'm'):
|
||||||
|
{
|
||||||
|
if (g_ventoy_cur_img_path)
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_CHKSUM_FILE_PATH", g_ventoy_cur_img_path);
|
||||||
|
cmdstr = grub_env_get("VTOY_CHKSUM_CMD");
|
||||||
|
if (cmdstr)
|
||||||
|
{
|
||||||
|
menu_fini();
|
||||||
|
grub_script_execute_sourcecode(cmdstr);
|
||||||
|
goto refresh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_CHKSUM_FILE_PATH", "X");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
int entry;
|
int entry;
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
menuentry "Calculate md5sum" --class=checksum_md5 {
|
||||||
|
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
|
echo -e "\n\npress ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Calculate sha1sum" --class=checksum_sha1 {
|
||||||
|
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
|
echo -e "\n\npress ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Calculate sha256sum" --class=checksum_sha256 {
|
||||||
|
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
|
echo -e "\n\npress ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Calculate sha512sum" --class=checksum_sha512{
|
||||||
|
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
|
echo -e "\n\npress ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||||
|
echo 'Return ...'
|
||||||
|
}
|
|
@ -90,6 +90,28 @@ function ventoy_ext_menu {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ventoy_checksum {
|
||||||
|
if [ -f "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}" ]; then
|
||||||
|
configfile $prefix/checksum.cfg
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function ventoy_show_help {
|
||||||
|
if [ -f $prefix/help.tar.gz ]; then
|
||||||
|
if [ -z "$vtoy_help_txt_mem_addr" ]; then
|
||||||
|
vt_load_file_to_mem "auto" $prefix/help.tar.gz vtoy_help_txt_mem
|
||||||
|
fi
|
||||||
|
|
||||||
|
loopback vt_help_tarfs mem:${vtoy_help_txt_mem_addr}:size:${vtoy_help_txt_mem_size}
|
||||||
|
if [ -f "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" ]; then
|
||||||
|
cat "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt"
|
||||||
|
else
|
||||||
|
cat "(vt_help_tarfs)/help/en_US.txt"
|
||||||
|
fi
|
||||||
|
loopback -d vt_help_tarfs
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function get_os_type {
|
function get_os_type {
|
||||||
set vtoy_os=Linux
|
set vtoy_os=Linux
|
||||||
|
|
||||||
|
@ -1987,6 +2009,11 @@ set VTOY_F2_CMD="ventoy_power"
|
||||||
set VTOY_F4_CMD="ventoy_localboot"
|
set VTOY_F4_CMD="ventoy_localboot"
|
||||||
set VTOY_F5_CMD="ventoy_diagnosis"
|
set VTOY_F5_CMD="ventoy_diagnosis"
|
||||||
set VTOY_F6_CMD="ventoy_ext_menu"
|
set VTOY_F6_CMD="ventoy_ext_menu"
|
||||||
|
set VTOY_HELP_CMD="ventoy_show_help"
|
||||||
|
set VTOY_CHKSUM_CMD="ventoy_checksum"
|
||||||
|
set VTOY_HELP_TXT_LANGUAGE="en_US"
|
||||||
|
set VTOY_CHKSUM_FILE_PATH="X"
|
||||||
|
|
||||||
|
|
||||||
if [ "$grub_platform" = "pc" ]; then
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
set VTOY_TEXT_MENU_VER="Ventoy $VENTOY_VERSION BIOS www.ventoy.net"
|
set VTOY_TEXT_MENU_VER="Ventoy $VENTOY_VERSION BIOS www.ventoy.net"
|
||||||
|
@ -2076,10 +2103,10 @@ fi
|
||||||
|
|
||||||
if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then
|
if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then
|
||||||
set VTOY_F3_CMD="vt_dynamic_menu 1 1"
|
set VTOY_F3_CMD="vt_dynamic_menu 1 1"
|
||||||
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:TreeView F4:Localboot F5:Tools F6:ExMenu"
|
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:TreeView F4:Localboot F5:Tools F6:ExMenu Ctrl+h:Help"
|
||||||
else
|
else
|
||||||
set VTOY_F3_CMD="vt_dynamic_menu 1 0"
|
set VTOY_F3_CMD="vt_dynamic_menu 1 0"
|
||||||
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:ListView F4:Localboot F5:Tools F6:ExMenu"
|
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:ListView F4:Localboot F5:Tools F6:ExMenu Ctrl+h:Help"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -2167,6 +2194,14 @@ export VTOY_ISO_RAW_STR
|
||||||
export VTOY_GRUB2_MODE_STR
|
export VTOY_GRUB2_MODE_STR
|
||||||
export VTOY_WIMBOOT_MODE_STR
|
export VTOY_WIMBOOT_MODE_STR
|
||||||
export VTOY_ISO_UEFI_DRV_STR
|
export VTOY_ISO_UEFI_DRV_STR
|
||||||
|
export VTOY_F2_CMD
|
||||||
|
export VTOY_F4_CMD
|
||||||
|
export VTOY_F5_CMD
|
||||||
|
export VTOY_F6_CMD
|
||||||
|
export VTOY_HELP_CMD
|
||||||
|
export VTOY_CHKSUM_CMD
|
||||||
|
export VTOY_HELP_TXT_LANGUAGE
|
||||||
|
export VTOY_CHKSUM_FILE_PATH
|
||||||
|
|
||||||
|
|
||||||
#special VTOY_DEFAULT_IMAGE process
|
#special VTOY_DEFAULT_IMAGE process
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
Ctrl+h - Display this help information
|
||||||
|
F1 - Memdisk Mode (Only for small WinPE/LiveCD ISO/IMG)
|
||||||
|
F2 - Reboot/Power off
|
||||||
|
F3 - Switch menu mode between Treeview <-> ListView
|
||||||
|
F4 - Boot Windows/Linux in local disk
|
||||||
|
F5 - Utilities
|
||||||
|
F6 - Load Custom Grub2 Menu
|
||||||
|
F7 - Switch between GUI Mode <-> TEXT Mode
|
||||||
|
|
||||||
|
Ctrl+m - Checksum image files (md5/sha1/sha256/sha512)
|
||||||
|
Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
||||||
|
Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
||||||
|
Ctrl+i - Compatible Mode (Just only for test)
|
||||||
|
|
||||||
|
|
||||||
|
Press ESC to return ......
|
|
@ -0,0 +1,15 @@
|
||||||
|
Ctrl+h - 显示本帮助信息
|
||||||
|
F1 - 把文件加载到内存启动(只适用于文件很小的 WinPE/LiveCD等)
|
||||||
|
F2 - 电源操作 (重启、关机)
|
||||||
|
F3 - 菜单显示模式切换。可在列表模式和目录模式之间自由切换。
|
||||||
|
F4 - 启动本地硬盘上的 Windows/Linux 等系统。
|
||||||
|
F5 - 各类工具
|
||||||
|
F6 - 加载自定义 GRUB2 菜单。
|
||||||
|
F7 - 界面在文本模式和图形模式之间切换。
|
||||||
|
|
||||||
|
Ctrl+m - 计算文件校验值(md5/sha1/sha256/sha512)
|
||||||
|
Ctrl+w - WIMBOOT 模式 (只适用于标准的 Windows ISO文件)
|
||||||
|
Ctrl+r - Grub2 模式 (只适用于常见的一些 Linux 系统ISO文件)
|
||||||
|
Ctrl+i - 兼容模式 (只用作调试目的,不能正式使用)
|
||||||
|
|
||||||
|
按 ESC 键返回 ......
|
|
@ -46,7 +46,7 @@ terminal-box: "terminal_box_*.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
+ hbox{
|
+ hbox{
|
||||||
left = 30%
|
left = 28%
|
||||||
top = 95%
|
top = 95%
|
||||||
width = 10%
|
width = 10%
|
||||||
height = 25
|
height = 25
|
||||||
|
|
Loading…
Reference in New Issue