【Powerlevel10k】Transient promptの設定をしてみる
はじめに
Powerlevel10k で Trasient prompt の設定をしていきたいと思います。
GitHub - romkatv/powerlevel10k: A Zsh theme
A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.
Powerlevel10k の基本的な設定に関しては下記を参考にしてください。
zinit+iTerm2+powerlevel10kでzshのプロンプトをいい感じにカスタマイズする
はじめに zinit+iTerm2環境での**Powerlevel10kを導入する手順**につい
設定内容
設定した後のイメージは下記のようになります。
ポイントとしては、
- 実行したコマンドと結果がシンプルになる
- コマンドと結果ごとに改行が入る
- 実行した時間が表示される
になります。
Transient prompt
Transient prompt は、実行したコマンドと結果をシンプルに表示してくれる Powerlevel10k のプロンプトの設定です。
GitHub - romkatv/powerlevel10k: A Zsh theme
A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.
下記のように.p10k.zsh
のPOWERLEVEL9K_TRANSIENT_PROMPT
の設定をalways
かsame-dir
に変えることで有効にできます。
1 typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
コマンドごとに改行を入れる
デフォルトの Transient prompt だと少し見にくく感じるので、コマンドと結果ごとに改行を入れるようにします。
まず、先ほど.p10k.zsh
で設定したPOWERLEVEL9K_TRANSIENT_PROMPT
をoff
に戻します。
1 typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
次に、POWERLEVEL9K_PROMPT_ADD_NEWLINE
をtrue
に設定していない場合は設定します。
1 typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
同じ.p10k.zsh
で、下記の関数を追加します。
1function p10k-on-pre-prompt() { p10k display '1'=show }
2function p10k-on-post-prompt() { p10k display '1'=hide }
これで、コマンドと結果ごとに改行を入れることができました。
実行した時間を残す
ついでに、過去のコマンドの実行した時間も残したいと思います。
プロンプトの左側に時間を表示したいので、左側のプロンプトの要素にtime
を追加します。
1
2 # The list of segments shown on the left. Fill it with the most important segments.
3 typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
4 # =========================[ Line #1 ]=========================
5 os_icon # os identifier
6 dir # current directory
7 vcs # git status
8 kubecontext # current kubernetes context (https://kubernetes.io/)
9 # =========================[ Line #2 ]=========================
10 newline # \n
11 time # 追加
12 prompt_char # prompt symbol
13 )
先ほど、追加したp10k-on-pre-prompt
とp10k-on-post-prompt
の関数の下記の通り更新します。
1function p10k-on-pre-prompt() { p10k display '1'=show '2/left/time'=hide }
2function p10k-on-post-prompt() { p10k display '1'=hide '2/left/time'=show }
これで最初のイメージ通りの設定が完了しました。
参考用に私の dotfiles の設定ものせておきます。
dotfiles/shell/zsh/.p10k.zsh at master · monda00/dotfiles
my dotfiles. Contribute to monda00/dotfiles development by creating an account on GitHub.
参考
- romkatv/powerlevel10k: A Zsh theme
- Transient prompt feedback · Issue #316 · romkatv/powerlevel10k
- New Powerlevel10k Feature: Transient Prompt : r/zsh