# termatrix
Cli application to simulate the falling glyphs from "The Matrix" in your terminal (forked from [rustmatrix](https://github.com/meganehouser/rustmatrix)).
## Installation
### Cargo
```shell
cargo install termatrix
```
### NetBSD
```shell
pkgin install termatrix
```
## Usage
```shell
$ termatrix --help
termatrix
USAGE:
termatrix [OPTIONS]
OPTIONS:
-c, --colors
Weighted sequence of colors (repeat color character for greater weight). Valid chars
are: b, c, g, k, m, r, w, y [env: TERMATRIX_COLORS=] [default: g]
-d, --min-step-delay
Minimum value of trace (column) scroll delay in milliseconds. [env:
TERMATRIX_MIN_STEP_DELAY=] [default: 40]
-D, --max-step-delay
Maximum value of trace (column) scroll delay in milliseconds. [env:
TERMATRIX_MAX_STEP_DELAY=] [default: 120]
-f, --update-frequency
Refresh rate (in Hz) for terminal updates. [env: TERMATRIX_UPDATE_FREQUENCY=] [default:
60]
-g, --glyph-set
The set of glyphs which should be displayed. [env: TERMATRIX_GLYPH_SET=] [default: all]
[possible values: all, alpha, alpha_lower, alpha_upper, alphanum, binary, decimal, hex,
hex_lower, hex_upper, special]
-h, --help
Print help information
```
## Customization
## Default
Defaults to green glyphs:
```
termatrix
```
## Colors
You can select a combination of colors via the --colors/-c option:
```
termatrix -c rgbcmy
```
Or via the `TERMATRIX_COLORS` environment variable:
```
TERMATRIX_COLORS=rgbcmy termtarix
```
## Glyph Sets
You can select the subset of glyphs to display via the --glyph-set/-g option:
```
termatrix -g binary
```
Or via the `TERMATRIX_GLYPH_SET` environment variable:
```
TERMATRIX_GLYPH_SET=special termtarix
```
This adjusts which characters compose the alphabet from which each trace can select.
For example, the `binary` glyph set only includes the characters `0` and `1`.
## Step Delays
Step delay is a minimum duration between updates to a trace (vertial cluster of glyphs). The step delay for each trace is a randomly selected duration between the `-min-step-delay` and the `--max-step-delay`.
The variation in step delays results in faster traces passing slower traces. If `--min-step-delay` and `--max-step-delay` are the same, all traces will move at the same rate.