はじめに
Powerlevel10k で Trasient prompt の設定をしていきたいと思います。
GitHub - romkatv/powerlevel10k: A Zsh theme
AZshtheme.Contributetoromkatv/powerlevel10kdevelopmentbycreatinganaccountonGitHub.
Powerlevel10k の基本的な設定に関しては下記を参考にしてください。

zinit+iTerm2+powerlevel10kでzshのプロンプトをいい感じにカスタマイズする
はじめにzinit+iTerm2環境でのPowerlevel10kを導入する手順について解説していきます。zinitのざっくりな使い方については下記を参照してください。Powerlevel10kとはPowerlevel10kとは、zshのテ...
設定内容
設定した後のイメージは下記のようになります。
ポイントとしては、
- 実行したコマンドと結果がシンプルになる
- コマンドと結果ごとに改行が入る
- 実行した時間が表示される
になります。
Transient prompt
Transient prompt は、実行したコマンドと結果をシンプルに表示してくれる Powerlevel10k のプロンプトの設定です。
GitHub - romkatv/powerlevel10k: A Zsh theme
AZshtheme.Contributetoromkatv/powerlevel10kdevelopmentbycreatinganaccountonGitHub.
下記のように.p10k.zsh
のPOWERLEVEL9K_TRANSIENT_PROMPT
の設定をalways
かsame-dir
に変えることで有効にできます。
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
コマンドごとに改行を入れる
デフォルトの Transient prompt だと少し見にくく感じるので、コマンドと結果ごとに改行を入れるようにします。
まず、先ほど.p10k.zsh
で設定したPOWERLEVEL9K_TRANSIENT_PROMPT
をoff
に戻します。
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
次に、POWERLEVEL9K_PROMPT_ADD_NEWLINE
をtrue
に設定していない場合は設定します。
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
同じ.p10k.zsh
で、下記の関数を追加します。
function p10k-on-pre-prompt() { p10k display '1'=show }
function p10k-on-post-prompt() { p10k display '1'=hide }
これで、コマンドと結果ごとに改行を入れることができました。
実行した時間を残す
ついでに、過去のコマンドの実行した時間も残したいと思います。
プロンプトの左側に時間を表示したいので、左側のプロンプトの要素にtime
を追加します。
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
os_icon # os identifier
dir # current directory
vcs # git status
kubecontext # current kubernetes context (https://kubernetes.io/)
# =========================[ Line #2 ]=========================
newline # \n
time # 追加
prompt_char # prompt symbol
)
先ほど、追加したp10k-on-pre-prompt
とp10k-on-post-prompt
の関数の下記の通り更新します。
function p10k-on-pre-prompt() { p10k display '1'=show '2/left/time'=hide }
function p10k-on-post-prompt() { p10k display '1'=hide '2/left/time'=show }
これで最初のイメージ通りの設定が完了しました。
参考用に私の dotfiles の設定ものせておきます。
https://github.com/monda00/dotfiles/blob/master/shell/zsh/.p10k.zsh