## 経緯
[[snacks.dashboard]]で画像を表示したいので、[[chafa]]を試してみた。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
GitHub - hpjansson/chafa: 📺🗿 Terminal graphics for the 21st century.
</div>
<div class="link-card-v2-content">
📺🗿 Terminal graphics for the 21st century. Contribute to hpjansson/chafa development by creating an account on ...
</div>
<img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/130906897/fbe05080-f81e-11e9-8d23-93857fde0390" />
<a href="https://github.com/hpjansson/chafa"></a>
</div>
## 環境
| 対象 | バージョン |
| --------------- | ----------- |
| [[Ubuntu]] | 24.04.1 LTS |
| [[Neovim]] | 0.10.3 |
| [[chafa]] | 1.14.0 |
| [[snacks.nvim]] | bc0630e |
## インストール
[[mise]]では無理そうだったので [[APT]] でインストールする。
```console
sudo apt install -y chafa
```
## 動作確認
```console
chafa mimizou.png --symbols half --size 30
```
![[Pasted image 20250330113452.png|frame]]
[[Neovim]]のターミナルでも表示されることを確認。
![[Pasted image 20250330113652.png|frame]]
## snacks.dashboard で表示する
`~/.config/lua/snacks/dashboard.png` を配置して、[[snacks.dashboard]]に設定ファイルを追加する。画像表示に関係しないところは省略してある。
```lua
local dashboardImagePath = vim.fn.stdpath("config") .. "/lua/snacks/dashboard.png"
return {
"folke/snacks.nvim",
lazy = false,
-- 中略
opts = {
dashboard = {
row = 10,
preset = {
keys = {
-- 中略
},
},
sections = {
{
section = "terminal",
cmd = "chafa " .. dashboardImagePath .. " --size 48 --symbols vhalf; sleep .1",
height = 30,
padding = 0,
},
{
pane = 2,
{ section = "header" },
{ section = "keys", gap = 1, padding = 1 },
{ section = "startup" },
},
},
},
},
}
```
起動するとこんな感じで表示される。
![[Pasted image 20250330120000.png]]
## 元画像
ターミナル表示では微笑み感の細かいドットまで再現できていなかったけど、まあそんなところ普段みないので問題ない。
![[dashboard.png|frame]]
*Neovimちゃん*
元ネタはこの記事を書いたときAIに書いてもらったキャラ。最近[[GPT-4o]]の画像生成が大幅にパワーアップしたので、1度きりだったキャラクターを使いまわせるようになった。めっちゃいい。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📘Neovimを使ったことがなかったころの君へ
</div>
<div class="link-card-v2-content">2023年のおわり、1年のふりかえり記事を書こうとネタを考えながら帰路につき、いつもは見ないポストを開けるとそこには見慣れない1通の手紙が...。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2023-12-29.jpg" />
<a data-href="📘Neovimを使ったことがなかったころの君へ" class="internal-link"></a>
</div>
%%[[📘Neovimを使ったことがなかったころの君へ]]%%