Holiday Theming
Update: Added more to the commandline zsh
config to apply specific emoji throughout the year.
I have been playing around with a few theme options lately and the holidays got me in the spirit to adjust appropriately. Specifically, my command line theme and my Razer keyboard theme.
Command Line
After seeing some co-workers' terminals looking all cool and colorful, I decided to finally do my research and stumbled upon the Powerlevel9K Project which has a TON of customization you can do with it.
Their install instructions are great so I will just cut to the chase. My Christmas Tree prompt:
I think I may try to theme this in such a way to check the date and apply the appropriate theme for the year.
Here are my current Powerlevel9k settings:
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time)
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="╭"
# Time
POWERLEVEL9K_TIME_FORMAT="%D{%d-%b-%y %H:%M:%S}"
# Dir prompt
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND=026
POWERLEVEL9K_DIR_HOME_BACKGROUND=026
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND=026
POWERLEVEL9K_DIR_ETC_BACKGROUND=026
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
# Python Stuff
POWERLEVEL9K_PYTHON_ICON='\U1F40D'
POWERLEVEL9K_VIRTUALENV_BACKGROUND=108
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='red'
# Visual customisation of the second prompt line
local user_symbol="$"
if [[ $(print -P "%#") =~ "#" ]]; then
user_symbol = "#"
fi
# Holiday Emoji Prompt
month=$(date "+%m")
day=$(date "+%d")
# Winter Snowflake
if [ $month -eq 1 ] || ([ $month -eq 2 ] && [ $day -gt 14 ])
then
emoji="\U26C4"
# Valentines Day Heart
elif ([ $month -eq 2 ] && [ $day -le 14 ])
then
emoji="\U1F498"
# St Patrick's Day Shamrock
elif ([ $month -eq 3 ] && [ $day -gt 14 ] && [ $day -le 17 ])
then
emoji="\U1F340"
# March Madness Basketball
elif [ $month -eq 3 ]
then
emoji="\U1F3C0"
# April Showers
elif [ $month -eq 4 ]
then
emoji="\U1F327"
# Family Birthdays
elif ([ $month -eq 5 ] && ([ $day -eq 7 ] || [ $day -eq 9 ]))
then
emoji="\U1F382"
# Bring May Flowers
elif [ $month -eq 5]
then
emoji="\U1F33C"
# Anniversary
elif ([ $month -eq 6 ] && [ $day -eq 20 ])
then
emoji="\U1F48D"
# June (whats up with June?)
elif [ $month -eq 6 ]
then
emoji="\U1F98B"
# July - super lame emoji
elif [ $month -eq 7 ]
then
emoji="\U1f386"
# August early - beach
elif ([ $month -eq 8 ] && [ $day -le 15 ])
then
emoji="\U1F3D6"
# August late - books
elif ([ $month -eq 8 ] && [ $day -gt 15 ])
then
emoji="\U1F4DA"
# September - hot
elif [ $month -eq 9 ]
then
emoji="\U1F3DC"
# October - Halloween
elif [ $month -eq 10 ]
then
emoji="\U1F383"
# November - turkey
elif [ $month -eq 11 ]
then
emoji="\U1F983"
# December - Holiday Tree
elif [ $month -eq 12 ]
then
emoji="\U1F384"
# Catchall
else
emoji="\U1F525"
fi
# Visual customisation of the second prompt line
local user_symbol="$"
if [[ $(print -P "%#") =~ "#" ]]; then
user_symbol = "#"
fi
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="╰%{%B%F{black}%K{041}%}$emoji%{%b%f%k%F{041}%}\UE0B0 %{%f%}"
POWERLEVEL9K_MODE="nerdfont-complete"
ZSH_THEME="powerlevel9k/powerlevel9k"
Razer Keyboard
Up until this point, I had mostly stuck with the more default lighting features of the keyboard. After seeing a few videos online of holiday themes, I knew I had to follow suit. There is also a key press ripple effect in candy-cane colors but I am not nearly skilled enough with a camera to record that. Photo credit to my wife.