Мои студенты недавно интересовались, как и чем я делаю запись экрана с терминала. Поделюсь и с вами.
Начнём с того, что я не записываю терминал в реальном времени. Сначала я создаю сценарий, который в автоматическом режиме будет печатать нужные мне команды. А на выходе получается полноценный GIF-файл.
Софтина называется VHS. Позволяет через код записать GIF-файл.
VHS написана на модном Golang. Для начала устанавливаем. Есть под все операционки, в документации найди свой дистрибутив и накопипасти в терминал.
Я ничего не устанавливал, а пользуюсь Docker-версией, мне так удобнее: все зависимости упакованы в контейнер. Но если от Докера тебя выворачивает, можешь всегда собрать всё это из исходников.
Создаём файл сценария bashdays.tape:
vim bashdays.tape
И пишем код:
Output bashdays.gif
Require echo
Set Shell "bash"
Set FontSize 32
Set Width 1920
Set Height 1080
Type "echo 'Hello this is BashDays'" Sleep 500ms Enter
Type "apt install -y nginx" Sleep 500ms Enter
Sleep 5s
Думаю, тут всё интуитивно понятно: откроется оболочка Bash, настроятся шрифты, высота, длиннота и сообщение, которое будет напечатано. Либо команда, которая будет выполнена. Настроек там дофига, но, как обычно, 90% никем не используются.
После того как сценарий готов, запускаем:
docker run --rm -v $PWD:/vhs ghcr.io/charmbracelet/vhs bashdays.tape
Наблюдаем за процессом создания и на выходе получаем файл bashdays.gif, в котором будет вывод строки через echo и процесс установки Nginx.
Получившийся GIF-файл можно, не отходя от кассы, сразу зашарить на какой-то расшаренный сервер.
Вот такой командой:
docker run --rm -v $PWD:/vhs ghcr.io/charmbracelet/vhs publish bashdays.gif
По итогу получишь прямую ссылку вида: https://vhs.charm.sh/vhs-62gl16v.gif.
Всех с пятницей, хороших предстоящих выходных и береги себя!








Комментарии