@@ -89,6 +89,7 @@ typedef struct {
8989 BOOLEAN force_menu ;
9090 BOOLEAN use_saved_entry ;
9191 BOOLEAN use_saved_entry_efivar ;
92+ BOOLEAN beep ;
9293 INT64 console_mode ;
9394 INT64 console_mode_efivar ;
9495 RandomSeedMode random_seed_mode ;
@@ -497,6 +498,7 @@ static void print_status(Config *config, CHAR16 *loaded_image_path) {
497498 ps_bool (L" editor: %s\n" , config -> editor );
498499 ps_bool (L" auto-entries: %s\n" , config -> auto_entries );
499500 ps_bool (L" auto-firmware: %s\n" , config -> auto_firmware );
501+ ps_bool (L" beep: %s\n" , config -> beep );
500502 ps_bool (L" reboot-for-bitlocker: %s\n" , config -> reboot_for_bitlocker );
501503 ps_string (L" random-seed-mode: %s\n" , random_seed_modes_table [config -> random_seed_mode ]);
502504
@@ -588,7 +590,7 @@ static BOOLEAN menu_run(
588590 _cleanup_freepool_ CHAR16 * clearline = NULL , * status = NULL ;
589591 UINT32 timeout_efivar_saved = config -> timeout_sec_efivar ;
590592 UINT32 timeout_remain = config -> timeout_sec == TIMEOUT_MENU_FORCE ? 0 : config -> timeout_sec ;
591- BOOLEAN exit = FALSE, run = TRUE, firmware_setup = FALSE;
593+ BOOLEAN exit = FALSE, run = TRUE, firmware_setup = FALSE, do_beep = config -> beep ;
592594 INT64 console_mode_initial = ST -> ConOut -> Mode -> Mode , console_mode_efivar_saved = config -> console_mode_efivar ;
593595 UINTN default_efivar_saved = config -> idx_default_efivar ;
594596
@@ -725,6 +727,11 @@ static BOOLEAN menu_run(
725727 ST -> ConOut -> OutputString (ST -> ConOut , clearline + 1 + x + len );
726728 }
727729
730+ if (do_beep ) {
731+ beep ();
732+ do_beep = FALSE;
733+ }
734+
728735 err = console_key_read (& key , timeout_remain > 0 ? 1000 * 1000 : UINT64_MAX );
729736 if (err == EFI_TIMEOUT ) {
730737 timeout_remain -- ;
@@ -1144,6 +1151,12 @@ static void config_defaults_load_from_file(Config *config, CHAR8 *content) {
11441151 continue ;
11451152 }
11461153
1154+ if (strcmpa ((CHAR8 * )"beep" , key ) == 0 ) {
1155+ err = parse_boolean (value , & config -> beep );
1156+ if (EFI_ERROR (err ))
1157+ log_error_stall (L"Error parsing 'beep' config option: %a" , value );
1158+ }
1159+
11471160 if (strcmpa ((CHAR8 * )"reboot-for-bitlocker" , key ) == 0 ) {
11481161 err = parse_boolean (value , & config -> reboot_for_bitlocker );
11491162 if (EFI_ERROR (err ))
0 commit comments