Introduction
EtherTerm is a portable terminal emulator and telnet/ssh client for Windows and Unix. 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.
EtherTerm is comparable to programs such as Syncterm and Netrunner. Notably: It is an SDL graphics program and makes use of full OpenGL/DirectX graphics acceleration.
Project details
EtherTerm is Public Domain Software, (c) 2014-2017 Michael Griffin <mrmisticismo@hotmail.com>
Currently, no auto-configure environment is provided, and build targets are
limited to Windows, Linux, and OSX. EtherTerm is Alpha software. Please
report any issues or feature requests as a github issue
. Pull requests welcome.
Fonts
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)
Fullscreen
ALT + ENTER
cycles between:
- 1x unscaled window
- 2x scaled window
- scaled fullscreen
Keymapping
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/Paste
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.
Dialing directory
To add new systems or remove, you must edit the assets/dialdirectory.xml
file.
Downloads
Windows 0.4.4 (Latest) Preview
For all other systems, you must build from the project folder.
Building
First you will want to clone the repository or download the zip/tarball:
git clone https://github.com/M-griffin/EtherTerm.git
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.
For Windows, MINGW32 or 64 is required.
NOTE: EtherTerm will seek an
./assets
folder relative to the executable. In this way, it is not (yet) a very "portable" executable. At this stage, please execute only from the project folder../EtherTerm
to run on unix systems, or justEtherTerm
on Windows.
Manual Compile
EtherTerm must be compiled with latest c++ environment flags: At the very least and you can replace 0x with 11 on newer compilers. Usually g++ (4.7)+ or compatible compiler:
-std=gnu++0x or -std=c++0x
To build windows you must already have a compiler and the requirements. You can use a good IDE like CodeLite, CodeBlocks, or Visual Studio. You must install the libs and setup the include paths, like any project.
With Windows you will need to setup a command line environment appropriate for compilation of this project, or create a build target with the necessary settings using a project file of your preferred IDE:
Quick build steps with Package Mangers
For Linux and OSX you can quickly and easily build EtherTerm.
OSX
- install HomeBrew
brew install sdl2 sdl2_net libssh
make clean-osx
make osx
Ubuntu, Mint, and Debian Linux
sudo apt-get install build-essential
sudo apt-get install libsdl2-dev libsdl2-net-dev libssh-dev libyaml-cpp-dev
make clean-linux
make linux
Arch Linux
sudo pacman -S sdl2 sdl2_net extra/libssh
make clean-linux
make linux-arch
Changelog
v2.3
-
ALT + H
for quick disconnection ("hangup") - SSH login/password prompts when not specified in
assets/dialdirectory.xml
- selection of various input key mappings (VT100, ANSI, etc.)
TODO
- "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.
Acknowledgments and Thanks
- 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.