Browse Source

feat(mlh): let users configure the official MLH theme (#9997)

Bartek Pacia 2 years ago
parent
commit
c47ac2d86d
1 changed files with 39 additions and 12 deletions
  1. 39 12
      themes/mlh.zsh-theme

+ 39 - 12
themes/mlh.zsh-theme

@@ -12,17 +12,40 @@
 # # # Feel free to customize! # # #
 # # # Feel free to customize! # # #
 # # # # # # # # # # # # # # # # # #
 # # # # # # # # # # # # # # # # # #
 
 
+# To customize symbols (e.g MLH_AT_SYMBOL), simply set them as environment variables
+# for example in your ~/.zshrc file, like this:
+# MLH_AT_SYMBOL=" at "
+# 
+# Settings *must* be set before sourcing oh-my-zsh.sh the .zshrc file.
+#
 # To easily discover colors and their codes, type `spectrum_ls` in the terminal
 # To easily discover colors and their codes, type `spectrum_ls` in the terminal
 
 
-# enable or disable particular elements
-PRINT_EXIT_CODE=true
-PRINT_TIME=true
+# right prompt default settings
+if [ -z "$MLH_PRINT_EXIT_CODE" ]; then
+  MLH_PRINT_EXIT_CODE=true
+fi
 
 
-# symbols
-AT_SYMBOL=" @ "
-IN_SYMBOL=" in "
-ON_SYMBOL=" on "
-SHELL_SYMBOL="$"
+if [ -z "$MLH_PRINT_TIME" ]; then
+  MLH_PRINT_TIME=false
+fi
+
+# left prompt symbols default settings
+
+if [ -z "$MLH_AT_SYMBOL" ]; then
+  MLH_AT_SYMBOL="@"
+fi
+
+if [ -z "$MLH_IN_SYMBOL" ]; then
+  MLH_IN_SYMBOL=" in "
+fi
+
+if [ -z "$MLH_ON_SYMBOL" ]; then
+  MLH_ON_SYMBOL=" on "
+fi
+
+if [ -z "$MLH_SHELL_SYMBOL" ]; then
+  MLH_SHELL_SYMBOL="$ "
+fi
 
 
 # colors
 # colors
 USER_COLOR="%F{001}"
 USER_COLOR="%F{001}"
@@ -47,24 +70,28 @@ directory() {
 
 
 # Prints current time
 # Prints current time
 current_time() {
 current_time() {
-  if [ "$PRINT_TIME" = true ]; then
+  if [ "$MLH_PRINT_TIME" = true ]; then
     echo " $TIME_COLOR%*%f"
     echo " $TIME_COLOR%*%f"
   fi
   fi
 }
 }
 
 
 # Prints exit code of the last executed command
 # Prints exit code of the last executed command
 exit_code() {
 exit_code() {
-  if [ "$PRINT_EXIT_CODE" = true ]; then
+  if [ "$MLH_PRINT_EXIT_CODE" = true ]; then
     echo "%(?..%F{001}exit %?)%f"
     echo "%(?..%F{001}exit %?)%f"
   fi
   fi
 }
 }
 
 
+prompt_end() {
+  printf "\n$MLH_SHELL_SYMBOL"
+}
+
 # Set git_prompt_info text
 # Set git_prompt_info text
-ZSH_THEME_GIT_PROMPT_PREFIX="${ON_SYMBOL}${BRANCH_COLOR}"
+ZSH_THEME_GIT_PROMPT_PREFIX="${MLH_ON_SYMBOL}${BRANCH_COLOR}"
 ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
 ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
 ZSH_THEME_GIT_PROMPT_DIRTY=""
 ZSH_THEME_GIT_PROMPT_DIRTY=""
 ZSH_THEME_GIT_PROMPT_CLEAN=""
 ZSH_THEME_GIT_PROMPT_CLEAN=""
 
 
 # %B and %b make the text bold
 # %B and %b make the text bold
-PROMPT='%b$(username)$AT_SYMBOL$(device)$IN_SYMBOL$(directory)$(git_prompt_info)%b $SHELL_SYMBOL '
+PROMPT='%b$(username)$MLH_AT_SYMBOL$(device)$MLH_IN_SYMBOL$(directory)$(git_prompt_info)%b$(prompt_end)'
 RPROMPT="$(exit_code)$(current_time)"
 RPROMPT="$(exit_code)$(current_time)"