1222417Sjulian\ Menu.rc
2222417Sjulian\ $FreeBSD$
3222417Sjulian\
4293294Sdteske\ You should not edit this file! Put any overrides in menu.rc.local
5293294Sdteske\ instead as this file can be replaced during system updates.
6293294Sdteske\
7222417Sjulian\ Load required Forth modules
8222417Sjulianinclude /boot/version.4th
9222417Sjulianinclude /boot/brand.4th
10222417Sjulianinclude /boot/menu.4th
11222417Sjulianinclude /boot/menu-commands.4th
12222417Sjulianinclude /boot/shortcuts.4th
13222417Sjulian
14222417Sjulian\ Screen prep
15222417Sjulianclear         \ clear the screen (see `screen.4th')
16222417Sjulianprint_version \ print version string (bottom-right; see `version.4th')
17222417Sjuliandraw-beastie  \ draw freebsd mascot (on right; see `beastie.4th')
18222417Sjuliandraw-brand    \ draw the FreeBSD title (top-left; see `brand.4th')
19222417Sjulianmenu-init     \ initialize the menu area (see `menu.4th')
20222417Sjulian
21222417Sjulian\ Initialize main menu constructs (see `menu.4th')
22254105Sdteske\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5)
23281843Sdteske\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27)
24222417Sjulian
25243660Sdteske\ 
26243660Sdteske\ MAIN MENU
27243660Sdteske\ 
28222417Sjulian
29243660Sdteskeset menuset_name1="main"
30222417Sjulian
31243660Sdteskeset mainmenu_init[1]="init_boot"
32243660Sdteskeset mainmenu_caption[1]="Boot Multi User [Enter]"
33243660Sdteskeset maintoggled_text[1]="Boot [S]ingle User [Enter]"
34243660Sdteskeset mainmenu_command[1]="boot"
35281843Sdteskeset mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m"
36281843Sdteskeset maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m"
37243660Sdteske\ keycode set by init_boot
38243660Sdteske
39243660Sdteskeset mainmenu_init[2]="init_altboot"
40243660Sdteskeset mainmenu_caption[2]="Boot [S]ingle User"
41243660Sdteskeset maintoggled_text[2]="Boot [M]ulti User"
42243660Sdteskeset mainmenu_command[2]="altboot"
43281843Sdteskeset mainansi_caption[2]="Boot ^[1mS^[mingle User"
44281843Sdteskeset maintoggled_ansi[2]="Boot ^[1mM^[multi User"
45243660Sdteske\ keycode set by init_altboot
46243660Sdteske
47243660Sdteskeset mainmenu_caption[3]="[Esc]ape to loader prompt"
48243660Sdteskeset mainmenu_command[3]="goto_prompt"
49243660Sdteskeset mainmenu_keycode[3]=27
50281843Sdteskeset mainansi_caption[3]="^[1mEsc^[mape to loader prompt"
51243660Sdteske
52222417Sjulian\ Enable built-in "Reboot" trailing menuitem
53222417Sjulian\ NOTE: appears before menu_options if configured
54222417Sjulian\ 
55243660Sdteskeset mainmenu_reboot
56222417Sjulian
57222417Sjulian\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
58222417Sjulian\ separator is inserted before that menuitem number.
59222417Sjulian\ 
60243660Sdteskeset mainmenu_options=5
61222417Sjulian
62262701Sdteskeset mainmenu_kernel=5
63262701Sdteskeset mainmenu_command[5]="cycle_kernel"
64262701Sdteskeset mainmenu_keycode[5]=107
65222417Sjulian
66262701Sdteskeset mainmenu_caption[6]="Configure Boot [O]ptions..."
67262701Sdteskeset mainmenu_command[6]="2 goto_menu"
68262701Sdteskeset mainmenu_keycode[6]=111
69281843Sdteskeset mainansi_caption[6]="Configure Boot ^[1mO^[mptions..."
70262701Sdteske
71293802Sallanjudes" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if]
72293802Sallanjude    set mainmenu_caption[7]="Select Boot [E]nvironment..."
73293802Sallanjude    set mainmenu_command[7]="3 goto_menu"
74293802Sallanjude    set mainmenu_keycode[7]=101
75293802Sallanjude    set mainansi_caption[7]="Select Boot ^[1mE^[37mnvironment..."
76293802Sallanjude[then] [else] drop [then]
77293802Sallanjude
78243660Sdteske\ 
79243660Sdteske\ BOOT OPTIONS MENU
80243660Sdteske\ 
81222417Sjulian
82243660Sdteskeset menuset_name2="options"
83222417Sjulian
84243660Sdteskeset optionsmenu_caption[1]="Back to Main Menu [Backspace]"
85243660Sdteskeset optionsmenu_command[1]="1 goto_menu"
86243660Sdteskeset optionsmenu_keycode[1]=8
87281843Sdteskeset optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m"
88222417Sjulian
89243660Sdteskeset optionsmenu_caption[2]="Load System [D]efaults"
90243660Sdteskeset optionsmenu_command[2]="set_default_boot_options"
91243660Sdteskeset optionsmenu_keycode[2]=100
92281843Sdteskeset optionsansi_caption[2]="Load System ^[1mD^[mefaults"
93243660Sdteske
94243660Sdteskeset optionsmenu_options=3
95243660Sdteskeset optionsmenu_optionstext="Boot Options:"
96243660Sdteske
97243660Sdteskeset optionsmenu_acpi=3
98243660Sdteskeset optionsmenu_caption[3]="[A]CPI Support off"
99243660Sdteskeset optionstoggled_text[3]="[A]CPI Support On"
100243660Sdteskeset optionsmenu_command[3]="toggle_acpi"
101243660Sdteskeset optionsmenu_keycode[3]=97
102281843Sdteskeset optionsansi_caption[3]="^[1mA^[mCPI Support ^[34;1mOff^[m"
103281843Sdteskeset optionstoggled_ansi[3]="^[1mA^[mCPI Support ^[32;7mOn^[m"
104243660Sdteske
105243660Sdteskeset optionsmenu_init[4]="init_safemode"
106243660Sdteskeset optionsmenu_caption[4]="Safe [M]ode... off"
107243660Sdteskeset optionstoggled_text[4]="Safe [M]ode... On"
108243660Sdteskeset optionsmenu_command[4]="toggle_safemode"
109243660Sdteskeset optionsmenu_keycode[4]=109
110281843Sdteskeset optionsansi_caption[4]="Safe ^[1mM^[mode... ^[34;1mOff^[m"
111281843Sdteskeset optionstoggled_ansi[4]="Safe ^[1mM^[mode... ^[32;7mOn^[m"
112243660Sdteske
113243660Sdteskeset optionsmenu_init[5]="init_singleuser"
114243660Sdteskeset optionsmenu_caption[5]="[S]ingle User. off"
115243660Sdteskeset optionstoggled_text[5]="[S]ingle User. On"
116243660Sdteskeset optionsmenu_command[5]="toggle_singleuser"
117243660Sdteskeset optionsmenu_keycode[5]=115
118281843Sdteskeset optionsansi_caption[5]="^[1mS^[mingle User. ^[34;1mOff^[m"
119281843Sdteskeset optionstoggled_ansi[5]="^[1mS^[mingle User. ^[32;7mOn^[m"
120243660Sdteske
121243660Sdteskeset optionsmenu_init[6]="init_verbose"
122243660Sdteskeset optionsmenu_caption[6]="[V]erbose..... off"
123243660Sdteskeset optionstoggled_text[6]="[V]erbose..... On"
124243660Sdteskeset optionsmenu_command[6]="toggle_verbose"
125243660Sdteskeset optionsmenu_keycode[6]=118
126281843Sdteskeset optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m"
127281843Sdteskeset optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m"
128243660Sdteske
129293802Sallanjude\ 
130293802Sallanjude\ BOOT ENVIRONMENT MENU
131293802Sallanjude\ 
132293802Sallanjude
133293802Sallanjudeset menuset_name3="bootenv"
134293802Sallanjude
135293802Sallanjudeset bemenu_current="Active: "
136293802Sallanjudeset beansi_current="^[1m${bemenu_current}^[m"
137293802Sallanjudeset bemenu_bootfs="bootfs: "
138293802Sallanjudeset beansi_bootfs="^[1m${bemenu_bootfs}^[m"
139293802Sallanjudeset bemenu_page="[P]age: "
140293802Sallanjudeset beansi_page="^[1mP^[mage: "
141293802Sallanjudeset bemenu_pageof=" of "
142293802Sallanjudeset beansi_pageof="${bemenu_pageof}"
143293802Sallanjudeset zfs_be_currpage=1
144293802Sallanjude
145293802Sallanjudeset bootenvmenu_init="init_bootenv"
146293802Sallanjude
147293802Sallanjudeset bootenvmenu_command[1]="be_draw_screen 1 goto_menu"
148293802Sallanjudeset bootenvmenu_keycode[1]=8
149293802Sallanjude
150293802Sallanjudeset bootenvmenu_command[2]="set_bootenv"
151293802Sallanjudeset bootenvmenu_keycode[2]=97
152293802Sallanjudeset bootenv_root[2]="${zfs_be_active}"
153293802Sallanjude
154293802Sallanjudeset bootenvmenu_command[3]="set_be_page"
155293802Sallanjudeset bootenvmenu_keycode[3]=112
156293802Sallanjude
157293802Sallanjudeset bootenvmenu_options=4
158293802Sallanjudeset bootenvmenu_optionstext="Boot Environments:"
159293802Sallanjude
160222417Sjulian\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
161222417Sjulian\ customize the timeout; default is 10-seconds)
162222417Sjulian\ 
163222417Sjulianset menu_timeout_command="boot"
164222417Sjulian
165262704Sdteske\ Include optional elements defined in a local file
166262704Sdteske\ 
167262704Sdtesketry-include /boot/menu.rc.local
168262704Sdteske
169293802Sallanjude\ Initialize boot environment variables
170293802Sallanjude\
171293802Sallanjudes" reloadbe" sfind ( xt|0 bool ) [if]
172293802Sallanjude    s" bootenv_autolist" getenv dup -1 = [if]
173293802Sallanjude	drop s" execute" evaluate		\ Use evaluate to avoid passing
174293802Sallanjude						\ reloadbe an optional parameter
175293802Sallanjude    [else]
176293802Sallanjude	s" YES" compare-insensitive 0= [if]
177293802Sallanjude	    s" execute" evaluate
178293802Sallanjude	[then]
179293802Sallanjude    [then]
180293802Sallanjude[else]
181293802Sallanjude    drop ( xt=0 )
182293802Sallanjude[then]
183293802Sallanjude
184222417Sjulian\ Display the main menu (see `menu.4th')
185243660Sdteskeset menuset_initial=1
186243660Sdteskemenuset-loadinitial
187222417Sjulianmenu-display
188