sysc-greet — greetd用グラフィカルコンソールグリーター

Tool

概要

sysc-greetは、greetd(シンプルなログインデーモン)用の「グラフィカル」コンソールグリーターです。Go言語とBubble TeaというTUIフレームワークを用いて実装され、端末上で動く視覚的に凝ったログイン画面を提供します。特徴としては9種類のカラーテーマ(Dracula、Gruvbox、Materialなど)や、DOOM PSX風の火やマトリックス雨、ASCII雨、静的パターンといった背景エフェクト、さらに複数の枠線スタイルを備えており、見た目のカスタマイズ性が高い点が挙げられます。軽量なTUIとしてgreetdと組み合わせることで、ディスプレイマネージャーの代替や個性的なログインUIの実現を狙ったツールです。

GitHub

リポジトリの統計情報

  • スター数: 30
  • フォーク数: 0
  • ウォッチャー数: 30
  • コミット数: 30
  • ファイル数: 20
  • メインの言語: Go

主な特徴

  • 多彩なテーマ(9種類)で配色を変更可能:Dracula、Gruvbox、Material 等
  • 背景エフェクト(Fire、Matrix rain、ASCII rain、Static patterns)をサポート
  • 複数のボーダースタイル(Classic、Modern、Minimal、ASCII系)を提供
  • Bubble Teaベースで端末描画と状態管理をシンプルに実装

技術的なポイント

sysc-greetはTUIアプリケーションをGoで構築する際の典型的な選択肢であるBubble Teaを採用しています。Bubble Teaは「Model-View-Update」風の設計で、状態遷移とレンダリングを明確に分離できるため、ログインフロー(ユーザー選択、パスワード入力、認証結果の表示など)や背景アニメーションの制御に向いています。配色やレイアウト表現には、Bubble Teaと相性の良いlipglossやbubblesといったエコシステムのツールが使われている可能性が高く、これにより枠線(border)や余白、スタイルの定義が容易になります。

背景エフェクト(例:Matrix雨、ASCII雨、火のエフェクト)は、端末のフレーム更新を効率よく行う必要があります。TUIでは毎フレームの再描画コストに注意が必要ですが、Bubble TeaのTickやCmdを用いて定期更新を行い、差分レンダリングや簡易的なフレーム合成で滑らかなアニメーションを実現できます。色表現はANSIカラーパレット(256色やtruecolor)に依存するため、テーマ実装では端末の色深度を考慮し、fallbackカラーを用意することが多いです。

greetdとの連携部分では、greetdが要求するプロトコル(標準入出力や特定の環境変数を使ったやり取り)に応じて、ログインの起点・終点処理を行います。greetdは軽量なデーモンで、外部プログラムをグリータとして呼び出すため、sysc-greetはgreetdから呼ばれてユーザー認証情報を取得し、結果を返す役割を果たします。システムインテグレーション面では、設定ファイル(CONFIGURATION.md)やMakefile、.SRCINFOなどが含まれており、配布・パッケージング(例えばArch Linux用のパッケージ情報)やビルドの自動化を想定した構成になっています。

また、軽量化と移植性を考慮してGoで実装しているため、シングルバイナリでの配布やクロスコンパイルが比較的容易です。アセット(アニメーションGIFやテーマ定義、フォント依存要素)がリポジトリに含まれている場合は、ビルド時に埋め込むかランタイムで読み込む実装のどちらかが採られているでしょう。総じて、sysc-greetはTUIフレームワークの利点を生かしつつ、視覚的なカスタマイズ性とgreetd互換性を両立させた設計が特徴です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .SRCINFO: file
  • .gitignore: file
  • CHANGELOG.md: file
  • CONFIGURATION.md: file
  • Makefile: file

…他 15 ファイル

(上記に加え、assetsディレクトリや実装ソース(Goファイル)、READMEなどが含まれている想定です)

まとめ

greetd向けのカスタマイズ性が高いGo製TUIグリーター。軽量で導入しやすい。

リポジトリ情報:

READMEの抜粋:

sysc-greet

A graphical console greeter for greetd, written in Go with the Bubble Tea framework.

Preview

Features

  • 9 Themes: Dracula, Gruvbox, Material, Nord, Tokyo Night, Catppuccin, Solarized, Monochrome, TransIsHardJob
  • Background Effects: Fire (DOOM PSX), Matrix rain, ASCII rain, Static patterns
  • 7 Border Styles: Classic, Modern, Minimal, ASCII-1, ASCII-…