← ブログ

最近 dotfiles に入れてよかった8つのツール

開発環境ツール

ここ数ヶ月、開発環境をちまちまいじっていた。気づいたら dotfiles がかなり育っていて、「これはもう記事にしておこう」と思ったので書く。

全部を紹介するとキリがないので、特に「入れてよかった」と感じたものを8つ。


WezTerm — ターミナルを Lua で自由に組む

ターミナルは WezTerm を使っている。一番気に入っているのは、設定が全部 Lua で書けること。

自分の設定は mozumasu さんの記事 をベースにしていて、そこからモジュール分割して育てていった。appearance.luakeymaps.luastatusbar.lua みたいにファイルを分けて、wezterm.lua から読み込む構成にしている。

テーマは Catppuccin Mocha。GPU レンダリング(WebGpu)を有効にして 120fps で描画させている。透過度 90% + ブラーをかけると、背景がうっすら見えてちょうどいい。

WezTerm のターミナル画面。Neovim と Claude Code を並べて表示している

Lua で書けるおかげで、こんなこともできる:

「ターミナルの設定をプログラムで制御する」というのが驚きだった。そのおかげで気軽にカスタマイズできるし、何より楽しい


Karabiner-Elements — Cmd キーで IME を切り替える

日本語入力の切り替えに Karabiner-Elements を使っている。

やっていることはシンプルで:

Cmd キーを単押ししたときだけ IME が切り替わるので、Cmd+C などのショートカットはそのまま使える。Caps Lock は Control にしておくと、ターミナルやエディタでの操作がかなり楽になる。

外部キーボード(Magic Keyboard)も含めてデバイスごとにプロファイルを設定できるので、どのキーボードでも同じ体験になる。


ghq + fzf — repo コマンドで一瞬でリポジトリに飛ぶ

ghq でリポジトリを ~/ghq 以下に一元管理して、fzf で検索する。これを repo という関数にまとめている。

function repo() {
  local dir=$(ghq list | fzf)
  if [ -n "$dir" ]; then
    cd "$(ghq root)/$dir"
  fi
}

ターミナルで repo と打つと、全リポジトリが fzf で一覧表示される。インクリメンタルサーチで絞り込んで Enter を押せば、そのリポジトリに cd する。

git clone の代わりに ghq get を使うだけで、リポジトリの保存場所が自動的に統一される。「あのリポジトリどこに置いたっけ?」がなくなった。


zoxide — cd をスマートにする

zoxide は「よく行くディレクトリを覚えてくれる cd」。

z コマンドで使う。たとえば z life と打てば、過去の移動履歴から /Users/yu-home/ghq/github.com/yuuki008/life を推測して飛んでくれる。パスの一部を入力するだけでいい。

ghq + fzf はリポジトリ単位の移動に強いけど、リポジトリ内のサブディレクトリに飛びたいときは zoxide のほうが速い。この2つを組み合わせると、ディレクトリ移動でストレスを感じることがほぼなくなる。


lazygit — Git 操作を TUI でサクサク

lazygit は Git の TUI クライアント。lg というエイリアスで起動している。

ステージング、コミット、ブランチ切り替え、リベース、スタッシュ、cherry-pick… ほとんどの Git 操作がキーボードだけで完結する。差分を見ながらファイル単位・ハンク単位でステージングできるのが特に便利。

lazygit の画面。ファイル一覧、差分、ブランチ、コミット履歴が一画面に表示されている

git loggit diff をターミナルで叩いて目で追うより、lazygit の画面で一覧しながら操作するほうが圧倒的に速い。コンフリクトの解消も視覚的にやれる。


Starship — プロンプトをシンプルに整える

Starship はクロスプラットフォームのシェルプロンプト。Rust 製で速い。

自分の設定はこんな感じ:

Starship プロンプト。ディレクトリ名、Git ブランチ、実行時間、時刻が表示されている

starship.toml に書くだけで設定が終わるので、zsh のプロンプト設定をゴリゴリ書く必要がない。見た目がすっきりしてターミナルを開くのが少し楽しくなる。


macOS defaults — .macos スクリプトで OS 設定を再現可能にする

macOS のシステム設定を defaults write コマンドで管理している。dotfiles に .macos というスクリプトを置いて、新しい Mac をセットアップするときに一発で適用できるようにしている。

入れている設定:

特にキーリピートの高速化とスペルチェック無効化は、入れないと毎回ストレスになるやつ。手動で設定画面をポチポチするのは面倒なので、スクリプトにしておくと Mac を買い替えても安心。


direnv — ディレクトリごとに環境変数を自動で切り替える

direnv は、ディレクトリに .envrc ファイルを置いておくと、そのディレクトリに入ったときに自動で環境変数をセットしてくれるツール。

プロジェクトごとに API キーやデータベースの接続先が違うとき、いちいち export を打ったり .envsource したりしなくていい。ディレクトリを出れば自動で元に戻る。

zoxide や ghq と組み合わせると「リポジトリに飛ぶ → 環境変数が自動でセットされる → すぐ開発開始」という流れができる。地味だけど、一度使うと戻れない。


こうやって並べてみると、「移動を速くする」「繰り返しを自動化する」「設定を再現可能にする」の3つが共通するテーマだった。どれも派手な機能ではないけど、毎日使うものだからこそ、小さな改善が積み重なって大きな差になる。

dotfiles は GitHub で公開しているので、気になったものがあれば参考にしてみてください。

← ブログ一覧に戻る