概要
- Tattoy はターミナルに視覚効果を追加するフレームワーク
- GPUシェーダー やライブ更新される スクロールバックミニマップ を搭載
- 既存のシェルやプロンプトと シームレスに連携
- 自動コントラスト調整 による可読性の向上
- プラグイン によるカスタマイズ性と拡張性
Tattoy:ターミナルに美しい視覚効果を
- Tattoy は、ターミナルに アイキャッチな視覚効果 を追加するためのフレームワーク
- 純粋なテキストベース のため、 True Color 対応のターミナルエミュレータで動作
- UTF8ハーフブロック(▀、▄) でグラフィックを表現
- 既存のシェル・テーマ・プロンプト と共存可能
- 効果の 即時切り替え が可能で、 コピー&ペースト も容易
GPUシェーダーのレンダリング
- Tattoyの最大の特徴は GPUシェーダーの描画機能
- Shader Toy の多くのシェーダーを 編集なしで実行 可能
- Ghosttyシェーダー にも対応
- テキストの位置を変えるシェーダー(例:CRTエミュレータ)は、ホストターミナルに依存するため効果が限定的
バックグラウンドでのセカンドターミナル表示
- 任意のコマンドを 通常のターミナルの背景 として実行可能
- 利用例
- オーディオビジュアライザー
- 動画背景
- システムモニターグラフ
- 背景ターミナルの 不透明度調整 機能
スクロールバックミニマップ
- スクロールバック内容を ピクセル化 して表示する ライブミニマップ
nvim、top、gituiなどの "alternate screen" 使用時も対応- 独自のスクロールバックバッファ と スクロールバー を提供
自動テキストコントラスト調整
- ディレクトリ内のファイル表示で 読みにくい色 が発生する問題を解決
- 24ビットRGBA値 を認識し、 コントラスト不足のテキスト色を自動調整
- WCAG 2.1コントラストアルゴリズム を採用し、 アクセシビリティ を確保
プラグインによる拡張性
- 任意の言語 でプラグイン作成が可能
- ターミナル内容へ フルアクセス し、 UTF8ピクセルやテキスト の描画が可能
- JSON(STDIN/STDOUT) によるプロトコル
- 例:カーソルからテキストと連動した 煙エフェクト の表示
Tattoyの本質と今後の展望
- 視覚効果による ターミナルの美的向上 が主目的
- 低コントラスト問題 の根本的解決
- 新しいターミナルプロトコルの実験基盤 としての役割
- ANSIコードの代替プロトコルの ポリフィル
- xwayland的存在 としてのTattoy
- 詳細:https://tattoy.sh/news/an-end-to-terminal-ansi-codes/
- アートプロジェクト的側面 も持つ、楽しさと美しさの追求
リポジトリリンク https://github.com/tattoy-org/tattoy