Терминал обычно ассоциируется с командами, логами и бесконечным потоком текста. Но что произойдёт, если оставить его без дела на несколько минут? Проект Drift превращает простой текстовый терминал в небольшую интерактивную заставку с анимациями.
Drift — это терминальная заставка на Go, которая автоматически запускается после периода бездействия, показывает различные сцены и возвращает обычную командную строку после нажатия клавиши. При этом проект не требует графического окружения или отдельного окна — вся анимация работает непосредственно внутри терминала.
В репозитории уже есть 14 сцен и 9 встроенных цветовых тем, а внешний вид и поведение можно дополнительно настроить через конфигурационный файл.

Что умеет Drift
Главная идея проекта довольно простая: когда терминал простаивает, вместо неподвижного приглашения командной строки на экране появляется анимация.
По умолчанию Drift умеет автоматически переключать сцены. При желании можно закрепить одну конкретную анимацию, выбрать тему оформления или запустить специальный режим просмотра, в котором сцены и темы переключаются вручную.
В текущей версии проекта доступно 14 сцен:
- waveform — синусоидальные волны из символов Braille;
- constellation — движущиеся звёзды, соединяющиеся линиями;
- rain — падающие столбцы символов в стиле цифрового дождя;
- particles — частицы, движущиеся по заданному полю;
- pipes — линии из псевдографики, напоминающие классическую заставку с трубами;
- maze — лабиринт, который постепенно строится, исчезает и создаётся заново;
- life — клеточный автомат «Жизнь» Конвея;
- clock — большие цифровые часы с текущей датой;
- orrery — стилизованная модель Солнечной системы;
- starfield — полёт через трёхмерное звёздное поле;
- dvd — классический прыгающий логотип;
- boids — симуляция движения стаи объектов;
- plasma — анимированное плазменное поле;
- bonsai — растущее дерево бонсай.

Таким образом, Drift — это не одна конкретная заставка, а небольшой набор разных визуальных эффектов, между которыми программа может переключаться автоматически.
Цветовые темы
Для сцен используются встроенные цветовые темы. Всего их девять:
cosmic
nord
dracula
catppuccin
gruvbox
forest
wildberries
mono
rosepine
Посмотреть доступные варианты непосредственно из терминала можно командой:
drift list themes
Причём разработчик не ограничился фиксированным набором цветов. В конфигурации можно создать собственную тему и затем использовать её точно так же, как встроенные.

