The sysop's setup¶
modemmenu -setup changes modemmenu.conf on a full screen, as the BBS
setup programs of the 1990s did: a menu bar of pull-down menus, a blue
desk, a window for each section cascading over the one it was opened
from, the help of the line under the bar in a box below, and the keys on
a bar at the foot.

- The first window has every section, under Login, Users, Menu,
Dial-up and Server (the same as the bar's menus). Enter opens one: its
keys and their values,
(not set)and the sample's value for those the file leaves out. - Enter changes the value under the bar: typed in a box (cursor keys,
Home, End, Del, ^U), or picked from a list for a key the sample gives
the choices of (
yes/no,petscii = auto|yes|no...). Space steps through the choices; Del takes the key out (its default again). An empty box is "not set"; type""for an empty value. [item NAME]and[number NAME]are lists: add one, open it, rename it or delete it. An item renamed or deleted is renamed or taken out of[menu] itemstoo.[groups]takes groups of the sysop's own names.- F1 shows the whole help of the line, / (or F12, or Alt and a
letter) the menus, Esc goes back a window, F10 saves, F9
quits (asking to save what changed).
^Ldraws the screen again. - The help of every key is the sample's (reference), built into the program.
Saving checks the file first, as modemmenu -check does; a file that
does not check is saved only when asked again ("Save anyway"). The file
keeps its comments, blank lines and order: a changed key is changed on
its own line (a comment after it kept), a new key goes after the last of
its section, a new section at the end. The file is written beside the
old one and renamed over it, its mode and owner kept. Each call reads
the file anew, so the next call has the changes; [server] is read when
modemmenu -serve starts.
With no file yet, the setup starts from the sample and saves it there.
On the line¶
A sysop who calls in can have the setup on the menu, as an item of
mode = setup:
It must have users or groups (modemmenu refuses one without), and is
never a guest's. It needs an ANSI terminal of 40x14 at least (80x24 is
better); others are told so. The idle timeout and the call's time limit
hold in it; what was not saved when the call ends is lost. The file is
written as the user modemmenu runs as, which must be able to write it.
Terminals¶
The screens are drawn in UTF-8 where the terminal shows it, in code page
437 for SyncTERM and the ANSI terminals of BBSs, in a VT's line-drawing
set (ESC ( 0) for a VT or xterm without UTF-8, and in ASCII when told
([terminal] charset). A DEC terminal itself (no colors) gets bold and
reverse for the colors. Only the cells that change are sent: moving
the bar costs a hundred bytes or two. At the console, -setup takes
UTF-8 from the locale (LANG), else the VT set for TERM=vt* or
xterm*, code page 437 for TERM=linux or ansi.
See also: Configuration