Как я переписал OBS оверлеи в стиле TUI (btop/system24)
Зачем делать обычные анимированные гифки и плашки со StreamElements, когда можно собрать терминальный HUD в стиле btop и lazygit с нулевым радиусом скруглений и локальным Python-бриджем.
Стримы большинства разработчиков выглядят одинаково: либо стандартные анимированные алерты от сторонних сервисов, либо голый рабочий стол без намёка на стиль.
Когда я начал стримить, мне захотелось чего-то другого — чтобы эфир ощущался как интерфейс технической лаборатории или терминальной системы.
Вдохновение: system24, btop и lazygit
Почему именно TUI?
- Прямые углы (
border-radius: 0px): чистая геометрия, никакой лишней графической мишуры.
- Тонкие рамки в 1 пиксель: четкие границы и аккуратные пропорции.
- Моноширинная типографика: IBM Plex Mono для телеметрии, таймеров и счетчиков.
- Палитра Catppuccin: мягкие контрастные цвета без ядовитого неона.
Архитектура оверлея
В репозитории OBS-Templates всё разделено на модули:
# Пример обработки входящего доната в локальном мосту
async def handle_donation(data):
username = data.get("username", "Аноним")
amount = data.get("amount", 0)
message = data.get("message", "")
# Отправляем в оверлей OBS через локальный WebSocket
await broadcasttoobs({
"type": "DONATE",
"user": username,
"amount": f"{amount} ₽",
"msg": message
})
В итоге весь стрим работает стабильно, локально и без задержек. Исходники открыты в моих костылях!