Установка Drift в Linux
Для Linux существует несколько вариантов установки. Пользователям Arch Linux и производных, включая CachyOS, проще всего воспользоваться AUR.
Установка из AUR
Если установлен yay:
yay -S drift-bin
Либо можно использовать paru:
paru -S drift-bin
После установки проверяем версию:
drift version
Готовый бинарный файл
Если не хочется использовать пакетный менеджер, разработчик публикует готовые сборки в разделе Releases.
Для Linux доступны варианты как для обычных x86-64 компьютеров, так и для ARM64:
drift_linux_amd64.tar.gz
drift_linux_arm64.tar.gz
После распаковки бинарник можно переместить в каталог, находящийся в PATH:
tar -xzf drift_linux_amd64.tar.gz
sudo mv drift /usr/local/bin/
drift version
Для ARM64 используется соответствующий архив drift_linux_arm64.tar.gz. Это особенно интересно для одноплатных компьютеров и домашних серверов с ARM-процессорами.
Установка через Go
Drift написан на Go и требует Go 1.23 или новее для сборки из исходников.
go install github.com/phlx0/drift@latest
Если каталог Go с установленными программами не находится в PATH, его можно добавить:
export PATH="$PATH:$(go env GOPATH)/bin"
Сборка из исходников
При желании проект можно собрать самостоятельно:
git clone https://github.com/phlx0/drift
cd drift
go install .
Отдельный C-компилятор и CGO для сборки не требуются.
Первый запуск
После установки достаточно выполнить:
drift
Программа запустит заставку непосредственно в текущем терминале. После нажатия клавиши работа Drift прекращается, и можно снова пользоваться командной строкой.
Для демонстрации всех возможностей гораздо интереснее использовать режим showcase:
drift --showcase
В этом режиме Drift продолжает работать до выхода вручную. Сцены и темы можно переключать с клавиатуры:
| Клавиши | Действие |
|---|---|
↑ / w | Предыдущая сцена |
↓ / s | Следующая сцена |
← / a | Предыдущая тема |
→ / d | Следующая тема |
Esc / q / Ctrl+C | Выход |
Это хороший способ быстро посмотреть, какие комбинации сцены и цветовых схем вам подходят.
Запуск конкретной сцены
Если автоматическая смена анимаций не нужна, можно указать конкретную сцену:
drift --scene waveform
Например, можно попробовать цифровой дождь:
drift --scene rain
Или звёздное поле:
drift --scene starfield
Для просмотра полного списка сцен используется:
drift list scenes
Выбор темы
Цветовую схему можно изменить параметром --theme:
drift --theme catppuccin
Например, если основной терминал оформлен в стиле Nord, можно запустить:
drift --theme nord
При этом сцену и тему можно комбинировать:
drift --scene constellation --theme nord
Автоматический запуск после простоя
Самая интересная возможность Drift — интеграция с оболочкой. В этом режиме программа действительно начинает работать как заставка: оболочка отслеживает бездействие пользователя и запускает Drift автоматически.
По умолчанию задержка составляет 120 секунд.
Zsh
Для Zsh добавляем в ~/.zshrc:
export DRIFT_TIMEOUT=120
eval "$(drift shell-init zsh)"
Bash
Для Bash аналогичная настройка добавляется в ~/.bashrc:
export DRIFT_TIMEOUT=120
eval "$(drift shell-init bash)"
Например, если хочется запускать заставку уже через минуту:
export DRIFT_TIMEOUT=60
eval "$(drift shell-init bash)"
После изменения конфигурации оболочки нужно открыть новый терминал или перечитать конфигурационный файл.
Fish
Для Fish используется файл ~/.config/fish/conf.d/drift.fish:
set -x DRIFT_TIMEOUT 120
drift shell-init fish | source
После этого Drift будет запускаться автоматически после заданного периода бездействия.

