Ghosttyインストールメモ

Ghosttyインストールメモ

TerminalアプリでGhosttyが軽量で良いという噂を聞いたので、インストールしてみました。それはその時の設定のメモ書きです。

インストール元

Ghostty
Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.

install方法

brew install --cask ghostty

Ghosttyの設定はこちらを参考にしました。

Ghosttyへ入門する

上の記事を参考に、設定ファイルに下記を登録しました。
フォントなどの見た目の設定はデフォルトのままで、クリップボードの設定と画面分割をしてみました。
ワーキングディレクトリの設定もして、アプリを開いたら、いつも開発しているディレクトリを表示するようにしました。

# --- Macネイティブな挙動 ---
# タイトルバーを透明にしてスッキリさせる
macos-titlebar-style = transparent
# フルスクリーン時にMac標準の挙動にする
macos-window-shadow = true
# 入力中はマウスカーソルを隠す
mouse-hide-while-typing = true

# --- 操作性 ---
# 選択しただけでクリップボードにコピー
copy-on-select = true
# クリップボードの読み書きを許可
clipboard-read = allow
clipboard-write = allow

# --- キーバインド設定(画面分割) ---
#  Cmd+Enter で「下に」分割
keybind = cmd+enter=new_split:down
# Cmd+Shift+Enter で「右に」分割
keybind = cmd+shift+enter=new_split:right
# Cmd + 矢印キー で分割した画面を「移動」
keybind = cmd+left=goto_split:left
keybind = cmd+right=goto_split:right
keybind = cmd+up=goto_split:top
keybind = cmd+down=goto_split:bottom
# Cmd + Shift + 矢印キー でサイズを「調整」
keybind = cmd+shift+left=resize_split:left,20
keybind = cmd+shift+right=resize_split:right,20
keybind = cmd+shift+up=resize_split:up,20
keybind = cmd+shift+down=resize_split:down,20

# Cmd + W で現在の「ペイン(分割)」を閉じる
keybind = cmd+w=close_surface


# 新規タブ/ウィンドウは“直前の場所”を引き継ぐ
window-inherit-working-directory = true
working-directory = /Users/{User}/local_product/{Workspace}

その他に入れた便利なツール

filetree

VSCodeふうにファイルリストを表示してくれるツールです。

GitHub - nyanko3141592/filetree: A fast, lightweight file explorer TUI with Vim keybindings
A fast, lightweight file explorer TUI with Vim keybindings - nyanko3141592/filetree

cargoが入っていなかったので入れました。

Installation - The Cargo Book

keifu

Gitのコミットグラフを表示するツールです。

GitHub - trasta298/keifu: A terminal UI tool for visualizing Git commit graphs with colored branch genealogy
A terminal UI tool for visualizing Git commit graphs with colored branch genealogy - trasta298/keifu

ただ、これのインストールに少々つまづきました。

インストールコマンドであるこちらを実行すると、

cargo install keifu

エラーがでました。

          Undefined symbols for architecture arm64:
            "_OPENSSL_init_ssl", referenced from:
                core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h58030db136cb93bb in keifu-90deda608336ba54.keifu.ac441faaf1f38a2e-cgu.0.rcgu.o
                std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::hd8477b676e63da03 in keifu-90deda608336ba54.keifu.ac441faaf1f38a2e-cgu.0.rcgu.o
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: could not compile `keifu` (bin "keifu") due to 1 previous error
error: failed to compile `keifu v0.1.5`, intermediate artifacts can be found at `/var/folders/h7/mls39jf56szdt9yhcmhtv5b80000gn/T/cargo-installR38wQF`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

どうやら、OpenSSLがarm64板がないというエラーみたいです。
入れていたHomeBrewがx86_64板のようでした。

こちらの記事をもとに、arm64板に入れ直します。

x86_64版のHomeBrew環境を一掃してarm64のみへ完全移行してみた | DevelopersIO
プライベートのMac環境にて処理中に、HomeBrew経由で導入したライブラリにx86_64用とarm64用が混在していることでエラーが度々発生していました。インストール時に片方にだけ入れたのが原因でしょうが、ARMベースの環境がメインストリームになって久しいこともあり、思い切って混在している環境から移行してみました。
# shellログインでアーキテクトを確認。arm64だった。
(base) ➜  ~ uname -m
arm64

# arm64でHomebrewをインストール
(base) ➜  ~ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
...

# 無事インストール成功
(base) ➜  ~ /opt/homebrew/bin/brew --version
Homebrew 5.0.9

その後、改めてOpenSSLのインストールをします。

/opt/homebrew/bin/brew install openssl@3

その後にkeifuをインストールしました。

(base) ➜  ~ cargo install keifu
    Updating crates.io index
  Installing keifu v0.1.5
   ...
    Finished `release` profile [optimized] target(s) in 34.31s
   Replacing /Users/satoutakeshi/.cargo/bin/keifu
    Replaced package `keifu v0.1.5` with `keifu v0.1.5` (executable `keifu`)
``

無事にkeifuのインストールができました。

ローカルのGitリポジトリがあるディレクトリで

keifu

を実行するとコミットグラフが表示されました。

結果

Ghosttyで画面分割を使って、VSCodeのような画面構成にできました。

満足です。これで個人開発続けようかと思います。