Содержание
TLDR
Установка:
# MacOSbrew install t-rec# илиsudo port selfupdatesudo port install t-rec
# Archyay -S t-rec
# Debsudo snap install t-rec --classic# илиsudo apt-get install libx11-dev imagemagickcargo install -f t-recКоманды:
t-rec --init-configt-rec --list-profilest-rec -qt-rec -q -o ~/Documents/recordings/record_1Функция:
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:
brew install t-recMacPorts:
sudo port selfupdatesudo port install t-recЕсть сразу версия для Arch-а:
yay -S t-recИ даже snap-версия для Ubuntu или Debian:
sudo snap install t-rec --classicНу и как всегда с Rust-овыми штуками, можно просто установить из исходников с помощью cargo:
git clone https://github.com/sassman/t-rec-rs.gitcd t-rec-rscargo install -f --path .И по классике можно проверить, что все работает:
t-rec --version
Запуск
Сам запуск элементарный:
t-recЧтобы закончить запись, жмем Ctrl+D.
Мне еще не нравится напоминание про Ctrl+D, поэтому добавляю флаг -q.
Еще можно указать путь, куда будут сохранены итоговые файлы. Так, например, если у нас есть папка ~/Documents/recordings и мы в нее хотим сохранить новую запись new-record, то это будет выглядеть примерно так:
t-rec -q -o ~/Documents/recordings/new-recordНе указываем расширение, потому что t-rec сам его проставит, будет это GIF-ка или же видео.
Или можно просто обернуть это все в функцию:
record() { if [ -z "$1" ]; then echo "Missing filename" return 1 fi
t-rec -q -o ~/Documents/recordings/"$1"}И запускать, а-ля:
record new-recordПрофили
У t-rec полно разных настроек, к примеру, можно задать фон, на котором будет итоговая запись или что-то в этом роде. В документации отличные примеры есть на этот счет.
Профили - это набор параметров, которые будут применяться к данной записи. Дефолтный конфиг со стандартными профилями делается просто:
t-rec --init-configА посмотреть доступные можно через:
t-rec --list-profilesНу и, соответственно, запустить с определенным профилем можно с помощью флага --profile (очевидно):
t-rec --profile demoЧестно говоря, я пока не особо выкупил, для чего они так уж нужны: вполне себе заходит и просто с дефолтными параметрами. Хотя с этой очередной обновой macOS там теперь некрасивые скругления…
В общем, если пойму, что стоит настроить и профили, то точно докину сюда.
Env
Как и в прошлый раз, у меня куча всего стоит в .zshrc, что я не всегда хочу показывать в GIF-ках. Но в t-rec то ли более костыльный подход, то ли более адекватный, но можно завязаться на какую-то определенную переменную, и на основании нее что-то показывать или (не) делать:
TREC_RECORDING=1 t-recТеперь в .zshrc делаем:
if [ -z "$TREC_RECORDING" ]; then pfetchfiТогда pfetch не будет показываться в наших записях, а функцию можно подправить как:
record() { if [ -z "$1" ]; then echo "Missing filename" return 1 fi
TREC_RECORDING=1 t-rec -q -o ~/Documents/recordings/"$1"}Заключение
Я не стал писать о том, что можно записывать еще и рандомные окна, а не только терминал. Думаю, это отличная отправная точка. Дальше, если что-то еще придумаю, буду докидывать по мере возможности.
А теперь иди и запиши крутую демку для своего AI B2B SaaS!
Берегите себя и своих близких!
