Powerlevel10k から Starship への移行ガイド(2025年版)
はじめに
長年愛用していた Powerlevel10k から Starship への移行を実施しました。
本記事では、両者の違い、最近の動向、移行手順、そしてカスタマイズ方法についてまとめます。
Powerlevel10k vs Starship の違い
Powerlevel10k
特徴:
- Zsh専用のプロンプトテーマ
- 超高速な起動時間(10ms未満)
- 設定ウィザード(
p10k configure)による初心者向けセットアップ - 10以上のビルトインテーマ
- 高度なカスタマイズが可能
デメリット:
- Zsh に限定される
- メモリ使用量が多い
- 設定ファイルが複雑(
.p10k.zsh)
Starship
特徴:
- クロスプラットフォーム対応(Bash, Zsh, Fish, PowerShell, Cmd など)
- Rust製で高速(約20ms、実用上問題なし)
- TOML形式のシンプルな設定ファイル
- メモリ効率が良い
- モジュール式の設計で拡張性が高い
デメリット:
- 起動時間は Powerlevel10k より若干遅い(ただし実用上は無視できるレベル)
最近の動向(2025年)
Powerlevel10k の現状
重要な事実:Powerlevel10k は現在ライフサポート状態です。
開発者が2025年にプロジェクトのメンテナンス停止を発表しました。現在も動作はしますが、今後の機能追加やバグ修正は期待できません。新規プロジェクトでの採用は推奨されません。
Starship の現状
- 活発に開発中(GitHub 53.6k+ stars)
- コミュニティが大きく、継続的な改善が行われている
- 2025年現在、最も推奨されるプロンプトカスタマイザー
- クロスプラットフォーム対応により、複数のシェル環境で統一された体験を提供
ベストプラクティス
2025年現在、Starship への移行が推奨されます。
理由:
- 継続的なメンテナンスが保証されている
- クロスシェル対応で柔軟性が高い
- 設定がシンプルで保守しやすい
- 活発なコミュニティによるサポート
Powerlevel10k の起動速度の優位性は実用上ほぼ無視できるレベルであり、Starship の利点がそれを上回ります。
移行手順
1. Starship のインストール
# Homebrew でインストール(macOS)
brew install starship
# その他のインストール方法
# curl -sS https://starship.rs/install.sh | sh2. .zshrc の修正
削除する設定
Powerlevel10k 関連の設定を削除します:
# 削除: Powerlevel10k instant prompt(ファイル上部付近)
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# 削除: Powerlevel10k のソースと設定
source ~/powerlevel10k/powerlevel10k.zsh-theme
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh追加する設定
Starship の初期化コードを追加します:
## starship prompt
if _has starship; then
eval "$(starship init zsh)"
fi_has 関数を使用することで、Starship がインストールされていない環境でもエラーになりません。
3. 移行後の確認
新しいターミナルセッションを開いて、Starship が正しく動作しているか確認します:
# Starship のバージョン確認
starship --version
# プロンプトの説明(デバッグ用)
starship explain4. 既存設定との互換性
良いニュース: 既存の Zsh 設定(Zinit プラグイン、補完設定、エイリアスなど)はそのまま動作します。
Starship はプロンプト表示のみを担当するため、他の設定との競合はありません。
カスタマイズ
設定ファイルの場所
Starship の設定ファイルは ~/.config/starship.toml に配置します:
mkdir -p ~/.config
touch ~/.config/starship.tomlプリセットの使用
Starship には複数のプリセットが用意されています:
# Nerd Font シンボルを使用するプリセット
starship preset nerd-font-symbols -o ~/.config/starship.toml
# その他のプリセット
starship preset no-nerd-font -o ~/.config/starship.toml
starship preset pastel-powerline -o ~/.config/starship.toml
starship preset pure-preset -o ~/.config/starship.toml基本的なカスタマイズ例
# ~/.config/starship.toml
# プロンプトの前に空行を追加
add_newline = true
# コマンド実行タイムアウト(ミリ秒)
command_timeout = 500
# プロンプトのフォーマット定義
format = """
$username\
$hostname\
$directory\
$git_branch\
$git_status\
$nodejs\
$python\
$rust\
$character
"""
# ディレクトリモジュールのカスタマイズ
[directory]
truncation_length = 3
truncate_to_repo = true
format = "at [$path]($style) "
# Git ブランチモジュールのカスタマイズ
[git_branch]
symbol = "🌱 "
format = "on [$symbol$branch(:$remote_branch)]($style) "
# 文字(プロンプト記号)のカスタマイズ
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[✗](bold red)"モジュールの無効化
不要なモジュールを無効化できます:
# パッケージ情報を非表示
[package]
disabled = true
# Docker コンテキストを非表示
[docker_context]
disabled = true高度なカスタマイズ
条件付き表示
# Git リポジトリ内でのみ Git 情報を表示
[git_branch]
only_attached = trueカスタムコマンドモジュール
# カスタムコマンドの実行結果を表示
[custom.git_email]
command = "git config user.email"
when = "git rev-parse --git-dir 2> /dev/null"
format = "via [$output]($style)"デバッグ
設定に問題がある場合:
# プロンプトの各要素の説明を表示
starship explain
# 詳細なログを有効化
STARSHIP_LOG=trace starship explain
# パフォーマンス測定
starship timingsまとめ
Powerlevel10k から Starship への移行は、以下の理由から推奨されます:
- 継続的なメンテナンスが保証されている
- クロスプラットフォーム対応で柔軟性が高い
- 設定がシンプルで保守しやすい
- 活発なコミュニティによるサポート
移行作業は比較的簡単で、既存の設定との互換性も高いため、スムーズに移行できます。 Starship の TOML ベースの設定は、Powerlevel10k の複雑な設定ファイルよりも理解しやすく、カスタマイズも容易です。