xref: /freebsd/stand/forth/menu.rc (revision ca987d4641cdcd7f27e153db17c5bf064934faf5)
1*ca987d46SWarner Losh\ Menu.rc
2*ca987d46SWarner Losh\ $FreeBSD$
3*ca987d46SWarner Losh\
4*ca987d46SWarner Losh\ You should not edit this file! Put any overrides in menu.rc.local
5*ca987d46SWarner Losh\ instead as this file can be replaced during system updates.
6*ca987d46SWarner Losh\
7*ca987d46SWarner Losh\ Load required Forth modules
8*ca987d46SWarner Loshinclude /boot/version.4th
9*ca987d46SWarner Loshinclude /boot/brand.4th
10*ca987d46SWarner Loshinclude /boot/menu.4th
11*ca987d46SWarner Loshinclude /boot/menu-commands.4th
12*ca987d46SWarner Loshinclude /boot/shortcuts.4th
13*ca987d46SWarner Losh
14*ca987d46SWarner Losh\ Screen prep
15*ca987d46SWarner Loshclear         \ clear the screen (see `screen.4th')
16*ca987d46SWarner Loshprint_version \ print version string (bottom-right; see `version.4th')
17*ca987d46SWarner Loshdraw-beastie  \ draw freebsd mascot (on right; see `beastie.4th')
18*ca987d46SWarner Loshdraw-brand    \ draw the FreeBSD title (top-left; see `brand.4th')
19*ca987d46SWarner Loshmenu-init     \ initialize the menu area (see `menu.4th')
20*ca987d46SWarner Losh
21*ca987d46SWarner Losh\ Initialize main menu constructs (see `menu.4th')
22*ca987d46SWarner Losh\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5)
23*ca987d46SWarner Losh\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27)
24*ca987d46SWarner Losh
25*ca987d46SWarner Losh\
26*ca987d46SWarner Losh\ MAIN MENU
27*ca987d46SWarner Losh\
28*ca987d46SWarner Losh
29*ca987d46SWarner Loshset menuset_name1="main"
30*ca987d46SWarner Losh
31*ca987d46SWarner Loshset mainmenu_init[1]="init_boot"
32*ca987d46SWarner Loshset mainmenu_caption[1]="Boot Multi User [Enter]"
33*ca987d46SWarner Loshset maintoggled_text[1]="Boot [S]ingle User [Enter]"
34*ca987d46SWarner Loshset mainmenu_command[1]="boot"
35*ca987d46SWarner Loshset mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m"
36*ca987d46SWarner Loshset maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m"
37*ca987d46SWarner Losh\ keycode set by init_boot
38*ca987d46SWarner Losh
39*ca987d46SWarner Loshset mainmenu_init[2]="init_altboot"
40*ca987d46SWarner Loshset mainmenu_caption[2]="Boot [S]ingle User"
41*ca987d46SWarner Loshset maintoggled_text[2]="Boot [M]ulti User"
42*ca987d46SWarner Loshset mainmenu_command[2]="altboot"
43*ca987d46SWarner Loshset mainansi_caption[2]="Boot ^[1mS^[mingle User"
44*ca987d46SWarner Loshset maintoggled_ansi[2]="Boot ^[1mM^[multi User"
45*ca987d46SWarner Losh\ keycode set by init_altboot
46*ca987d46SWarner Losh
47*ca987d46SWarner Loshset mainmenu_caption[3]="[Esc]ape to loader prompt"
48*ca987d46SWarner Loshset mainmenu_command[3]="goto_prompt"
49*ca987d46SWarner Loshset mainmenu_keycode[3]=27
50*ca987d46SWarner Loshset mainansi_caption[3]="^[1mEsc^[mape to loader prompt"
51*ca987d46SWarner Losh
52*ca987d46SWarner Losh\ Enable built-in "Reboot" trailing menuitem
53*ca987d46SWarner Losh\ NOTE: appears before menu_options if configured
54*ca987d46SWarner Losh\
55*ca987d46SWarner Loshset mainmenu_reboot
56*ca987d46SWarner Losh
57*ca987d46SWarner Losh\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
58*ca987d46SWarner Losh\ separator is inserted before that menuitem number.
59*ca987d46SWarner Losh\
60*ca987d46SWarner Loshset mainmenu_options=5
61*ca987d46SWarner Losh
62*ca987d46SWarner Loshset mainmenu_kernel=5
63*ca987d46SWarner Loshset mainmenu_command[5]="cycle_kernel"
64*ca987d46SWarner Loshset mainmenu_keycode[5]=107
65*ca987d46SWarner Losh
66*ca987d46SWarner Loshset mainmenu_caption[6]="Configure Boot [O]ptions..."
67*ca987d46SWarner Loshset mainmenu_command[6]="2 goto_menu"
68*ca987d46SWarner Loshset mainmenu_keycode[6]=111
69*ca987d46SWarner Loshset mainansi_caption[6]="Configure Boot ^[1mO^[mptions..."
70*ca987d46SWarner Losh
71*ca987d46SWarner Loshs" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if]
72*ca987d46SWarner Losh    set mainmenu_caption[7]="Select Boot [E]nvironment..."
73*ca987d46SWarner Losh    set mainmenu_command[7]="3 goto_menu"
74*ca987d46SWarner Losh    set mainmenu_keycode[7]=101
75*ca987d46SWarner Losh    set mainansi_caption[7]="Select Boot ^[1mE^[37mnvironment..."
76*ca987d46SWarner Losh
77*ca987d46SWarner Losh    s" chain_disk" getenv? [if]
78*ca987d46SWarner Losh	set mainmenu_caption[8]="Chain[L]oad ${chain_disk}"
79*ca987d46SWarner Losh	set mainmenu_command[8]="chain ${chain_disk}"
80*ca987d46SWarner Losh	set mainmenu_keycode[8]=108
81*ca987d46SWarner Losh	set mainansi_caption[8]="Chain^[1mL^[moad ${chain_disk}"
82*ca987d46SWarner Losh    [then]
83*ca987d46SWarner Losh[else]
84*ca987d46SWarner Losh    s" chain_disk" getenv? [if]
85*ca987d46SWarner Losh	set mainmenu_caption[7]="Chain[L]oad ${chain_disk}"
86*ca987d46SWarner Losh	set mainmenu_command[7]="chain ${chain_disk}"
87*ca987d46SWarner Losh	set mainmenu_keycode[7]=108
88*ca987d46SWarner Losh	set mainansi_caption[7]="Chain^[1mL^[moad ${chain_disk}"
89*ca987d46SWarner Losh    [then]
90*ca987d46SWarner Losh[then] [else] drop [then]
91*ca987d46SWarner Losh
92*ca987d46SWarner Losh
93*ca987d46SWarner Losh\
94*ca987d46SWarner Losh\ BOOT OPTIONS MENU
95*ca987d46SWarner Losh\
96*ca987d46SWarner Losh
97*ca987d46SWarner Loshset menuset_name2="options"
98*ca987d46SWarner Losh
99*ca987d46SWarner Loshset optionsmenu_caption[1]="Back to Main Menu [Backspace]"
100*ca987d46SWarner Loshset optionsmenu_command[1]="1 goto_menu"
101*ca987d46SWarner Loshset optionsmenu_keycode[1]=8
102*ca987d46SWarner Loshset optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m"
103*ca987d46SWarner Losh
104*ca987d46SWarner Loshset optionsmenu_caption[2]="Load System [D]efaults"
105*ca987d46SWarner Loshset optionsmenu_command[2]="set_default_boot_options"
106*ca987d46SWarner Loshset optionsmenu_keycode[2]=100
107*ca987d46SWarner Loshset optionsansi_caption[2]="Load System ^[1mD^[mefaults"
108*ca987d46SWarner Losh
109*ca987d46SWarner Loshset optionsmenu_options=3
110*ca987d46SWarner Loshset optionsmenu_optionstext="Boot Options:"
111*ca987d46SWarner Losh
112*ca987d46SWarner Loshset optionsmenu_acpi=3
113*ca987d46SWarner Loshset optionsmenu_caption[3]="[A]CPI Support off"
114*ca987d46SWarner Loshset optionstoggled_text[3]="[A]CPI Support On"
115*ca987d46SWarner Loshset optionsmenu_command[3]="toggle_acpi"
116*ca987d46SWarner Loshset optionsmenu_keycode[3]=97
117*ca987d46SWarner Loshset optionsansi_caption[3]="^[1mA^[mCPI Support ^[34;1mOff^[m"
118*ca987d46SWarner Loshset optionstoggled_ansi[3]="^[1mA^[mCPI Support ^[32;7mOn^[m"
119*ca987d46SWarner Losh
120*ca987d46SWarner Loshset optionsmenu_init[4]="init_safemode"
121*ca987d46SWarner Loshset optionsmenu_caption[4]="Safe [M]ode... off"
122*ca987d46SWarner Loshset optionstoggled_text[4]="Safe [M]ode... On"
123*ca987d46SWarner Loshset optionsmenu_command[4]="toggle_safemode"
124*ca987d46SWarner Loshset optionsmenu_keycode[4]=109
125*ca987d46SWarner Loshset optionsansi_caption[4]="Safe ^[1mM^[mode... ^[34;1mOff^[m"
126*ca987d46SWarner Loshset optionstoggled_ansi[4]="Safe ^[1mM^[mode... ^[32;7mOn^[m"
127*ca987d46SWarner Losh
128*ca987d46SWarner Loshset optionsmenu_init[5]="init_singleuser"
129*ca987d46SWarner Loshset optionsmenu_caption[5]="[S]ingle User. off"
130*ca987d46SWarner Loshset optionstoggled_text[5]="[S]ingle User. On"
131*ca987d46SWarner Loshset optionsmenu_command[5]="toggle_singleuser"
132*ca987d46SWarner Loshset optionsmenu_keycode[5]=115
133*ca987d46SWarner Loshset optionsansi_caption[5]="^[1mS^[mingle User. ^[34;1mOff^[m"
134*ca987d46SWarner Loshset optionstoggled_ansi[5]="^[1mS^[mingle User. ^[32;7mOn^[m"
135*ca987d46SWarner Losh
136*ca987d46SWarner Loshset optionsmenu_init[6]="init_verbose"
137*ca987d46SWarner Loshset optionsmenu_caption[6]="[V]erbose..... off"
138*ca987d46SWarner Loshset optionstoggled_text[6]="[V]erbose..... On"
139*ca987d46SWarner Loshset optionsmenu_command[6]="toggle_verbose"
140*ca987d46SWarner Loshset optionsmenu_keycode[6]=118
141*ca987d46SWarner Loshset optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m"
142*ca987d46SWarner Loshset optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m"
143*ca987d46SWarner Losh
144*ca987d46SWarner Losh\
145*ca987d46SWarner Losh\ BOOT ENVIRONMENT MENU
146*ca987d46SWarner Losh\
147*ca987d46SWarner Losh
148*ca987d46SWarner Loshset menuset_name3="bootenv"
149*ca987d46SWarner Losh
150*ca987d46SWarner Loshset bemenu_current="Active: "
151*ca987d46SWarner Loshset beansi_current="^[1m${bemenu_current}^[m"
152*ca987d46SWarner Loshset bemenu_bootfs="bootfs: "
153*ca987d46SWarner Loshset beansi_bootfs="^[1m${bemenu_bootfs}^[m"
154*ca987d46SWarner Loshset bemenu_page="[P]age: "
155*ca987d46SWarner Loshset beansi_page="^[1mP^[mage: "
156*ca987d46SWarner Loshset bemenu_pageof=" of "
157*ca987d46SWarner Loshset beansi_pageof="${bemenu_pageof}"
158*ca987d46SWarner Loshset zfs_be_currpage=1
159*ca987d46SWarner Losh
160*ca987d46SWarner Loshset bootenvmenu_init="init_bootenv"
161*ca987d46SWarner Losh
162*ca987d46SWarner Loshset bootenvmenu_command[1]="be_draw_screen 1 goto_menu"
163*ca987d46SWarner Loshset bootenvmenu_keycode[1]=8
164*ca987d46SWarner Losh
165*ca987d46SWarner Loshset bootenvmenu_command[2]="set_bootenv"
166*ca987d46SWarner Loshset bootenvmenu_keycode[2]=97
167*ca987d46SWarner Loshset bootenv_root[2]="${zfs_be_active}"
168*ca987d46SWarner Losh
169*ca987d46SWarner Loshset bootenvmenu_command[3]="set_be_page"
170*ca987d46SWarner Loshset bootenvmenu_keycode[3]=112
171*ca987d46SWarner Losh
172*ca987d46SWarner Loshset bootenvmenu_options=4
173*ca987d46SWarner Loshset bootenvmenu_optionstext="Boot Environments:"
174*ca987d46SWarner Losh
175*ca987d46SWarner Losh\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
176*ca987d46SWarner Losh\ customize the timeout; default is 10-seconds)
177*ca987d46SWarner Losh\
178*ca987d46SWarner Loshset menu_timeout_command="boot"
179*ca987d46SWarner Losh
180*ca987d46SWarner Losh\ Include optional elements defined in a local file
181*ca987d46SWarner Losh\
182*ca987d46SWarner Loshtry-include /boot/menu.rc.local
183*ca987d46SWarner Losh
184*ca987d46SWarner Losh\ Initialize boot environment variables
185*ca987d46SWarner Losh\
186*ca987d46SWarner Loshs" reloadbe" sfind ( xt|0 bool ) [if]
187*ca987d46SWarner Losh    s" bootenv_autolist" getenv dup -1 = [if]
188*ca987d46SWarner Losh	drop s" execute" evaluate		\ Use evaluate to avoid passing
189*ca987d46SWarner Losh						\ reloadbe an optional parameter
190*ca987d46SWarner Losh    [else]
191*ca987d46SWarner Losh	s" YES" compare-insensitive 0= [if]
192*ca987d46SWarner Losh	    s" execute" evaluate
193*ca987d46SWarner Losh	[then]
194*ca987d46SWarner Losh    [then]
195*ca987d46SWarner Losh[else]
196*ca987d46SWarner Losh    drop ( xt=0 )
197*ca987d46SWarner Losh[then]
198*ca987d46SWarner Losh
199*ca987d46SWarner Losh\ Display the main menu (see `menu.4th')
200*ca987d46SWarner Loshset menuset_initial=1
201*ca987d46SWarner Loshmenuset-loadinitial
202*ca987d46SWarner Loshmenu-display
203