Содержание
TLDR
# Устанавливаемnpm install -g terminalizer
# Сохраняем глобальный конфигterminalizer init
# Начинаем запись с названием testterminalizer record -k test
# Рендерим полученную запись в файл test.gifterminalizer render test -o test.gifЗачем оно надо
Это скорее утилита для баловства, ведь всегда можно просто сделать запись области экрана и конвертнуть это дело в GIF, но можно все это делать прямо в терминале.
Помимо прочего, можно загрузить на их сайт запись и переслать кому-лиюо ссылку.
Установка и первый запуск
Для установки потребуется, чтобы на тачке был установлен npm. Устанавливаем для всех пользователей:
npm install -g terminalizerДля того же Mac brew не поможет, но для Arch-а можно воспользоваться версиями из AUR.
# если Вы используете yayyay -S nodejs-terminalizerВсе, все готово к работе, можно запускать:
terminalizer record -k testВ текущем окне будет запущена новая сессия, можете в ней потыкать, подключиться по ssh - как пожелаете, в конце просто жмем exit, чтобы прервать текущую запись. По итогу в текущей директории будет сохранен предварительный файл, который можно срендерить в gif-ку (в нашем случае, мы записывали test, значит и появиться файл test.yaml):
terminalizer render test -o test.gifВы великолепны! В текущей папке у Вас появился файл test.gif с записью терминала!
Главная проблема в том, что Вы увидите свой старый еще ненастроенный терминал, забудьте о starship.rs, Oh-My-Posh или других украшениях. Если Вы хотите использовать полную мощь terminalizer, то его необходимо настроить.
Настройка
По умолчанию terminalizer берет конфиг из текущей директории, или же, если его нет, то из ~/.config/terminalizer папки.
Сгенерировать дефолтный конфиг можно командой
terminalizer initВ терминале Вы увидите что-то вроде
The global config directory is created at/Users/bob/.config/terminalizerВ таком случае, каждый запуск terminalizer будет идти с данным конфигом, но при этом каждый раз, когда вы делаете какую-то запись, генерируется YAML файл, в котором содержится как полный конфиг, так и записанные кадры, так что тестируя свои параметры, удобнее править полученный файл, а не менять параметры глобального конфига и каждый раз заново прогонять запись.
command
Первым делом необходимо заменить команду запуска на Вашу оболочку
# Specify a command to be executed# like `/bin/bash -l`, `ls`, or any other commands# the default is bash for Linux# or powershell.exe for Windowscommand: zshВ моем случае, я заменил null на zsh
env
Следующий параметр, на который следует обратить внимание - это env:
# Export additional ENV variablesenv: recording: trueПо умолчанию при запуске terminalizer в оболочке выставляется переменная окружения recording=true, это удобно, к примеру, для того, чтобы не запускать определенные команды. Так в каждом моем терминале вызывается утилита pfetch.
Чтобы не засорять вывод, в ~/.zshrc у меня прописана проверка на наличие переменной recording, чтобы не показывать вывод pfetch в terminalizer:
if [ -z "$recording" ]; then pfetchfiВ целом, остальные параметры неплохо описаны в документации: будь то добавление вотермарки или же настройка полей. Главное - не забудьте указать шрифты, которые стоят у Вас в терминале.
Проблемы
Так как мы имеем дело с чисто JS-ной утилитой, то при её установке (а иногда и при работе) могут вылезать проблемы.
EACCESS
При установке можем словить нечто подобное:
npm ERR! code EACCESnpm ERR! syscall mkdirnpm ERR! path /usr/local/lib/node_modulesnpm ERR! errno -13npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'] {npm ERR! errno: -13,npm ERR! code: 'EACCES',npm ERR! syscall: 'mkdir',npm ERR! path: '/usr/local/lib/node_modules'npm ERR! }npm ERR!npm ERR! The operation was rejected by your operating system.npm ERR! It is likely you do not have the permissions to access this file as the current usernpm ERR!npm ERR! If you believe this might be a permissions issue, please double-check thenpm ERR! permissions of the file and its containing directories, or try runningnpm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:npm ERR! /home/zhurik/.npm/_logs/2025-03-14T09_48_06_223Z-debug-0.logПроблема нередкая, и в целом решение лежит в доке.
Но если лень ковырять или переустанавливать node и npm, то можно просто указать npm-у папку, в которую ставить глобальные пакеты:
mkdir -p ~/.npm-global/lib
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' | tee -a ~/.profile
source .profileВуаля, все установится и будет работать