Categories: 工作・開発

Rust製ターミナル時計でテレビを活用、ラズパイ向けに巨大数字とアラーム機能

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

Raspberry Pi
¥18,998 (2026/01/28 21:46時点 | Amazon調べ)
FabScene編集部

FabScene編集部