# Terminalizer [![npm](https://img.shields.io/npm/v/terminalizer.svg)](https://www.npmjs.com/package/terminalizer) [![npm](https://img.shields.io/npm/l/terminalizer.svg)](https://github.com/faressoft/terminalizer/blob/master/LICENSE) [![Gitter](https://badges.gitter.im/join_chat.svg)](https://gitter.im/terminalizer/Lobby) [![Unicorn](https://img.shields.io/badge/nyancat-approved-ff69b4.svg)](https://www.youtube.com/watch?v=QH2-TGUlwu4) > Record your terminal and generate animated gif images
Built to be jusT cOol 👌🦄 ! > If you think so, support me by a `start` and a `follow` 😘 Built while listening to [Ever Felt Pt.1 - Otis McDonald](https://www.youtube.com/watch?v=-BiXhuRq7fU) 🎵 And [Nyan Cat](https://www.youtube.com/watch?v=QH2-TGUlwu4) 😛 # Table of Contents * [Features](#features) * [Installation](#installation) * [Getting Started](#getting-started) * [Compression](#compression) * [Usage](#usage) * [Config](#config) * [Record](#record) * [Play](#play) * [Render](#render) * [Share](#share) * [Generate](#generate) * [Configurations](#configurations) * [Recording](#recording) * [Delays](#delays) * [GIF](#gif) * [Terminal](#terminal) * [Theme](#theme) * [Watermark](#watermark) * [Frame Box](#frame-box) * [Null Frame](#null-frame) * [Window Frame](#window-frame) * [Floating Frame](#floating-frame) * [Solid Frame](#solid-frame) * [Solid Frame Without Title](#solid-frame-without-title) * [Styling Hint](#styling-hint) * [License](#license) ## Features * Highly customizable. * Corss platform (Linux, Windows, MacOS). * Custom `window frames`. * Custom `font`. * Custom `colors`. * Custom `styles` with `CSS`. * Watermark. * Edit before rendering. * Skipping frames by a step value to reduce the number of rendered frames. * Render images with texts on them instead of capturing your screen for better quality. * The ability to configure: * The command to capture (bash, powershell.exe, yourOwnCommand, etc) * The current working directory. * Explicit values for the number of cols and rows. * GIF quality and repeating. * Frames delays. * The max idle time between frames. * cursor style. * font. * font size. * line height. * letter spacing. * theme. ## Installation You need first to install [Node.js](https://nodejs.org/en/download/), then install the tool globally using this command: ```bash npm install -g terminalizer ``` ## Getting Started Start recording your terminal using the command `record`. ```bash terminalizer record demo ``` A file called `demo.yml` will be created in the current directory. You can open it using any editor to edit the configurations and the recoreded frames. You can replay your recording using the command `play`. ```bash terminalizer record demo ``` Now let's render our recording as an animated gif. ```bash terminalizer render demo ``` ### Compression GIF compression is not implementated yet. For now we recommend [https://gifcompressor.com](https://gifcompressor.com). ## Usage > You can use the option `--help` to get more details about the commands and their options. ```bash terminalizer#afafaf
.
* cursor: #c7c7c7
.
* black: #232628
.
* red: #fc4384
.
* green: #b3e33b
.
* yellow: #ffa727
.
* blue: #75dff2
.
* magenta: #ae89fe
.
* cyan: #708387
.
* white: #d5d5d0
.
* brightBlack: #626566
.
* brightRed: #ff7fac
.
* brightGreen: #c8ed71
.
* brightYellow: #ebdf86
.
* brightBlue: #75dff2
.
* brightMagenta: #ae89fe
.
* brightCyan: #b1c6ca
.
* brightWhite: #f9f9f4
.
## Watermark
You can add a watermark logo to your generated GIF images.
```
watermark:
imagePath: AbsolutePathOrURL
style:
position: absolute
right: 15px
bottom: 15px
width: 100px
opacity: 0.9
```
* `watermark.imagePath`: An absolute path for the image on your machine or a url.
* `watermark.style`: Apply CSS styles (camelCase) to the watermark image, like resizing it.
## Frame Box
Terminalizer comes with predefined frames that you can use to make your GIF images look cool.
* `frameBox.type`: Can be `null`, `window`, `floating`, or `solid`.
* `frameBox.title`: To display a title for the frame or `null`.
* `frameBox.style`: To apply custom CSS styles or to overwrite the current onces.
### Null Frame
No frame, just your recording.
> Don't forget to add a `backgroundColor` under `style`.
```
frameBox:
type: null
title: null
style:
backgroundColor: black
```
### Window Frame
```
frameBox:
type: window
title: Terminalizer
style: []
```
### Floating Frame
```
frameBox:
type: floating
title: Terminalizer
style: []
```
### Solid Frame
```
frameBox:
type: solid
title: Terminalizer
style: []
```
### Solid Frame Without Title
```
frameBox:
type: solid
title: null
style: []
```
### Styling Hint
You can disable the default shadows and margins by:
```
frameBox:
type: solid
title: null
style:
boxShadow: none
margin: 0px
```
# License
This project is under the MIT license.