no7.space
👻

Ghostty を試す

ターミナルエミュレータって色々ありますよね。
私も iTerm2 からはじまって、Alacritty、Hyperときて、一回標準の「ターミナル」に戻って、それから Tabby に落ち着いていました。
が、今回新たに支給された仕事用のマシンをセットアップしていくにあたり、この環境で使うターミナルエミュレータを何にしようか awesome-terminals 見ながら悩んだ結果、今回はオバケのアイコンが可愛い Ghostty にすることにしました。
(ちなみに個人用のマシンは今も Tabby です)

Ghostty は Vagrant や Terraform を開発する HashiCorp の共同設立者の一人である Mitchell Hashimoto 氏が、
HashiCorp を退職後に個人開発者として開発を行っているソフトウェアらしいです。
ちなみに言語は Zig で書かれてるとのこと。1

とりあえず、いろいろと設定をいじってみて、あれこれ試してたんですが、一旦落ち着いたのでバックアップも兼ねて現在の config を貼っておこうと思います。

config

theme = Catppuccin Macchiato

font-family = "Cica"
font-size = 16

background-opacity = 0.95
background-blur-radius = 20
macos-icon = blueprint

shell-integration-features = no-cursor

cursor-style = block
cursor-style-blink = true
cursor-opacity = 0.7

resize-overlay = never

メモ

theme
カラースキームは Catppuccin Macchiato です。
Catppuccin のダークテーマが好きなんですよね。VSCode とかは、Frappé にしてます。
あと、アイコンかわいい。

ちなみに Ghostty ははじめから主要なカラースキームを内蔵してて、追加でダウンロードとかなしに切り替えられます。

また、設定を書き換えずともプレビューするための機能も用意されており、ghostty から

ghostty +list-themes

と入力することで一覧から選びつつテーマを確認することができます。

  • / でフィルター
  • でプレビュー切り替え
  • q で終了

font-family = "Cica"
フォントは他のエディタや IDE と揃えて Cica を使ってます

font-size
もういい年なので年々フォントサイズは大きくなる傾向にあります。

background-opacity
ほんの僅かに、ほんとに、ほんの僅かに奥が透けて見えるの好きなんですよね。
負荷が高くなったらやめます。

background-blur-radius
透過すると裏のウィンドウと重なって読みにくくなってしまうので、背景にぼかしをかけるようにして、すりガラスみたいにしてます。
Mac の Liquid Glass な UI ともマッチしてる…気がしないでもない。よくわからん。

macos-icon
アイコンも実はいろいろ選べるってことで設計図(ブループリント)にしてみたんですが、ターミナルのアイコンは黒ベースなものがほとんどだったので、たまに Dock からアイコン探すのに迷子になることがありますw
もっとも殆どの場合は、Raycast から呼んじゃうのでまず問題にはならないのですが。

shell-integration-features
shell統合を自動にしてるせいか、カーソル変更がうまくいきませんでした。
なので、カーソルだけは手動設定を優先できるように no-cursor を指定しています。

Note

シェル統合(shell-integration)はデフォルトで detect つまり、自動検出となっています。

cursor-style
cursor-style-blink
cursor-opacity

私はシェルのカーソルはブロックタイプで点滅してるのが好きなのでこのような設定にしました。
ただ、そのままだとちょっとカーソルの主張が強すぎたので、透明度をちょい下げしてます。

resize-overlay
ウィンドウのサイズが変更されたときに、大きさを表示してくれる機能なんですが、自分にとっては重要な情報ではなかったので非表示にしました。
もし今後サイズを意識しなくてはいけないシーンがあったとしても、Tmux でウィンドウ分割したら多分ターミナルエミュレータ側のサイズ情報は意味なくなっちゃう気がしますし…。

感想

思ったよりあっさりした設定ファイルになりました。
まぁ画面分割とかはターミナルの機能というよりは、Tmux 側でやってしまうのでそのへんのキーバインドとかが一切ないからかもしれないですが。

Footnotes

  1. Zig って今回調べてて初めて知ったのですが、10年くらい前からある言語なんですね
    https://ziglang.org/ja-JP/