Index: stand/lua/menu.lua =================================================================== --- stand/lua/menu.lua +++ stand/lua/menu.lua @@ -257,6 +257,7 @@ menu_entries.zpool_checkpoints, menu_entries.boot_envs, menu_entries.chainload, + menu_entries.vendor, } end, all_entries = { @@ -400,6 +401,10 @@ end, alias = {"l", "L"}, }, + vendor = { + entry_type = core.MENU_ENTRY, + visible = false, + }, }, } Index: stand/lua/menu.lua.8 =================================================================== --- stand/lua/menu.lua.8 +++ stand/lua/menu.lua.8 @@ -197,26 +197,51 @@ }, } .Ed -.Pp -To add another option to the welcome menu: +.\" Note: the following no longer works because the +.\" entries for the welcome menu are created by a +.\" function that's complicated to override w/o +.\" copying the whole thing and tracking changes. +.\".Pp +.\"To add another option to the welcome menu: +.\".Pp +.\".Bd -literal -offset indent -compact +.\"local core = require("core") +.\"local menu = require("menu") +.\" +.\"local welcome_entries = menu.welcome.all_entries +.\"welcome_entries[#welcome_entries + 1] = { +.\" entry_type = core.MENU_CAROUSEL_ENTRY, +.\" carousel_id = "unique_boot_entry_name", +.\" items = {"NO", "YES"}, +.\" name = function(_, choice, _) +.\" return "Option: " .. choice +.\" end, +.\" func = function(_, _, _) +.\" loader.setenv("some_envvar", "some_value") +.\" end, +.\"} +.\".Ed +.\".Pp +To create a vendor submenu or other vendor menu option, +override +.Ic menu.welcome.all_entires.vendor +like so: .Pp .Bd -literal -offset indent -compact local core = require("core") local menu = require("menu") local welcome_entries = menu.welcome.all_entries -welcome_entries[#welcome_entries + 1] = { - entry_type = core.MENU_CAROUSEL_ENTRY, - carousel_id = "unique_boot_entry_name", - items = {"NO", "YES"}, - name = function(_, choice, _) - return "Option: " .. choice - end, - func = function(_, _, _) - loader.setenv("some_envvar", "some_value") - end, +welcome_entries.vendor = { + entry_type = core.MENU_SUBMENU, + name = color.highlight("V") .. "endor Options", + submenu = vendor_options, + alias = {"v", "V"}, } .Ed +In the above example, +.Ic vendor_options +is a local variable that defines the vendor submenu. .Sh SEE ALSO .Xr loader.conf 5 , .Xr core.lua 8 ,