Subj : Global Commands
To   : Digital Man
From : Evan Elias
Date : Wed Feb 20 2002 03:17 pm

 Re: Global Commands
 By: Digital Man to Evan Elias on Wed Feb 20 2002 01:09 pm

>  >  >  > and can I only use CTRL-Keys as a global command?
>  >  >
>  >  > Yes. Otherwise, they would interfere with normal operations. Imagine i
>  >  > the letter 'T' for a global command. How would you send e-mail to Tom?
>  >
>  > Well, using ordinary letters wouldn't work well for obvious reasons, but
>  > there's many alternatives to CTRL keys.  Several BBS packages have global
>  > begin with a / or an =... for example, listing who's online in WG is done
>  > typing =# or /# at the start of a line.  I guess the difference comes int
>  > that WG is not hotkey-based while Sync (usually) is though... but I still
>  > find myself trying to to /# on Sync boards from time to time, old habits
>  > hard to break :(
>
> Those types of global commands would interfere with other features/functions
> the classic Synchronet command shell, the internal message editor, and
> eventually external programs/doorgames. Ctrl keys have a lot fewer conflicts

I meant from a strictly optional / sysop-configurable standpoint, definitely
not something that would be automatically enabled... I was thinking of
something like a Globals sysop editor, simply allowing certain keystrokes (or
combinations) to be associated with a javascript file, and then perhaps a flag
system to configure which Globals were enabled for each command shell, and
additionally an option on each door/external to disable all globals for users
in that program.  That would pretty much take care of conflicts, but on the
other hand I'm sure it'd be a less-than-fun addition to make to the source, so
I can kinda understand sticking to the control keys.

I think the way mbbs/wg did it was all input from the user was first routed to
the globals package (basically a module that the sysop chose to install...
there were several different globals packages available from different
3rd-party developers).  The globals module would check if the input was one of
its global commands; if it was, it would processs it.  If not, it would pass
the input back to the BBS, which would then send the input to the appropriate
bbs module (menu system, game, or whatever).  And I think there was an option
to disable the globals for any given module, in this case the BBS simply
wouldn't send anything to the globals module first.  It worked pretty well, no
conflicts anyway.  For modules like the full-screen editor, globals were
automatically disabled so no problems there.

---
� Synchronet � Vertrauen � Home of Synchronet � telnet://vert.synchro.net