忙しいターミナルの後ろに、自分の絵を出す
ときどきターミナルの後ろに絵が出ます。火花の散る爆弾、やかん、相撲の取組などです。しばらく忙しく 働いているセッションのための、MulmoTerminal のちょっとした演出です。絵は 9 種類入っていて、 自分の絵も足せます。アニメ GIF、静止画、短い動画が使えます。セッションごとに、入っている絵と 自分の絵を合わせた中から 1 つがランダムに選ばれます。
設定画面にはこの項目がありません。設定ファイルでだけ設定します。
絵の出方
これを知っておくと、うまく見える絵を用意できます。
- セッションが忙しいあいだ、4 段階で強くなります。 自分の絵はどの段階でも使われます。最初は 薄く、だんだん濃くなり、最後の段階では揺れて、ターミナル全体が赤くなります。4 枚用意する必要は ありません。1 枚から MulmoTerminal が作ります。
- 大きく忙しかったあとに落ち着くと、締めの演出(フィナーレ)が出ます。 数秒だけ絵がいちばん濃く 出て、消えます。この瞬間用に、爆発のような別のファイルを指定できます。指定しなければ、絵はそのまま 消えます。
- 文字の後ろにあり、文字が透けて見えます。 暗いテーマでは黒が消えて明るいところが光るように、 明るいテーマでは白が消えて暗いところが見えるように重ねます。フィナーレのとき以外は、完全には 不透明になりません。
- ターミナルに合わせた大きさで出ます。 ファイルの大きさに関係なく、真ん中に、ターミナルの高さより 少し小さいくらいに、縦横比を保って拡大・縮小します。小さいファイルは引き伸ばされて、ぼやけて見えます。
- セッションごとに絵は決まっています。 セッションの ID から選ぶので、同じセッションは何度忙しく なっても同じ絵です。ファイルを足したり減らしたりすると、どのセッションにどの絵が当たるかが変わります。
うまく見える絵
- 背景は透明に。 暗いテーマでも明るいテーマでも使えます。次に良いのは、暗いテーマなら黒い背景、 明るいテーマなら白い背景です。ほかの色の背景は、色の付いた四角に見えます。
- はっきりした形と強いコントラスト。 最初は 3 分の 1 くらいの濃さなので、細かいところやぼんやりした 写真は見えなくなります。写真よりステッカーのような絵が向いています。
- 正方形で、400 × 400 ピクセルくらい。 ほかの形でも縦横比を保って収めます。小さいと引き伸ばされて ぼやけ、大きすぎてもメモリを使うだけです。
- つなぎ目のないループ。 GIF や動画は、段階が続くあいだ(数分になることもあります)繰り返し再生します。 きれいにつながるループは落ち着いて見えます。最後で飛ぶと、数秒ごとに目を引いてしまいます。
- 文字は入れない。 半透明で、ターミナルの文字の後ろにあるので読めません。
- フィナーレ用は 2 秒くらい。 長さに関係なく数秒で切れます。1 回だけ、いちばん濃く出るので、 大きく派手な絵はここに向いています。
使えるファイル
| 種類 | 大きさの上限 | |
|---|---|---|
| 画像 | GIF、APNG、WebP、PNG、AVIF、SVG | 20 MB |
| 動画 | MP4、WebM | 50 MB |
動画はいつも音なしで繰り返し再生します。短く、小さくしてください。数秒・数 MB で十分です。 忙しいターミナルそれぞれが、自分の分を再生します。
設定のしかた
- ファイルを、MulmoTerminal を動かしているコンピューターのどこかに置きます。
-
~/.mulmoterminal/config.jsonを開き、playfulMediaを足します。{ "playfulMedia": { "files": [ "~/Pictures/heat/fire.gif", { "file": "~/Pictures/heat/rocket.mp4", "finale": "~/Pictures/heat/boom.gif" }, "./effects/cat.webp" ] } }それぞれの項目は、パスだけか、
fileと(必要なら)finaleを持つものです。 - 設定画面で Reload config file を押します。再起動は要りません。
パスの読み方
| 始まり | 意味 | 例 |
|---|---|---|
/ | 絶対パス(Windows では C:\ のようなドライブ名から始まるものも) | /Users/me/heat/fire.gif |
~/ | ホームディレクトリ | ~/Pictures/heat/fire.gif |
./ | MulmoTerminal を起動したディレクトリ | ./effects/cat.webp |
それ以外の書き方は使われません。fire.gif だけでは、どこも探しません。./ は npx mulmoterminal を どこで実行したかで変わるので、いろいろな場所から起動するなら ~/ を使ってください。
自分の絵だけにする
入っている 9 種類の絵を外すには、"builtIn": false を足します。
{ "playfulMedia": { "builtIn": false, "files": ["~/Pictures/heat/fire.gif"] } }
playfulEffects との関係
何かを出すかどうかは、これまでどおり playfulEffects で決まります。
playfulEffects | 出るもの |
|---|---|
"random"(既定) | セッションごとに、入っている絵と自分の絵から 1 つ |
入っている絵の名前("kettle" など) | どこでもその絵。自分の絵は使われません |
"off" | 何も出ません。自分の絵も出ません |
うまくいったかの確かめ方
- 使われなかったファイルがあるとき: MulmoTerminal のログ(起動したターミナル)に、ファイル名と 理由が出ます。よくある理由は、パスが存在しない、表にない種類、上限より大きい、
/・~/・./で 始まっていない、のどれかです。ほかのファイルはそのまま使われます。 - 待たずに自分の絵を見たいとき:
"builtIn": falseにして、そのファイルだけを並べます。どの セッションもその絵を使うので、次に長いビルドやテストを走らせたときに出ます。
動きを減らす設定のとき
システムで「視差効果を減らす」(macOS: システム設定 → アクセシビリティ → ディスプレイ → 視差効果を減らす) を入れていると、自分のファイルは使われません。ブラウザでは GIF を止めておけないためです。代わりに 入っている絵が、動かない状態で出ます。フィナーレも出ません。"builtIn": false のときは何も出ません。