【Powerlevel10k】Transient promptの設定をしてみる

スポンサーリンク

はじめに

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.zshPOWERLEVEL9K_TRANSIENT_PROMPTの設定をalwayssame-dirに変えることで有効にできます。

  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always

コマンドごとに改行を入れる

デフォルトの Transient prompt だと少し見にくく感じるので、コマンドと結果ごとに改行を入れるようにします。

まず、先ほど.p10k.zshで設定したPOWERLEVEL9K_TRANSIENT_PROMPToffに戻します。

  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off

次に、POWERLEVEL9K_PROMPT_ADD_NEWLINEtrueに設定していない場合は設定します。

  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-promptp10k-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

参考

タイトルとURLをコピーしました