mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-12-23 18:31:04 +00:00
55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
---
|
|
title: "Term To SVG"
|
|
date: 2022-01-17T10:14:22-05:00
|
|
draft: false
|
|
tags: []
|
|
math: false
|
|
---
|
|
|
|
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/202201171031.svg)
|