忙しいターミナルの後ろに、自分の絵を出す

ときどきターミナルの後ろに絵が出ます。火花の散る爆弾、やかん、相撲の取組などです。しばらく忙しく 働いているセッションのための、MulmoTerminal のちょっとした演出です。絵は 9 種類入っていて、 自分の絵も足せます。アニメ GIF、静止画、短い動画が使えます。セッションごとに、入っている絵と 自分の絵を合わせた中から 1 つがランダムに選ばれます。

設定画面にはこの項目がありません。設定ファイルでだけ設定します。

  1. 絵の出方
  2. うまく見える絵
    1. 使えるファイル
  3. 設定のしかた
    1. パスの読み方
    2. 自分の絵だけにする
    3. playfulEffects との関係
  4. うまくいったかの確かめ方
  5. 動きを減らす設定のとき

絵の出方

これを知っておくと、うまく見える絵を用意できます。

  • セッションが忙しいあいだ、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 で十分です。 忙しいターミナルそれぞれが、自分の分を再生します。

設定のしかた

  1. ファイルを、MulmoTerminal を動かしているコンピューターのどこかに置きます。
  2. ~/.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 を持つものです。

  3. 設定画面で 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 のときは何も出ません。


This site uses Just the Docs, a documentation theme for Jekyll.