最近引入了 Omarchy,或是在瀏覽 r/unixporn,我了解到了終端螢幕保護程式的存在。
像是 cbonsai、asciiquarium、tarts 等,各種各樣的工具為終端增添了色彩。
我想試著自己做一些,所以借鑒了之前製作的 GitType 的經驗,決定實作一個以 Git 的提交為題材的螢幕保護程式。
因此,完成的產品就是 gitlogue。
這是一個將 Git 的提交歷史以電影感的動畫播放的 CLI 工具。


curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bash
brew install unhappychoice/tap/gitlogue
cargo install gitlogue
透過以下指令啟動螢幕保護程式。
gitlogue
若想顯示特定的提交,請指定提交哈希或範圍。
# 播放特定的提交
gitlogue --commit abc123
# 播放最近 5 次提交
gitlogue --commit HEAD~5..HEAD
# 按照時間順序播放
gitlogue --order asc
# 循環播放
gitlogue --commit abc123 --loop
其他選項
# 更改主題
gitlogue --theme dracula
# 調整打字速度(每個字元的毫秒)
gitlogue --speed 20
# 忽略特定的檔案模式
gitlogue --ignore "*.ipynb" --ignore "poetry.lock"
# 顯示主題列表
gitlogue theme list
# 設定預設主題
gitlogue theme set dracula
也可以在設定檔(~/.config/gitlogue/config.toml)中進行自定義。
詳細資料請參考 Configuration Guide。
之前在製作 GitType 時,已經熟悉了如 ratatui 和 tree-sitter 等 TUI 技術。
所以我想利用這些技能來製作一款「Git 版的螢幕保護程式」。
在實作過程中,我有意識地考慮了以下幾點。
真實的打字表現
視覺上的樂趣
與 Git 的自然整合
git log 或 git diff,而是作為補充。製作 GitType 的經驗對這次幫助很大。
特別是在 ratatui 進行 TUI 實作及使用 tree-sitter 進行語法高亮的部分,前次的經驗得以直接運用。
這讓我能專注於 UI 的設計和動畫的實作,這是相當重要的。
Rust、TypeScript、JavaScript、Python、Go、Ruby、Swift、Kotlin、Java、PHP、C#、C、C++、Haskell、Dart、Scala、Clojure、Zig、Elixir、Erlang、HTML、CSS、JSON、Markdown、YAML、XML
gitlogue 是我帶著「這或許有趣」的輕鬆心情而製作的工具。
然而在發布後,竟然被選為 Terminal Trove 的本週工具,還獲得了超過 1200 顆星的反響,讓我感到意外。
老實說,我並不認為這是一款如此重要的工具,因此我自己也感到驚訝。
回想起來,專注於 UI 設計可能是成功的一個原因。
目的是不僅僅顯示提交歷史,而是要讓人覺得「好看、有趣」「想放在終端裡」。
不論是作為螢幕保護程式,演示工具,或是單純欣賞 Git 歷史的樂趣,請務必試試看。
gitlogue
原文出處:https://qiita.com/unhappychoice/items/7e2d792dbf7993ac4465