Powerlevel10kからStarshipに移行する方法とカスタマイズ設定

How to Migrate from Powerlevel10k to Starship Prompt

* 本ページはプロモーションが含まれています

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 への移行が推奨されます。

理由:

  1. 継続的なメンテナンスが保証されている
  2. クロスシェル対応で柔軟性が高い
  3. 設定がシンプルで保守しやすい
  4. 活発なコミュニティによるサポート

Powerlevel10k の起動速度の優位性は実用上ほぼ無視できるレベルであり、Starship の利点がそれを上回ります。

移行手順 

1. Starship のインストール 

# Homebrew でインストール(macOS)
brew install starship

# その他のインストール方法
# curl -sS https://starship.rs/install.sh | sh

2. .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 explain

4. 既存設定との互換性 

良いニュース: 既存の 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 への移行は、以下の理由から推奨されます:

  1. 継続的なメンテナンスが保証されている
  2. クロスプラットフォーム対応で柔軟性が高い
  3. 設定がシンプルで保守しやすい
  4. 活発なコミュニティによるサポート

移行作業は比較的簡単で、既存の設定との互換性も高いため、スムーズに移行できます。 Starship の TOML ベースの設定は、Powerlevel10k の複雑な設定ファイルよりも理解しやすく、カスタマイズも容易です。

参考リンク