skip to content
Архитектура в курилке

Красивые GIF-ки из терминала v2.0.0

/ чтиво на 2 минуты

Содержание

TLDR

GitHub

Установка:

Terminal window
# MacOS
brew install t-rec
# или
sudo port selfupdate
sudo port install t-rec
# Arch
yay -S t-rec
# Deb
sudo snap install t-rec --classic
# или
sudo apt-get install libx11-dev imagemagick
cargo install -f t-rec

Команды:

Terminal window
t-rec --init-config
t-rec --list-profiles
t-rec -q
t-rec -q -o ~/Documents/recordings/record_1

Функция:

Terminal window
record() {
if [ -z "$1" ]; then
echo "Missing filename"
return 1
fi
TREC_RECORDING=1 t-rec -q -o ~/Documents/recordings/"$1"
}

Зачем

Причины остались все те же, о которых я писал, когда рассказывал про terminalizer. Я бы так дальше его и рекомендовал, если бы не постоянные битвы с npm, когда мне раз в пару-тройку месяцев надо что-то записать. Да и разработка там как-то не особо бодро идет.

И я нашел ему альтернативу, которая написана на Rust-е и в названии которой есть отсылка к динозаврам.

Зачем искать что-то лучше?

Установка

Исходники лежат на GitHub, там же смотреть и документацию.

Для macOS есть и brew-, и MacPorts-версия:

Homebrew:

Terminal window
brew install t-rec

MacPorts:

Terminal window
sudo port selfupdate
sudo port install t-rec

Есть сразу версия для Arch-а:

Terminal window
yay -S t-rec

И даже snap-версия для Ubuntu или Debian:

Terminal window
sudo snap install t-rec --classic

Ну и как всегда с Rust-овыми штуками, можно просто установить из исходников с помощью cargo:

Terminal window
git clone https://github.com/sassman/t-rec-rs.git
cd t-rec-rs
cargo install -f --path .

И по классике можно проверить, что все работает:

Terminal window
t-rec --version
Version

Запуск

Сам запуск элементарный:

Terminal window
t-rec

Чтобы закончить запись, жмем Ctrl+D.

Мне еще не нравится напоминание про Ctrl+D, поэтому добавляю флаг -q.

Еще можно указать путь, куда будут сохранены итоговые файлы. Так, например, если у нас есть папка ~/Documents/recordings и мы в нее хотим сохранить новую запись new-record, то это будет выглядеть примерно так:

Terminal window
t-rec -q -o ~/Documents/recordings/new-record

Не указываем расширение, потому что t-rec сам его проставит, будет это GIF-ка или же видео.

Или можно просто обернуть это все в функцию:

Terminal window
record() {
if [ -z "$1" ]; then
echo "Missing filename"
return 1
fi
t-rec -q -o ~/Documents/recordings/"$1"
}

И запускать, а-ля:

Terminal window
record new-record

Профили

У t-rec полно разных настроек, к примеру, можно задать фон, на котором будет итоговая запись или что-то в этом роде. В документации отличные примеры есть на этот счет.

Профили - это набор параметров, которые будут применяться к данной записи. Дефолтный конфиг со стандартными профилями делается просто:

Terminal window
t-rec --init-config

А посмотреть доступные можно через:

Terminal window
t-rec --list-profiles

Ну и, соответственно, запустить с определенным профилем можно с помощью флага --profile (очевидно):

Terminal window
t-rec --profile demo

Честно говоря, я пока не особо выкупил, для чего они так уж нужны: вполне себе заходит и просто с дефолтными параметрами. Хотя с этой очередной обновой macOS там теперь некрасивые скругления…

В общем, если пойму, что стоит настроить и профили, то точно докину сюда.

Env

Как и в прошлый раз, у меня куча всего стоит в .zshrc, что я не всегда хочу показывать в GIF-ках. Но в t-rec то ли более костыльный подход, то ли более адекватный, но можно завязаться на какую-то определенную переменную, и на основании нее что-то показывать или (не) делать:

Terminal window
TREC_RECORDING=1 t-rec

Теперь в .zshrc делаем:

Terminal window
if [ -z "$TREC_RECORDING" ]; then
pfetch
fi

Тогда pfetch не будет показываться в наших записях, а функцию можно подправить как:

Terminal window
record() {
if [ -z "$1" ]; then
echo "Missing filename"
return 1
fi
TREC_RECORDING=1 t-rec -q -o ~/Documents/recordings/"$1"
}

Заключение

Я не стал писать о том, что можно записывать еще и рандомные окна, а не только терминал. Думаю, это отличная отправная точка. Дальше, если что-то еще придумаю, буду докидывать по мере возможности.

А теперь иди и запиши крутую демку для своего AI B2B SaaS!

Берегите себя и своих близких!