You can follow the latest updates and work in the
feature/0.4.0-alpha branch. As updates and changes are made stable pull requests will merge the updates back to the master branch.
The removal of Boost libs will be replaced with standard C++11 functionally instead. The build and project files are currently in the process of being rewritten and separated in folders by environment/os.
The previous 3.0 Demo branch is a fork and rewrite of the internals for EtherTerm. This version differs a bit as asynchronous sockets were added along with the ability to open several connections in their own windows. Other telnet option fixes and updates to the terminal have also been added along with some pre-testing of file upload/downloads. Still very raw (Dialing Directory is still unfinished. This more of a POC (Proof of concept) rewrite to see what can be done differently. Also some rendering changes were made and are in testing such as recolor blocks using alpha channels for a slight speed up.
Note the 3.x branch had some experimental stuff I was testing, right now I've had to roll back several commits and some things are disabled until I get time to fix and re-implement them. Mainly input fields for SSH Connections.
Please keep in mind this is Alpha Software and is very much a work in progress.
Table of Contents
EtherTerm is a portable terminal emulator and telnet/ssh client for Windows Linux, BSD, Arm and OSX. It differs from standard terminal emulators such as xterm and PuTTY by providing a common telnet and ssh protocol across platforms, with particular focus on font sets appropriate for connecting to BBS servers using cp437, and Amiga art. UTF-8 Font glyphs are planned for the future.
EtherTerm is comparable to programs such as syncterm and netrunner. Notably: It is an SDL2 graphics program and makes use of full OpenGL/DirectX graphics acceleration. This is not a console application.
EtherTerm is Open Source Software, (c) 2014-2018 Michael Griffin <firstname.lastname@example.org>
Currently, no auto-configure environment is provided, and build targets are limited to Windows, Linux, ARM, FreeBSD and OSX.
EtherTerm is Alpha software. Please report any issues or feature requests as a github issue. Pull requests and contributions are always welcome.
Each system can be setup with a default font. Any systems using Syncterm escape sequences for font switching will override the default font.
- VGA-8x16 (CP437)
- MicroKnightPlus-8x16 (AMIGA)
- Mo'soul-8x16 (AMIGA)
- Pot Noodle-8x16 (AMIGA)
- Topaz Plus-8x16 (AMIGA)
ALT + ENTER cycles between:
- 1x unscaled window
- 2x scaled window
- scaled fullscreen
Etherterm currently follows the default Windows telnet output keys sequences as used in Syncterm as ANSI, VT100, LINUX and SCO key mappings are also available.
Copy and paste is comparable to X11:
Left mouse click and drag to
select text on the screen, release to copy selected text to the clipboard.
Right mouse click to paste text from the clipboard.
To add new systems or remove, you must edit the
For all other systems, you must build from the project folder.
Generally, the following libraries must be installed:
- sdl2 and sdl2_net
- libssh (Requires OpenSSL, Zlib)
As well as a recent version of gnu/gcc providing g++, or clang.
GCC/G++ version 5.x and above are required along with -std=c++11
FreeBSD 11 and OSX Sierra have been tested with latest version of clang LLVM
For Windows, mingw32 or 64 is required.
- NOTE: EtherTerm will seek an
./assetsfolder relative to the executable. In this way, it is not (yet) a very "portable" executable. At this stage, a build folder has been created with quick scripts that will copy from the DEBUG folder to the build folder where the assets is now located by default.
- "change_scroll_region": csr terminal sequence.
- "alternate screen" buffer: smcup, rmcup terminal sequence.
- scrollback buffer.
- interactively edit the dialing directory.
- other runtime configuration/setup options.
- alternative window sizes, currently limited to only 80x25.
- attempting to reach compliance with terminal type 'xterm-256color'.
- transfer protocols (x, y, and z-modem).
- ftp client support.
- utf-8 encoding.
- dingo: Telnet options and general terminal functionality.
- g00r00: Optimization ideas on scrolling pixels faster.
- SDL Game Development.
- maze: Testing and bug reports.
- Caphood: Testing and bug reports.
- IceDevil: Testing and bug reports.
- haliphax: Testing and bug reports.
- hellbeard: Testing and bug reports.
EtherTerm is available under the zlib license : This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.