Основные параметры
У программы есть несколько полезных параметров командной строки:
| Параметр | По умолчанию | Назначение |
|---|---|---|
--scene, -s | все сцены | Закрепить определённую сцену |
--theme, -t | cosmic | Выбрать цветовую тему |
--fps | 30 | Целевая частота кадров |
--duration | 60 | Время показа одной сцены в секундах |
--showcase | false | Интерактивный режим просмотра |
Например, чтобы менять сцены каждые 30 секунд:
drift --duration 30
А если нужно оставить одну сцену без автоматического переключения, можно установить продолжительность в 0:
drift --scene waveform --duration 0
Конфигурация через TOML
Если параметров командной строки становится недостаточно, Drift поддерживает отдельный конфигурационный файл.
Создать его можно командой:
drift config --init
Файл будет создан в:
~/.config/drift/config.toml
После этого можно настроить частоту кадров, время переключения сцен, плавность переходов, порядок сцен и другие параметры.
Например:
[engine]
fps = 30
cycle_seconds = 60
fade_seconds = 0.3
scenes = "all"
theme = "cosmic"
shuffle = true
hide_tmux_status = false
oled_shift = false
exit_on_mouse = false
Здесь особенно интересны параметры cycle_seconds, fade_seconds и shuffle. Первый отвечает за продолжительность показа сцены, второй — за плавность перехода между ними, а третий позволяет перемешивать порядок.
Настройка отдельных сцен
Drift позволяет настраивать параметры отдельных анимаций. Например, для сцены constellation можно изменить количество звёзд и максимальное количество соединений:
[scene.constellation]
star_count = 80
connect_radius = 0.18
twinkle = true
max_connections = 4
Для цифрового дождя можно изменить используемый набор символов, плотность и скорость:
[scene.rain]
charset = "アイウエオカキクケコサシスセソタチツテトナニヌネノ0123456789"
density = 0.4
speed = 1.0
У других сцен также есть собственные параметры. Например, можно менять количество частиц, скорость звёздного поля, число планет в оррерии или скорость роста бонсай.
Своя цветовая тема
Ещё интереснее возможность создавать собственные темы.
В config.toml можно добавить, например:
[theme.terminal]
bright = "#ffffff"
palette = ["#ff5555", "#50fa7b", "#f1fa8c", "#bd93f9"]
dim = ["#3d0000", "#003d00", "#3d3d00", "#1e003d"]
После этого новая тема появится среди остальных:
drift list themes
И её можно использовать обычным параметром:
drift --theme terminal
Это позволяет подогнать заставку под оформление конкретного терминала, рабочего стола или цветовую схему редактора.
Полезные команды
Несколько команд, которые пригодятся после установки:
# Запустить Drift
drift
# Посмотреть сцены
drift list scenes
# Посмотреть темы
drift list themes
# Открыть интерактивный просмотр
drift --showcase
# Создать конфигурацию
drift config --init
# Посмотреть применяемую конфигурацию
drift config
# Узнать версию
drift version
Если конфигурация не применяется
При изменении config.toml полезно сначала проверить, видит ли его Drift:
drift config
Команда показывает расположение конфигурационного файла. Если файла нет, программа использует настройки по умолчанию.
В таком случае его можно создать заново:
drift config --init
Если файл существует, но изменения не применяются, стоит проверить синтаксис TOML. Drift сообщает об ошибке разбора конфигурации через команду drift config.
Если заставка не запускается автоматически
В первую очередь необходимо проверить интеграцию с оболочкой. Например, для Bash в ~/.bashrc должны присутствовать:
export DRIFT_TIMEOUT=120
eval "$(drift shell-init bash)"
Для Zsh используется соответствующий вариант:
export DRIFT_TIMEOUT=120
eval "$(drift shell-init zsh)"
После этого нужно открыть новую сессию терминала.
Drift на обычном ПК и на ARM
У проекта есть готовые бинарные сборки для Linux x86-64 и Linux ARM64. Поэтому Drift можно использовать не только на обычном настольном компьютере, но и на ARM64-устройствах.
Для Linux на обычном ПК это может быть просто необычная заставка для терминала. На небольшом сервере или одноплатном компьютере Drift интересен ещё и как способ сделать постоянно открытый терминал более живым — например, если устройство подключено к отдельному монитору.
При этом важно понимать назначение программы: Drift не является системной заставкой рабочего стола и не заменяет полноценный screensaver графической среды. Его задача — работать именно внутри терминального сеанса.
Итог
Drift — небольшой, но довольно необычный проект для тех, кто проводит много времени в терминале. Вместо того чтобы оставлять окно командной строки неподвижным, можно превратить период бездействия в небольшую визуальную демонстрацию.
Особенно хорошо идея раскрывается благодаря автоматической интеграции с Bash, Zsh или Fish: достаточно перестать пользоваться терминалом, и через заданное время появляется анимация. Нажатие клавиши возвращает обычную командную строку.
При этом Drift не ограничивается несколькими эффектами. В проекте уже есть 14 различных сцен — от цифрового дождя и звёздного поля до клеточного автомата, плазмы и растущего бонсай. Дополняют их девять встроенных тем и возможность создавать собственные.
Для пользователей Arch Linux и CachyOS установка особенно проста через AUR:
yay -S drift-bin
После этого остаётся выбрать любимую сцену или оставить автоматическую смену:
drift --showcase
Именно такие небольшие утилиты хорошо показывают, что терминал в Linux может быть не только инструментом для выполнения команд, но и вполне самостоятельной визуальной средой.
Проект: phlx0/drift
Лицензия: MIT
Язык: Go
Актуальный релиз на момент подготовки статьи: v1.3.0



