Linux · BIGGRATZ

Drift — живая заставка для терминала Linux с анимациями и эффектами

27 сентября 2026· 9 мин чтения· biggratz_ru

Терминал обычно ассоциируется с командами, логами и бесконечным потоком текста. Но что произойдёт, если оставить его без дела на несколько минут? Проект Drift превращает простой текстовый терминал в небольшую интерактивную заставку с анимациями.

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

В репозитории уже есть 14 сцен и 9 встроенных цветовых тем, а внешний вид и поведение можно дополнительно настроить через конфигурационный файл.

Drift — анимация waveform в терминале Linux
Сцена waveform — анимированные синусоидальные волны непосредственно в терминале.

Репозиторий Drift на GitHub

Что умеет Drift

Главная идея проекта довольно простая: когда терминал простаивает, вместо неподвижного приглашения командной строки на экране появляется анимация.

По умолчанию Drift умеет автоматически переключать сцены. При желании можно закрепить одну конкретную анимацию, выбрать тему оформления или запустить специальный режим просмотра, в котором сцены и темы переключаются вручную.

В текущей версии проекта доступно 14 сцен:

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

Таким образом, Drift — это не одна конкретная заставка, а небольшой набор разных визуальных эффектов, между которыми программа может переключаться автоматически.

Цветовые темы

Для сцен используются встроенные цветовые темы. Всего их девять:

cosmic
nord
dracula
catppuccin
gruvbox
forest
wildberries
mono
rosepine

Посмотреть доступные варианты непосредственно из терминала можно командой:

drift list themes

Причём разработчик не ограничился фиксированным набором цветов. В конфигурации можно создать собственную тему и затем использовать её точно так же, как встроенные.

Drift — анимированная сцена plasma
Сцена plasma демонстрирует один из визуальных режимов Drift.

Установка 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 будет запускаться автоматически после заданного периода бездействия.

Drift — сцена pipes в терминале
Сцена pipes — классическая анимация с линиями и псевдографикой.

Основные параметры

У программы есть несколько полезных параметров командной строки:

ПараметрПо умолчаниюНазначение
--scene, -sвсе сценыЗакрепить определённую сцену
--theme, -tcosmicВыбрать цветовую тему
--fps30Целевая частота кадров
--duration60Время показа одной сцены в секундах
--showcasefalseИнтерактивный режим просмотра

Например, чтобы менять сцены каждые 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

Похожие материалы