website/content/blog/termtosvg.md
2023-01-18 11:50:40 -05:00

56 lines
1.4 KiB
Markdown

---
title: "Terminal Output To SVG Animations"
date: 2022-01-17T10:14:22-05:00
draft: false
tags: []
math: false
medium_enabled: true
---
With [`termtosvg`](https://github.com/nbedos/termtosvg) made by Nicolas Bedo we can make SVG animations from terminal output in the style of [asciinema](https://asciinema.org/). To install use [pipx](/blog/managepythonapps/).
```bash
pipx install termtosvg
```
To start recording, run the command `termtosvg`
```bash
termtosvg
```
It first outputs:
```
Recording started, enter "exit" command or Control-D to end
```
At "exit", by default it will save the animation to a random filename in the tmp folder.
```
Rendering ended, SVG animation is /tmp/termtosvg_xmadgf9y.svg
```
To control the default save location, pass in a filename after `termtosvg`
```bash
termtosvg /path/to/savefile.svg
```
To record only the execution of a particular command, use the flag `-c`
```bash
termtosvg -c neofetch
```
I recommend that you resize the terminal window so that the frames generated match the desired width and height. You can instead use the `-g` flag to pass in a geometry. ("100x30" creates a screen with 100 colums and 30 rows)
Lastly, if you don't want an animation, you can pass in `-s` and the result will be a folder of SVG files representing each frame.
```bash
termtosvg -s
```
Here is an example of an animation I made with this tool:
![](/files/images/blog/202201171031.svg)