Synchronet v3.18b-Win32 (install) has been released (Sept-2020).

Synchronet v3.19a, now under development, requires libarchive-dev to build successfully.

You can donate to the Synchronet project using PayPal.

Full Screen Editor

fseditor.js is a Full Screen Editor (FSE) written by Deuce in JavaScript1) for the Synchronet Terminal Server.


The newest version of fseditor can always be download from:*checkout*/exec/fseditor.js


fseditor.js is normally installed into the Synchronet exec directory.


To add fseditor.js to your FSE list, use the following settings in SCFG->External Programs->External Editors:

║                         FSEditor.js Editor                         ║
║ │Name                            FSEditor.js                       ║
║ │Internal Code                   FSEDITOR                          ║
║ │Command Line                    ?fseditor %f                      ║
║ │Access Requirements             ANSI                              ║
║ │Intercept I/O                   No                                ║
║ │Native Executable               No                                ║
║ │Use Shell to Execute            No                                ║
║ │Record Terminal Width           Yes                               ║
║ │Word-wrap Quoted Text           Yes, for terminal width           ║
║ │Automatically Quoted Text       All                               ║
║ │Editor Information Files        WWIV EDITOR.INF/RESULT.ED         ║
║ │Expand Line Feeds to CRLF       Yes                               ║
║ │Handle Soft Carriage Returns    Retain                            ║
║ │Strip FidoNet Kludge Lines      No                                ║
║ │Support UTF-8 Encoding          No                                ║
║ │BBS Drop File Type              None                              ║

Command Line

The first argument to fseditor.js must be the path/name of the file to edit (specified as %f in SCFG).

Optionally, -utf8 may be passed as a secondary argument to enable UTF-8 message support.


The ctrl/modopts.ini file may contain an [fseditor] section with the following keys:

Key Default Description
utf8_support false Enable UTF-8 message support (experimental at this time)
default_tabstop 8 Specify the default interval of tab-stops (can be overridden and saved per-user)
soft_cr false Soft carriage-returns are included in saved files

Key Bindings

The key bindings for using fseditor.js are:

Edit Mode

In edit mode, the following CTRL keys function:

CTRL-Key Action
@ Colour/Attribute (Same as CTRL-A)
A Colour/Attribute
B Home cursor (Beginning of line)
C Center line in message
E End of line
F Right one character
G Enter Graphic Char
H Backspace
I Tab
J Down one line
K List keybindings
L Insert line
M Carriage Return
N Page Down
P Page Up
Q Quick abort
R Redraw screen
S Edit Subject
T Change Tab Size
U Quote
V Toggle insert mode
W Delete word backwards
Y Delete Line
Z Save and exit
\ Edit Subject (Same as Xon CTRL-S)
] Move left
^ Move up
_ Quick abort (Same as Xoff CTRL-Q)

Quote Mode

Key Action
CTRL-B Home (Top of document)
CTRL-E End of document
CTRL-J Down one line
CTRL-K List keybindings
CTRL-N Page Down
CTRL-P Page Up
CTRL-Q Quick abort... FLOW CONTROL CHAR!!!
CTRL-R Redraw screen
CTRL-^ Up one line
CTRL-_ Quick abort (Same as CTRL-Q)
SPACE Toggle sepection of current line
ENTER Pastes selected lines into message
A Select All
B Enter block mode
N Unselect all (“Select None”)

A few notes on keybindings

I am not completely opposed to changing some keybindings. However, the current ones fall into three catagories:

  1. “Keepers” ones that I like and would need a very good reason to change.
  2. “Lukewarm” ones I understand but don't particularily like very much.
  3. “Changers” ones I would change in a heartbeat if I had an alternative.

The breakdown is as follows:

  • Lukewarm: KSTVY\]
  • Changers: @NPQU_

The following CTRL keys are currently unused: DOX[

CTRL-Q and CTRL-S I do *not* want to use without alternates as they are the Xon/Xoff chars used in flow control and are sometimes impossible to send from a terminal.

I am open to suggestions.

See Also

the first of its kind

In Other Languages
Translations of this page: