
GitHubユーザーneo-fetchが、Rust製のターミナルベース時計「brutalist-rust-alarm-clock-ratatui」を公開した。アイドル状態のテレビをRaspberry Piと接続し、デジタル時計として活用するプロジェクトだ。製作者によれば、「テレビがアイドル状態だったので、ウィジェット付きのデジタル時計にしようと思った。しかしTUIソリューションが欲しかったので、Rustのratatuiでコーディングした」という。
ratatuiライブラリをベースに、ブルータリストデザインを採用している。tui-big-textのPixelSize::Full設定により、黒背景に白の巨大数字が表示される。カラーパレットは黒、白、黄緑、赤、グレーの5色に限定し、装飾を排除した。ブルータリストデザインは、1950年代に建築で生まれた様式で、素材の生々しさと機能優先の思想が特徴だ。
時計下部には150msごとに更新される天気マーキーがスクロール表示される。毎分の切り替わり時には3フレームのグリッチエフェクトが発動し、ランダムな文字が数字にオーバーレイされる演出だ。
アラーム機能はホームディレクトリのalarm.mp3を再生する仕組みで、音声ライブラリRodioを使用する。再生中は8本のバーで構成されたオーディオビジュアライザーが表示される。操作はキーボードで、Aキーでアラーム設定、Tキーでタイマー設定、スペースキーで停止だ。
内部構造はコンポーネント単位で分離されている。main.rsがイベントループ、app.rsが状態管理を担当し、UI関連はui/clock.rs、ui/weather.rs、ui/effects.rsなどに分割される。各コンポーネントは独立してテストでき、必要に応じて差し替えられる設計だ。
ターミナルベースのためリソース消費は最小限で、GUIフレームワークを使わずテキストベースの描画のみで動作する。Raspberry Piのような省電力環境でも快適に動作する。コードはMITライセンスでGitHub上に公開されており、cargoコマンドで「cargo run –release」を実行すればビルドできる。
関連情報
neo-fetch/brutalist-rust-alarm-clock-ratatui – GitHub

