---
title: "ターミナルがダサいとモテない。tattoyでターミナルをド派手にしよう！ | grasys blog"
url: "https://blog.grasys.io/post/yusukeh/terminal-tattoy"
description: "tattoyを使ってターミナルの背景で動画を再生する。 Photo by Alex Litvin on Unsplash またまたターミナルをド派手にするものを見つけてしまいました😂 その名もtattoy [](https://tattoy.sh/?source=post page-----56e509e2cc2c…"
---

# ターミナルがダサいとモテない。tattoyでターミナルをド派手にしよう！

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[yusukeh](/authors/yusukeh/)
-   公開日：2025年6月16日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#シリーズ: ターミナル環境](/tags/シリーズ-ターミナル環境/)

![ターミナルがダサいとモテない。tattoyでターミナルをド派手にしよう！](/_astro/ogp.BUviNv0k_Z2u0tlg.webp)

tattoyを使ってターミナルの背景で動画を再生する。

![ターミナルがダサいとモテない。tattoyでターミナルをド派手にしよう](/_astro/01-0-K4ZxT4Prgj2EZ5UZ-0022cc5b.CeESl2Fn_Z2lsxXG.webp)

Photo by [Alex Litvin](https://unsplash.com/@alexlitvin?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=medium&utm_medium=referral)

またまたターミナルをド派手にするものを見つけてしまいました😂

その名もtattoy

[](https://tattoy.sh/?source=post_page-----56e509e2cc2c---------------------------------------)

[Tattoy](https://tattoy.sh/?source=post_page-----56e509e2cc2c---------------------------------------)

ターミナルの背景に動画を設定できます。

## Install tattoy

macOSでは普通にbrewで入るみたいです。[](https://tattoy.sh/download/?source=post_page-----56e509e2cc2c---------------------------------------)

[Downloading Tattoy](https://tattoy.sh/download/?source=post_page-----56e509e2cc2c---------------------------------------)

Plain textcontent\_copy

```
brew install tattoy-org/tap/tattoy
```

自分はcargoで入れてます。

Plain textcontent\_copy

```
cargo install --locked --git https://github.com/tattoy-org/tattoy tattoy
```

## Install mpv

動画再生にmpvを利用するので、Installします。[](https://mpv.io/?source=post_page-----56e509e2cc2c---------------------------------------)

[mpv.io](https://mpv.io/?source=post_page-----56e509e2cc2c---------------------------------------)

これも普通にbrewで入ります。

Plain textcontent\_copy

```
brew install mpv
```

## config path

[](https://tattoy.sh/docs/config/?source=post_page-----56e509e2cc2c---------------------------------------)[Configuration](https://tattoy.sh/docs/config/?source=post_page-----56e509e2cc2c---------------------------------------)

-   Linux: `$HOME/.config/tattoy/tattoy.toml`.
    
-   MacOS: `$HOME/Library/Application Support/tattoy/tattoy.toml`
    

tattoyはXDGに直接対応している感じじゃないっぽいので、symlinkしちゃう。

Plain textcontent\_copy

```
test ! -d ${HOME}/.config/tattoy && mkdir -p ${HOME}/.config/tattoy
ln -s ${HOME}/.config/tattoy "${HOME}/Library/Application Support/tattoy/tattoy.toml"
```

これはやってもやらなくても大丈夫です。

## palette config

tattoyを初回起動すると

![palette configの画面](/_astro/02-1-y2p3R3mEcSRmtRiw7tjUtA-4e154983.DSaBYBlh_ZpxwjD.webp)

これは普通に y を押してください。

palette.tomlが初期化されます。

2025/06/16時点では、[WezTerm](https://wezterm.org/index.html)とかで背景画像を設定してるとparse-paletteがうまくいかないかもしれません。自分はうまくいきませんでした。なのでその場合は、dでも大丈夫です。

## Config Setup

text\_contrastを修正します。  
enabled = trueにします。

Plain textcontent\_copy

```
[text_contrast]
enabled = true
target_contrast = 2.0
# When set to false, all text is automatically adjusted, even non-alphanumeric characters
# like UI border elements etc. The only characters that aren't adjusted are the UTF8
# half blocks (eg ▀) that are used to render "graphics", as in the shaders for example.
apply_to_readable_text_only = true
```

minimapを修正します。  
enabled = trueにします。

Plain textcontent\_copy

```
[minimap]
enabled = true
animation_speed = 0.15
# The maximum width of the minimap. It can be narrower when the scrollback is long
# in order to maintain a consistent aspect ratio.
max_width = 10
```

カーソルを右端に持っていくとscroll minimapが表示されます。

bg\_commandを修正します。  
enabled = trueに修正し  
commandを以下のように修正します。

Plain textcontent\_copy

```
[bg_command]
enabled = true
# The command to run. The executable goes in the first position and then each argument must
# be placed in its own quotes in the array.
# Examples:
# * Render a live-updating instance of the common monitoring application "top" in the background.
#   `command = ["top"]`
# * Play the "Bad Apple" video in the background.
#   `command = ["mpv", "--really-quiet", "--vo=tct", "--volume=0", "https://www.youtube.com/watch?v=UkgK8eUdpAo"]`
#command = ["echo", "Hello World"]
command = ["mpv", "--really-quiet", "--vo=tct", "--volume=0", "--loop-file=inf", "https://www.youtube.com/watch?v=yYnAw4_F0bU"]
# Do you expect the command to exit or not?
# Usually when a command exits Tattoy shows an error notification. But you may want to render a
# command that outputs some static content, for example to print out some ASCII-based image:
#   `command = ["chafa", "/path/to/wallpaper.png"]`
# Bare in mind that there's currently no config to re-run the command on terminal resize.
expect_exit = false
opacity = 0.7
layer = -10
```

ここではYouTubeの動画を再生させます。

background loopで検索して選びました。

[https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FyYnAw4\\\_F0bU%3Ffeature%3Doembed&display\\\_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DyYnAw4\\\_F0bU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FyYnAw4\\\_F0bU%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube](https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FyYnAw4%5C_F0bU%3Ffeature%3Doembed&display%5C_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DyYnAw4%5C_F0bU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FyYnAw4%5C_F0bU%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube)

[t-rec](https://github.com/sassman/t-rec-rs)で録画しました。

![tattoyでターミナル背景に動画を再生するデモ](/_astro/03-1-LcHePRQfeYwD3nCdi78w_w-c07ea2cd.CyqYd0KV_Z2gSMsJ.webp)

ほんとに動画が再生されます😆

因みに、当たり前ですがめちゃくちゃCPUを食います😅

意味なんて探してはいけません🤣🤣🤣🤣

2025/06/16時点では、bashを使っていますがキーボードショートカットが使えなくなります。  
私の環境ではbindで設定を読み込み直しても、今のところダメでした。  
今後のUpdateに期待です。

## Appendix: Shaders

[tattoy](https://tattoy.sh/)はglslファイルを読み込めます。

[](https://tattoy.sh/docs/shaders/?source=post_page-----56e509e2cc2c---------------------------------------)

[Shaders](https://tattoy.sh/docs/shaders/?source=post_page-----56e509e2cc2c---------------------------------------)

ghosttyに[ghostty-shaders](https://github.com/hackr-sh/ghostty-shaders)というリポジトリがありtattoy.tomlのshaderセクションを修正すると使えます。

Plain textcontent\_copy

```
[shader]
enabled = true
opacity = 0.2
layer = -2
# Whether to render the computed shader from the GPU. The shader pixels can still be
# used for other purposes such as defining the foreground colour of the terminal's text,
# see `render_shader_colours_to_text`.
render = true
# It can be useful to disable this for certain GUI terminal shaders (such as Ghostty shaders)
# that also take responsibility for rendering terminal text. Tattoy can only send a crude
# representation of terminal text as 2 pixels per character, which is sometimes desirable
# when the shader uses the terminal to inform the output of the shader, but it can also cause
# an unnesceray blocky effect when the shader doesn't use the terminal colours.
upload_tty_as_pixels = true
# Use each "cell" of the shader to set the corresponding text cell's foreground colour.
# This is most likely desirable in conjunction with the `render` option, so that the shader
# is only visible via the terminal's text.
render_shader_colours_to_text = true
# Path to a Shadertoy shader on your local filesystem. Is relative to the root of
# Tattoy's config directory.
#path = "shaders/soft_shadows.glsl"
path = "shaders/galaxy.glsl"
```

ここでは

TOMLcontent\_copy

```
enabled = true
layer = -2
path = "shaders/galaxy.glsl"
```

と設定します。`layer = -2` はbg\_commandのlayerより手前に設定し、bg\_commandのmpv動画再生より手前のレイヤーでshaderを描画しています。

もちろん、動画再生だけでかなりのCPUを食いますが、shaderを同時に使うともっとCPUを食います🤣

ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください！  
[『ターミナルがダサいとモテない』シリーズ一覧](https://blog.grasys.io/tags/series-terminal-update)

転載：[ターミナルがダサいとモテない。tattoyでターミナルをド派手にしよう！](https://medium.com/@yusuke_h/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8C%E3%83%80%E3%82%B5%E3%81%84%E3%81%A8%E3%83%A2%E3%83%86%E3%81%AA%E3%81%84-tattoy%E3%81%A7%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%82%92%E3%83%89%E6%B4%BE%E6%89%8B%E3%81%AB%E3%81%97%E3%82%88%E3%81%86-56e509e2cc2c)

## この記事を書いた人

[![](/_astro/yusukeh.BvUd2yKE_1mQ6Fp.webp)](/authors/yusukeh/)

### [yusukeh](/authors/yusukeh/)

Fly high. Think deep. Move fast. Go far.🦅

-   [X](https://x.com/yusukeh "X")
-   [GitHub](https://github.com/yusukeh "GitHub")
-   [Medium](https://medium.com/@yusukeh "Medium")
-   [Facebook](https://www.facebook.com/yusuke.exzm "Facebook")
-   [Instagram](https://www.instagram.com/yusukehasegawa/ "Instagram")
-   [LinkedIn](https://www.linkedin.com/in/hasegawa-yusuke-091b4164/ "LinkedIn")

[プロフィールと記事一覧](/authors/yusukeh/)