HN 日本語サマリー

← 一覧へ戻る
プログラミング

Cbirds: ターミナルに鳥の群れを表示する

Cbirds: A flock of birds in your terminal (github.com)

16 pointsby epestr9 コメント

要約

Cbirdsは、ターミナル上でボイド(boids)アルゴリズムに基づいた鳥の群れを再現するC99プログラムです。ブライユ文字、Kittyグラフィックスプロトコル、セクスタントなどの様々なレンダリングモードをサポートし、色、速度、群れの数などをカスタマイズできます。テキストや画像を表示する機能もあり、パイプ経由で他のコマンドの出力を鳥の群れとしてアニメーションさせることも可能です。

全文翻訳

Cbirds ターミナルに鳥の群れを表示します。 cbirds --render kitty --hawks 2 --color ice --speed 0 Craig Reynoldsのボイド(boids)を、任意のターミナルでブライユ文字として、またKittyグラフィックスプロトコル上でスプライトとして描画します。依存関係のない単一のC99プログラムです。このページ上のすべてのクリップはcbirds自身によって録画されました。 cbirds --render kitty --hawks 2 --color ice --speed 0 cbirds --render kitty --flocks 3 --color ember cbirds --render kitty --matrix --speed 0 cbirds --render kitty --depth --trails --color ice cbirds --render braille --hawks 2 --color ice cbirds --render sextants --color acid --speed 2 インストール Homebrew macOSとLinux。 Completions(補完機能)はbash、zsh、fish用に付属しており、brew upgradeで最新の状態に保てます。 brew install clainstone/tap/cbirds apt Debian 12、Ubuntu 22.04以降、およびそれらの派生ディストリビューション(amd64またはarm64)では、aptリポジトリからインストールできます。 Completionsは付属しており、sudo apt upgradeで最新の状態に保てます。 sudo apt install curl curl -fsSL https://clainstone.com/apt/cbirds.gpg | sudo tee /etc/apt/keyrings/cbirds.gpg >/dev/null echo "deb [signed-by=/etc/apt/keyrings/cbirds.gpg] https://clainstone.com/apt stable main" | sudo tee /etc/apt/sources.list.d/cbirds.list sudo apt update sudo apt install cbirds または、リポジトリなしでパッケージのみをインストールする場合(アップデートなし): リリースページにある.debファイルを使用し、sudo apt install ./cbirds_*.deb でインストールします。 ソースから git clone https://github.com/clainstone/cbirds cd cbirds make sudo make install これにより、/usr/local/bin/cbirds という単一のファイルが配置されます。 sudoなしでホームディレクトリにインストールする場合(~/.local/bin がPATHに含まれている必要があります): make install PREFIX="$HOME/.local" LinuxとmacOS。 Cコンパイラとmakeが必要です。それ以外は不要です。 make test でテストを実行できます。 ビルドはシステムのccを使用し、CC、CFLAGS、LDFLAGS、PREFIX、DESTDIRを尊重するため、make CC=clangやパッケージングも通常通り機能します。 アンインストール Homebrew 2行目はリポジトリも削除します。リポジトリを残す場合は省略してください。 brew uninstall cbirds brew untap clainstone/tap apt 最後の2行はリポジトリも削除します。リポジトリを残す場合は省略してください。 sudo apt remove cbirds sudo rm /etc/apt/sources.list.d/cbirds.list /etc/apt/keyrings/cbirds.gpg sudo apt update 単独でインストールされた.debパッケージは、最初の行のみで削除できます。 ソースから 同じディレクトリで、インストール時と同じPREFIXを使用します: sudo make uninstall # sudo make install でインストールした場合 make uninstall PREFIX="$HOME/.local" # ホームにインストールした場合 クローンせずに単一ファイルの場合: sudo rm /usr/local/bin/cbirds または rm ~/.local/bin/cbirds。 使用例 cbirds ブライユ文字の群れを、ターミナルの色で表示します。 cbirds --render kitty KittyまたはGhosttyでスプライトを表示します。 cbirds --preset murmuration ムクドリのような外観。 cbirds --hawks 2 --color ice 何かを観察します。 cbirds --flocks 3 --color ember それぞれが自分の領域を保つ3つの群れ。 cbirds --color prism 群れに虹色の変化をもたらします。 cbirds --depth --trails 最初の空の後ろに第二の空を表示します。 cbirds --matrix 鳥が雨のように降ってきます。 cbirds --say "back in five" 群れがテキストを表示し、サインとして保持します。 cbirds --clock 群れが時間を表示します。 cbirds --clock --seconds 秒単位(HH:MM:SS)で時間を表示します。 cbirds --say "ciao" --font-size 8 8行分の高さの文字で、4から10のサイズで表示します。 cbirds --picture logo.png 群れがPNG画像を描画します。--shape dotと-n 2000が適しています。 cbirds --screensaver --clock 時間を表示するロック画面。任意のキーで素早く終了します。 fastfetch | cbirds 何かの文字が飛び立ちます。 BOIDSと表示して始まり、離れて群れになります。ポインタを群れに移動させると散開します。qを押すと画面上部へ飛び去ります。1分ほど放置すると、スライダーが自動的に動き始めます。任意のキーで元に戻ります。hで隅にスライダーパネルを開き、--panelで最初から開きます。小文字で下げ、大文字で上げ、1回のプレスで1ノッチ動きます。 speed は同じ群れを遅くしたり速くしたりします。1/5のペースから13/5のペースまでです。2つ以上の群れがあると、パネルは1行増え、回避機能が有効になります。g/G: 下部では群れは2〜3色の1つの群れに混ざり、中央(開始地点)ではそれぞれが自分の種類を保ち好きなように飛び回り、上部では互いに離れて飛びます。 --unlock-fps はフレーム遅延を解除し、ターミナルが受け入れられるフレームレートで可能な限り高速にレンダリングします。シミュレーションはリアルタイムで進行するため、解除しても鳥は速く飛びません。プロファイリングに役立ちます。通常の実行は60fpsに制限されています。 ╭────────────────────────────────────╮ │ boundary ▓▓▓▓░░░░░░░░ 0.20 b/B │ │ separation ▓▓▓▓░░░░░░░░ 0.005 s/S │ │ alignment ▓▓▓▓░░░░░░░░ 1.50 a/A │ │ turning ▓▓▓▓▓▓▓▓░░░░ 70° t/T │ │ perception ▓▓▓▓▓▓░░░░░░ 36px p/P │ │ speed ▓░░░░░░░░░░░ 0.4× v/V │ │ frame 0.6ms 31KB 60fps │ │ quit q │ ╰────────────────────────────────────╯ キー キー | b/B | s/S | a/A | t/T | p/P | v/V | g/G ---|---|---|---|---|---|---|--- 1ノッチ下 | 1ノッチ上 | | | | | | パネル | スペース | 一時停止 | 1フレーム | デフォルトに戻る | 次のプリセット | より多くの鳥、より少ない鳥 | ホークを増やす、1つ減らす q | 終了 | Enter | 文字をオフにする、またはホームに戻る 何でも飛びます テキストをcbirdsにパイプすると、そのテキストが群れになります。 fastfetch | cbirds figlet -f big hello | cbirds ls --color=always -la | cbirds git log --oneline --graph --color=always | cbirds cbirds --text poem.txt cat docs/neofetch.txt | cbirds コマンドが出力したそのままのテキストが、ターミナルがレイアウトした通りに表示されて始まります。cbirdsはエスケープシーケンスを読み取るため、情報が横に並んだロゴは、情報が横に並んだロゴとして出力されます。数秒後、1つの文字が離れ、その近くの文字がそれに続きます。画面を約1秒かけて横切る波となり、文字は群れとして飛びます。約20秒後、それらは呼び戻され、すべての文字がそれぞれのセルに着地します。画面はコマンドが出力した状態に、セル単位で戻ります。一時停止の後、これが繰り返されます。Enterキーを押すと文字が離れるか、すぐに呼び戻されます。静止しているテキストにポインタを移動させると、触れた文字が飛び上がり、ポインタが離れると戻ってきます。qキーは、鳥の場合と同様に、画面上部へ飛び去らせます。 文字は、その色、太字、下線を含め、どこにあってもそれ自体として描画されます。色がない文字は、飛んでいる間に群れの色を引き継ぎます。背景色は印刷された場所に留まります。全角文字は2つのセルを使用します。ホークは機能し、テキスト上の矢印として表示されます。--birds、--flocks、--depth、--matrix、--shape、--sprite、tails は適用されません。テキストが文字数を決定し、文字にはスプライトがありません。--render kitty はテキストも描画します。パネルはテキストの上に重ねて表示され、その下の文字はそこに留まります。 標準入力がターミナルでない場合、キーはターミナル自身、つまりLinuxでもmacOSでも、その制御端末である/dev/ttyから読み取られます。端末が全くない場合(サービスやエディタの実行ボタンなど)、cbirdsは端末が必要であると表示して停止します。パイプは終端まで、または1.5秒間無音状態が続いた場合、8秒経過した場合、または1メガバイトを送信した場合に読み取られ、保持されるのは最後の画面分です。これはターミナルが保持するのと同じです。tail -f log | cbirds は、ログが静かになった時点の内容を表示します。3秒間何も送信しないパイプと、表示するものが何もないテキストは、通常の群れを生成します。ウィンドウサイズが変更されると、テキストは新しいサイズに合わせて再レイアウトされます。 サインは群れが書くものであり、テキストは群れであるため、--say、--clock、--seconds、--picture は、--text またはパイプ上のテキストと共に使用すると使用法エラーで停止します。録画はテキストも受け取り、全サイクル(34秒)を実行します。ただし、--record-seconds で指定された場合は除きます。録画は、完成する時間がない波を開始しないため、全サイクルは印刷された状態のテキストで終了し、GIFはジャンプなしでループします。 fastfetch | cbirds --record fetch.cast cbirds --text poem.txt --record poem.gif --record-fps 20 テキストのGIFは、5x7フォントで12x20ピクセルのセルに描画されるため、ドットではなく文字が表示されます。--snapshot はテキストを取得し、--bench は --text を取得しますが、パイプは取得しません。 サイン --say TEXT は、群れがBOIDSを表示する場所にTEXTを表示し、それを保持します。