ターミナル操作時に、
変更点持ったまま他のブランチに移動しちゃったり、
気付いたら就業時間過ぎてたり、
しませんか?
.zshrc
をいじって、
🌱または🌼が表示されるようにして、
特定の時間になったら🍣を🥦や🤤にするようにしました。
以前、ターミナルにお寿司を出すでお寿司とブランチ名を表示するところまではやりました。
#!/bin/zsh
function git-current-branch {
local branch_name
branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
if [ -n "$branch_name" ]; then
echo "%B%F{29}◀%f%K{29}%F{15} $branch_name %f%k%b"
fi
}
setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `git-current-branch`
🍣 ▶ '
今回はそこにちょっとだけ手を加えて絵文字が切り替わるようにしたりしました。
なお、Oh My Zsh等のプラグインは利用していません。悪しからず。
git管理下において現在の状態を表示する
変更点持ったままdevelopに移動しちゃったりすることありますよね。
これを事前に気付きやすくします。
シンプルに、変更点があるかないか分かればいいと考え、
変更がある場合は🌼を、なければ🌱を表示するとします。
変更点の有無確認にはgit status -s
を利用します。
git_status=`[[ -n $(git status -s) ]] && echo "🌼" || echo "🌱"`
冒頭に載せたシェルのgit-current-branch
を書き換えます。
#!/bin/zsh
# show git info
function prompt_git_info {
branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null` || return
git_status=`[[ -n $(git status -s) ]] && echo "🌼" || echo "🌱"`
if [ -n "$branch_name" ]; then
echo "$git_status %B%F{29}◀%f%K{29}%F{15} $branch_name %f%k%b "
fi
}
setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `prompt_git_info`
🍣 ▶ '
時間によって🍣を切り替える
気付いたら昼休み取らずに午後入ってたり定時過ぎていたりしますよね。
会議がないフルリモートの日は時間の感覚が鈍りますね。
僕の場合、定時が10~19時で、お昼が14~15時なのでこれに合わせて絵文字を切り替えます。
時間の取得は$(date '+%H')
で、条件分岐は-ge
や-lt
で行えます。
now=$(date '+%H')
if [ $now -eq 14 ]; then
# 処理
elif [ $now -ge 19 -o $now -lt 10 ]; then
# 処理
else
# 処理
fi
この処理を関数として定義し、プロンプトから実行されるようにします。
#!/bin/zsh
# show git info
function prompt_git_info {
## 略
}
# show icon as time
function prompt_icon_as_time {
now=$(date '+%H')
if [ $now -eq 14 ]; then
echo "🥦"
elif [ $now -ge 19 -o $now -lt 10 ]; then
echo "🤤"
else
echo "🍣"
fi
}
setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `prompt_git_info`
`prompt_icon_as_time` ▶ '
お昼の一時間は🥦が、就業時間外は🤤が表示されるようになりました。
完成
#!/bin/zsh
# show git info
function prompt_git_info {
branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null` || return
git_status=`[[ -n $(git status -s) ]] && echo "🌼" || echo "🌱"`
if [ -n "$branch_name" ]; then
echo "$git_status %B%F{29}◀%f%K{29}%F{15} $branch_name %f%k%b "
fi
}
# show icon as time
function prompt_icon_as_time {
now=$(date '+%H')
if [ $now -eq 14 ]; then
echo "🥦"
elif [ $now -ge 19 -o $now -lt 10 ]; then
echo "🤤"
else
echo "🍣"
fi
}
setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `prompt_git_info`
`prompt_icon_as_time` ▶ '
さいごに
実際にはAWSのどのプロファイル選択しているかとかそういったものも表示しています。
エイリアスもモリモリ登録していたり。
プラグインは便利ですけど、一つ一つ自分で用意するのも乙かな、と思っている次第です。
絵文字や色はご自身の好みに合わせていじってみてください。
ターミナルの背景色との兼ね合いなどもあると思います。
ちなみに、僕の周りでは🐈か💪の二極化が起きていて、誰も🍣を利用していません。なぜ。