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