-add new config file commands: x -chpasswd (change user's password) -chmail (change user's email address) -watch_menu (go to the watching menu) -login (login user) -newuser (register new user) -quit (quit from dgl) -game_menu "x" (go to game menu "x") -return (return to main menu) -start_game (start the selected game) -maybe allow new menu options configurable in config file, like commands['O', "Edit config file with foo"] = exec "foo" "rcfile" OR: menu "mainmenu_anon" { option { keys = 'l' name = "l) Login" commands = login } option { keys = 'r' name = "r) Register new user" commands = newuser flags = allow_new_nicks } option { keys = 'w' name = "w) Watch games in progress" commands = watch_menu } emptyline option { keys = 'q', 'Q' name = "q) Quit" commands = quit } } possibly adding a location = (x,y) key into menu option, allowing absolute positioning of the option. OR: (this looks nicer, but requires also editing the external text files) menu "mainmenu_anon" { banner = "dglmenu_main_anon.txt" cursor = (x,y) commands['l'] = login commands['r'] = newuser commands['w'] = watch_menu commands['q'] = quit } menu "mainmenu_loggedin" { banner = "dglmenu_main_loggedin.txt" cursor = (x,y) commands['c'] = chpasswd commands['e'] = chmail commands['w'] = watch_menu commands['q', 'Q'] = quit commands['1'] = game_menu "NH343" commands['2'] = game_menu "Crxxx" commands['3'] = game_menu "NhStb" } and the game submenus? define { blahblahblah game data here short_name = "NH343" menu { banner = "dglmenu_game_nh343.txt" cursor = (x,y) commands['c'] = chpasswd commands['e'] = chmail commands['w'] = watch_menu commands['o'] = exec "virus" "%rrcfiles/%n.nethackrc" commands['q'] = return commands['p'] = # back up savefile commands = cp "/var/games/nethack/save/%u%n.gz" "/var/games/nethack/save/%u%n.gz.bak", # set NETHACKOPTIONS to point to the rcfile setenv "NETHACKOPTIONS" "@%rrcfiles/%n.nethackrc", # set up nethack mail stuff, assuming it's compiled with it... setenv "MAIL" "/var/mail/%n", setenv "SIMPLEMAIL" "1", # don't let the mail file grow unlink "/var/mail/%n", # aannnd we're off! start_game } } and maybe allow changing the watching-screen layout too? -add commandline parameters to dgamelaunch: dgamelaunch --chpasswd "nick" "newpass" dgamelaunch --wall "message to mail everyone" these are obviously only for the server admin... -allow setting the default watch-screen sortmode in config file. -some games (robotfindskitten?) are not worth saving into ttyrecs, make it configurable. -allow configuring ttyplay.c; some games may use different clear-screen commands. (see for example crawl) -public (no-password) accounts? (a per-user flag) what happens when someone is playing on the account and someone else logins and we start playing? -change the watching screen not to show the 'press 'm' to mail user' part, if spool isn't enabled. -info screen (more than just the banner), for info about the game(s) and the server, etc. -allow more than one editor per dgl -allow users to run recover themselves -make dgl show # of watchers -configurable stuff: allowed chars in usernames, allow char stripping, ... - Flags for operators/staff/admins or (optionally) user-bans. - Localization of variables, code clean up - Use /var/run/nologin and/or dgl-specific nologin file - Honor window size changes (currently the player has to relogin if window size changes)