月の満ち欠けをTUIで表示するASCII Moon

asciimoon.com という月の満ち欠けがasciiart で表現されたサイトがあります.ただしJavaScriptが無いと満ち欠けは分からずw3m などでは今ひとつな感じでした.

ASCII Moon はそのsiteにインスパイアされた月の満ち欠けをTUI で表示するコマンドです.

ASCII Moon はReleases page にLinux/macOS/Windows のamd64 版のバイナリが置いてあります.
Linux armhf ではどうだろうと今回はsource からbuild しました.

$ git clone https://github.com/rockydd/ascii_moon.git
$ cd ascii_moon
$ cargo build --release
$ ./target/release/ascii_moon
$ ./target/release/ascii_moon --help
A TUI to show the moon phase

Usage: ascii_moon [OPTIONS]

Options:
  -d, --date <DATE>    Date in YYYY-MM-DD format (defaults to today)
      --lines <LINES>  Render the moon to a specific number of lines (non-interactive)
  -h, --help           Print help
  -V, --version        Print version
$ ./target/release/ascii_moon --version
ascii_moon 0.2.0

オプション無しでインタラクティブモード.
-d, --date <日付(YYY-MM-DD)> で特定の日付で起動.
--lines <行数> はscript やMOTD など向けで指定した行数で月のAsciiArt を出力します.
-d, --date と --lines は一緒に指定できます.

ascii moon

インタラクティブモードではカーソル左右で1日単位で日付を操作できます.l key で地名のラベルのon/off,L key でラベルの言語変更,i key で下部の情報のon/off ができます.
インタラクティブモードの動作の状態は以下のasciinema で確認できます.

TUI でもこのAscii Moon, astroterm, tracker など面白い天文アプリが増えている感じがします.

環境
$ ./target/release/ascii_moon --version
ascii_moon 0.2.0
$ cargo version
warning: `/home/matoken/.cargo/config` is deprecated in favor of `config.toml`
  |
  = help: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`
cargo 1.92.0 (344c4567c 2025-10-21)
$ cargo build --release
$ lsb_release -dr
No LSB modules are available.
Description:    Raspbian GNU/Linux 12 (bookworm)
Release:        12
$ arch
armv7l
$ cat /sys/firmware/devicetree/base/model
Raspberry Pi 3 Model B Rev 1.2

View on Mastodon

Reposts

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.