sisterm 2.4.0

A simple terminal with syntax highlighting
Documentation

sisterm

Actions Status Crate license

sisterm(sist) is a simple terminal with syntax highlighting which supports:

  • Serial port connections
  • TCP/IP (telnet) connections
  • Log replaying

Screenshot

Command-line options

USAGE:
    sist [FLAGS] [OPTIONS] [SUBCOMMAND]

FLAGS:
    -n, --no-color        Without color
    -t, --time-stamp      Add timestamp to log
    -a, --append          Append to log  (default overwrite)
    -i, --instead-crlf    Send '\r\n' instead of '\r'
    -h, --help            Prints help information
    -V, --version         Prints version information

OPTIONS:
    -l, --line <PORT>      The device path to a serial port  (auto detection)
    -s, --speed <BAUD>     The baud rate to connect at [default: 9600]
    -r, --read <FILE>      Output text from file
    -w, --write <FILE>     Saved log
    -c, --config <FILE>    Specify configuration file
                           [default $HOME/.config/sisterm/config.toml]

SUBCOMMANDS:
    telnet      Login to remote system host with telnet
    tcp         TCP connection without telnet
    generate    Generate configuration file
    help        Prints this message or the help of the given subcommand(s)

Escape sequences

Keystroke Action
~. Drop the connection and exit
~^D Drop the connection and exit
~^Z Suspend (POSIX)
~n Toggles the no-color
~t Toggles the time-stamp
~i Toggles the instead-crlf
~d Toggles the debug mode
~~ Send ~
~! Run command in a sh or cmd
~$ Run command, sending the standard output
~? Print this help

Installation

The binary name for sisterm is sist.
sisterm is written in Rust, so you'll need to grab a Rust installation in order to compile it. sisterm compiles with Rust 1.43.0 (stable) or newer. Although sisterm may work with older versions.

$ cargo install sisterm

After that, execute the following to generate a configuration file.

$ sist generate

Building

$ git clone https://github.com/kumavale/sisterm
$ cd sisterm
$ cargo build --release

Customizing

  • Windows
    %LOCALAPPDATA%\sisterm\config.toml
  • Linux
    $HOME/.config/sisterm/config.toml

sisterm configuration file is written in TOML format.
Its syntax is similar to Perl-style regular expressions, but lacks a few features like look around and backreferences.
For more specific details on the API for regular expressions, please see the documentation for the Regex type.

[[colorings]]
color = "String"             # required
regex = ["String", ...]      # required
underlined = Boolean         # option
ignore_whitespace = Boolean  # option

Color syntax

# Color example
#   RED
#   001
#   FF0000
#   #FF0000
#   (255, 0, 0)
#
# Predefined colors
#   BLACK
#   RED
#   GREEN
#   YELLOW
#   BLUE
#   MAGENTA
#   CYAN
#   WHITE

Example

# string
[[colorings]]
color = "184"
regex = ["(\".*\")|('.*')|(\".*)|('.*)"]
ignore_whitespace = true

# positive
[[colorings]]
color = "GREEN"
regex = ["(?i)yes|up|enable|enabled|active(?-i)"]

# negative
[[colorings]]
underlined = true
color = "(255, 0, 0)"
regex = ["unassigned|disable|disabled|deny|shutdown|down|administratively|none"]

Environment

  • Linux (Serialport is not available on WSL1)
  • Windows

Dependencies

For GNU Linux pkg-config and libudev headers are required

  • Ubuntu: sudo apt install pkg-config libudev-dev
  • Fedora: sudo dnf install pkgconf-pkg-config systemd-devel
  • Other: Some Linux distros are providing pkgconf.org's pkgconf package instead of freedesktop.org's pkg-config.

License

MIT

Note

  • If sisterm failed to open your COM port, it may be because the user who ran sisterm does not have privileges to access it. To give yourself access privileges, run: sudo chmod 666 /path/to/serialport, running your program as the super-user (root), or making your program set-userid so that it runs as the owner of the device file.
  • If the characters couldn't be sent, try the --instead-crlf option