はじめに
最近 Ghostty というターミナルエミュレータが注目を集めていることを知り、試してみることにしました。
技術系 YouTube で見聞きしたり、また同僚の「Ghostty いいね」といった感想もあり、自分自身でも体験してみようと思いました。
本執筆時点では公式に Debian 用のバイナリが提供されていないため、ソースコードからビルドする必要がありました。しかしながら、公式ドキュメントに従うことでなんの問題もなく簡単にビルド及びインストールすることができました。
本記事では、Ghosttyを試した印象や氣づいたことを記録していきます。
環境
- OS: Debian ベースのLMDE6 (Linux Mint Debian Edition 6)
Ghostty の魅力
Ghosttyは初期設定でも十分に使いやすく、直感的な操作性が特徴と認識しました。
デフォルトの設定を確認したり、ドキュメントを参照するためのコマンドが提供されているのがいいなと思いました。
これらの便利な機能により、初心者でも簡単にカスタマイズができそうな感じです。
# 現在の設定を列挙
ghostty +show-config
# 初期設定を列挙
ghostty +show-config --default
# 初期設定を説明付きで列挙
ghostty +show-config --default --docs
# ショートカット一覧を表示
ghostty +list-keybinds
# 利用可能なテーマをリストアップ
ghostty +list-themes
テーマの選択肢がデフォルトで豊富に用意されているのも大きな魅力のひとつです。
用意されているテーマをリストアップし、簡単に試すことができます。
ghostty +help
コマンドを使うことで、すべての機能を簡単に把握することができます。[+action]
の部分が特徴的に感じました。
$ ghostty +help
Usage: ghostty [+action] [options]
Run the Ghostty terminal emulator or a specific helper action.
If no `+action` is specified, run the Ghostty terminal emulator.
All configuration keys are available as command line options.
To specify a configuration key, use the `--<key>=<value>` syntax
where key and value are the same format you'd put into a configuration
file. For example, `--font-size=12` or `--font-family="Fira Code"`.
To see a list of all available configuration options, please see
the `src/config/Config.zig` file. A future update will allow seeing
the list of configuration options from the command line.
A special command line argument `-e <command>` can be used to run
the specific command inside the terminal emulator. For example,
`ghostty -e top` will run the `top` command inside the terminal.
On macOS, launching the terminal emulator from the CLI is not
supported and only actions are supported.
Available actions:
+version
+help
+list-fonts
+list-keybinds
+list-themes
+list-colors
+list-actions
+show-config
+validate-config
+crash-report
+show-face
Specify `+<action> --help` to see the help for a specific action,
where `<action>` is one of actions listed above.
設定方法
Ghosttyの設定ファイルは、$HOME/.config/ghostty/config
に保存されています。
また、「Ctrl
+ ,
」のショートカットで直接開くことができます。
私の設定
デフォルトの設定でも十分快適なのですが、いくつか自分の好みに合わせて調整を加えました。
主な調整内容
- フォント: Neovim で使用している FiraCode Nerd Font
- ショートカット: tmux や Neovim で設定している操作感に合わせて、ページアップ/ダウンのショートカットを調整
以下が私の設定ファイルです:
# $HOME/.config/ghostty/config
theme = Dracula+
font-size = 10
font-family = FiraCode Nerd Font
keybind = ctrl+shift+up=scroll_page_up
keybind = ctrl+shift+down=scroll_page_down
keybind = ctrl+shift+k=scroll_page_up
keybind = ctrl+shift+j=scroll_page_down
Alacritty との比較
これまでターミナルエミュレータとして Alacritty を愛用してきました。その理由は、シンプルであること、そして TOML/YAML 形式の設定ファイルを使って
簡単にカスタマイズが可能な点でした。
私がターミナルエミュレータに求めるのは「tmux や Neovim と組み合わせてシンプルに使えること」です。この観点から、Alacrittyのシンプルさは非常に魅力的でした。
対して、Ghosttyを使ってみた印象は、「人間に優しい設計」だということでした。設定やコマンドがわかりやすいのは、誰にとっても良いことだと思います。
Debian 環境でのGhosttyビルド
公式ドキュメントに従うことでなんの問題もなく簡単にビルド及びインストールすることができました。
ビルド手順
以下の手順でソースコードからビルドしました。
zig
をインストール
Zig はasdf を使って インストールしました。
Ghostty の公式ドキュメントによると Zig はバージョン 0.13 以上である必要があるそうです。
asdf plugin add zig
asdf install zig latest
asdf global zig latest
zig version
必要な依存関係をインストール
sudo apt update && sudo apt install libgtk-4-dev libadwaita-1-dev git
ソースコードをダウンロード
ソースコードの置き場はどこでもいいのですが、設定ファイルのある$HOME/.config/ghostty/
配下に置く方針にしました。
$ tree -L 1 $HOME/.config/ghostty
/home/mnishiguchi/.config/ghostty
├── config # 設定
├── ghostty # ソースコード
└── themes # テーマ
3 directories, 1 file
git clone https://github.com/ghostty-org/ghostty $HOME/.config/ghostty/ghostty
Ghostty をビルドしてインストール
基本的にソースコードのあるディレクトリに移動し、zig build
コマンドを叩くだけですが、-p
オプションでバイナリの置き場所を指定することがポイントです。
ビルド結果にはバイナリ以外にもいろんなファイル(アイコン、テーマ、デスクトップファイルなど)がついてきます。このオプションを指定することにより、必要なファイルが自動的に適切にコピーされます。便利!
私の場合は、バイナリの置き場所を$HOME/.local
にしています。
cd $HOME/.config/ghostty/ghostty
zig build -p $HOME/.local -Doptimize=ReleaseFast
.desktop
ファイルを修正
ビルド後、$HOME/.local/bin/ghostty
は問題なく起動できたものの、デスクトップのアプリケーションメニューからは起動できませんでした。
どうもデスクトップ環境で何かが Ghostty をアプリケーションと認識されていないようです。
.desktop
ファイルは$HOME/.local/share/applications/com.mitchellh.ghostty.desktop
にありました。
それを手動でリネームしたら解決しました。
mv $HOME/.local/share/applications/com.mitchellh.ghostty.desktop $HOME/.local/share/applications/Ghostty.desktop
update-desktop-database $HOME/.local/share/applications/
カスタムスクリプト
再インストールや最新のソースコードへの更新を簡単に行えるよう、以下のスクリプトを作成しました。
自分用なのでお使いの場合は適宜中身を変更してください。
おわりに
Ghosttyは、その直感的なわかりやすい設計が魅力的に思いました。日々の作業がより快適になりそうな予感がします。
これからもGhosttyを使い続け、その中で見つけた便利な使い方を追求していきたいと思います