• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1A .menu file can be used to describe basic menu structures which can be converted
2into C code which can then be compiled into a .c32 file for use with SYSLINUX.
3The format of a .menu file is similar to an ini file, but with important
4differences.
5
6Lines starting with # and ; are treated as comments. Blank lines are used to
7separate the attributes of one menu item from another. Multiple blank lines are
8equivalent to a single one.  In other contexts Blank lines are not significant.
9
10Menus
11-----
12Each menu declaration starts with a line containing the name of menu in [ ].
13This is the "nickname" of the menu and should be different for different menus.
14This is not visible to the user of the menu system. The initial menu must
15be called "main"
16
17The menu declaration is followed by lines which set the attributes of the menu.
18This is followed by a blank line and followed by declaration of menu items in
19that menu.
20
21All lines which occur before the first menu declaration is considered as
22a global declaration.
23
24Abstract Format
25---------------
26
27The overall format should look like this
28
29--------------------------------------------------------
30<GLOBAL SETTINGS>
31
32[menuname1]
33
34<MENU SETTINGS>
35
36<ITEM 1>
37
38...
39
40<ITEM N>
41
42[menuname2]
43
44<MENU SETTINGS>
45
46<ITEM A>
47
48<ITEM B>
49
50----------------------------------------------------------
51
52GLOBAL SETTINGS
53---------------
54The following global settings are now supported. Many of the keywords
55accept what we call a "DOT COMMAND" as argument. Simply put they are
56instructions to the menu system to perform certain actions.
57The syntax and semantics of DOT COMMANDS are given later in the section
58titled "DOT COMMANDS".
59
60videomode: (default 0xFF)  [Use with care]
61   The textmode in which the whole menu system should operate.
62   Must be a number (use 0x notation for hexadecimal).
63   Lookup Ralph Brown Interrupt List and search for Video Mode
64   to find a number to put here.
65
66   setting to 0xFF will mean, menu system will use the current
67   video mode.
68
69title:
70   The title of the whole menu system
71
72top, left, bot, right: (default 0,0,21,79)
73   The area of the screen used by the menu system. The remaining
74   part of the screen can be used by the user for anything.
75
76helpdir: (default /isolinux/help)
77   Location of the directory where help information is stored. The
78   help files must be called "hlpNNNNN.txt" where NNNNN is the helpid.
79
80pwdfile: (default /isolinux/passwd)
81   The name of the password file which contains user, password and permissions
82   See "passwd" file for details regarding format of this file
83
84editrow: (default 23)
85   the row on the screen where one can edit the command line. This must
86   be outside the menu area. Set this to a negative number to disable
87   editing the command line. In case of authenticated users, the current
88   user must have "editcmd" permissions to edit the command line
89
90pwdrow: (default 23)
91   The row on the screen used for user authentication. Must be outside
92   menu area (can be same as editrow). Set to negative to disable
93   user authentication
94
95skipif: (default 0)
96   The OR of the bits in the Shift-flags any of which can cause the menu system
97   to be skipped all together (0 means menu system always runs). It can also
98   be a combination of "Alt","Ctrl","Shift","Caps","Ins","Scroll".
99   When menu system starts it checks if any of the specified keys are On/pressed.
100   If true, the system exits immediately and executes the skipcmd.
101
102   e.g. setting it to "shift-alt-caps" means menu will be skipped if alt OR shift
103   is pressed OR caps is on. setting to "0" means menu will always run.
104
105skipcmd: (default .exit)
106   valid terminal commands: .exit .ignore or any syslinux command
107   command to execute if menu system is skipped. This must be a non-trivial
108   syslinux command if skipcondn is not "0". ".exit" means menu system
109   quits back to the boot prompt.
110
111startfile: (default "")
112   if non-empty the system will display the contents of this file before launching
113   the menusystem. This happens only if the menusystem is not skipped. Can be used
114   to display licensing, usage or welcome messages. A file with given name
115   is expected to be found in the helpdir directory.
116
117exitcmd: (default .exit)
118   valid terminal commands: .exit .repeat or any syslinux command
119   The default command to execute when user quits the menu system.
120
121exitcmdroot: (default =exitcmd)
122   Same as exitcmd except applies when current user has "root" privileges. If not
123   specified, it is assumed to be the same as exitcmd
124
125timeout: (default 3000)
126   The amount of time (in multiple of 0.1 seconds) to wait for user keypress. If no
127   key pressed for specified duration then the timeoutcmd is executed.
128
129totaltimeout: (default 0)
130   The total amount of time (in multiples of 0.1 seconds) the system will wait for
131   user to make a decision. If no decision has been made in the specified duration
132   totaltimeoutcmd will be executed
133
134   NOTE: This does not include the time spent browsing the help system or
135   the time taken for the user to enter his/her authentication credentials.
136
137timeoutcmd: (default .beep)
138   valid terminal commands: .wait .enter .escape or any syslinux command
139   command to execute when we timeout waiting for user input. The commands
140   .enter and .escape tell the menu system to pretend the user typed ENTER or
141   ESCAPE on the keyboard, while .wait tells the menusystem to wait for one
142   more time period
143
144totaltimeoutcmd: (default .wait)
145   choices are the same as for timeoutcmd
146
147MENU SETTINGS
148-------------
149
150title: (must be specified)
151   Title of this menu
152
153row,col: [Usage not recomended]
154   position in screen where this menu should be placed. By default the
155   system will choose an appropriate location.
156
157ITEM ATTRIBUTES
158---------------
159
160item:
161      The string displayed to the user. Characters enclosed in < > are highlighted.
162
163shortcut: (default -1) valid values A-Za-z0-9 or -1 [Usage not recommended]
164      Sets the shortcut key for this item. If set to -1, the system scans for the first
165      highlighted letter in the given range and sets that as the shortcut key.
166
167info: (default same as data)
168      Additional textual information displayed in the status bar
169
170type:
171      the type of entry this item represents. This is one of the following:
172
173      run:       choosing this will run something in SYSLINUX
174                 use data to specify the actual command to execute
175      exitmenu:  exit to parent menu
176      submenu:   choosing will open up submenu
177                 use data to specify the "nickname" of the menu
178                 which should come here
179      sep:       Position a separator here
180      inactive:  menu item is disabled
181      checkbox:  this is a checkbox
182                 use state to set initial state
183      invisible: User does not see this item
184      radioitem: One choice in a radiomenu
185      radiomenu: Allow user to choose one of many choices
186                 (initial choice is always NULL)
187      login:     Selecting this will allow user to login to system
188
189data:
190      for run items, the syslinux command to execute
191      for submenus and radiomenus, nickname of menu
192      for checkboxes, string to be added to kernel command line (if set)
193      for radioitems, string to be added to kernel command line (if chosen)
194
195ipappend:
196      ipappend flag to pass to PXELINUX (harmless for other variants of SYSLINUX)
197      See syslinux documentation for meaning of the FLAGS
198
199helpid: (default 65535 which is not a valid id)
200      associates a context for the help system.
201
202state: (default 0)
203      Initial state of a checkbox (for other items this has no meaning)
204
205perms: (default "")
206      string containing the name of the permission which user must
207      have to activate this item. For eg. if this item is a submenu
208      then user needs the permission in order to open the submenu
209
210argsmenu: (default "")
211      Name of the menu to be scanned for setting additional arguments to
212      pass to command line when this item is chosen for execution. Submenus
213      of specified menu are also scanned. Only checkboxes and radiomenu's
214      are scanned. Items of other type in this menu is silently ignored.
215
216
217DOT COMMANDS
218------------
219Dot commands are basically instructions to the menu system to do certain things.
220
221A "single command" is one of the following
222
223[NT] A syslinux command (any DOT command not starting with a "." is assumed to be this)
224[NT] .beep [n]
225[NT] .help <file>
226[NT] .nop
227[T]  .exit or .quit (equivalent)
228[T]  .repeat or .wait or .ignore (all three are equivalent)
229
230A dot command is a sequence of "single commands" separated by a "%". When a dot command
231is executed the system executes all the given "single commands" in the specified order.
232All the commands marked "[T]" are terminal commands, i.e. when the system encounters
233such a command it stops processing the dot command and returns the terminal command
234which caused the termination to the caller (who usually interprets the command
235appropriately).
236
237All commands marked with [NT] are non-terminal commands, i.e. once these commands are
238processed the system continues to process the remaining "single commands" specified in
239the "DOT COMMAND".
240
241Note: The case of a syslinux command is tricky. When executed, the command should never return
242(if the specified kernel exists) so the fact that we consider it a [NT] should be taken with
243a pinch of salt. However, if the syslinux command does return (in case of no kernel), then
244remaining "single commands" are processed. In particular "ker1 arg1 % ker2 arg2 % ker3 args"
245has the effect of executing the first kernel which exists
246
247.nop:
248   Does nothing.
249.beep:
250   .beep [n] produces a beep n times. n must be between 0 and 9. If not specified n=1.
251   (hence .beep 0 is equivalent to .nop)
252.help:
253   .help <file>
254   Displays the help file <file> which is assumed to be in the "help" directory. Its name
255   does not have to be in the form "hlpNNNNN.txt" (as required by the context sensitive help).
256   Executing this command will mean the appropriate help screen is displayed till the user hits
257   ESCAPE
258
259The meaning of the Terminal commands can vary with the context in which it is used. For example,
260a ".enter" or ".escape" does not have any meaning in the "onerrorcmd" context but it has a meaning
261in the "ontimeout" context. In case the user gives a Terminal command which does not make sense, it
262is upto the code (in this case adv_menu.tpl) to do what it pleases.
263