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.

Razer Chroma Effect File