summaryrefslogtreecommitdiff
path: root/.zshrc
diff options
context:
space:
mode:
authorryukamish <[email protected]>2026-07-19 23:54:19 +0530
committerryukamish <[email protected]>2026-07-19 23:54:19 +0530
commita1a9dcb1617f595f3f5ddfe728bb5cf03f172153 (patch)
treebf580902eb493f92260d56a6e3d86ad8cbd0ede0 /.zshrc
parent230ba973f6582582a6650ba464ff06dd18e180b7 (diff)
prompt colorscheme to catppuccin
Diffstat (limited to '.zshrc')
-rw-r--r--.zshrc50
1 files changed, 31 insertions, 19 deletions
diff --git a/.zshrc b/.zshrc
index 1d550af..cfdc8fc 100644
--- a/.zshrc
+++ b/.zshrc
@@ -30,7 +30,7 @@ export HISTFILESIZE="200000"
export SAVEHIST="${HISTSIZE}"
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-# ┃ Functions ┃
+# ┃ Functions ┃
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
function _have {
@@ -216,27 +216,39 @@ alias ....='cd ../../..'
# ===================== Double line prompt ======================
-# autoload -Uz vcs_info
-# setopt PROMPT_SUBST
+autoload -Uz vcs_info # loads zsh's version-control info system
+setopt PROMPT_SUBST # allows variable/command expansion inside PROMPT
+
+# palette — catppuccin mocha (prominent accents)
+MAUVE='%F{#cba6f7}' # signature Mocha accent — used for username
+BLUE='%F{#89b4fa}' # used for current path
+TEAL='%F{#94e2d5}' # used for git branch name
+YELLOW='%F{#f9e2af}' # used for unstaged-changes marker
+PEACH='%F{#fab387}' # used for staged-changes marker
+PINK='%F{#f5c2e7}' # used for git action (rebase/merge/etc)
+RED='%F{#f38ba8}' # used for prompt arrow on command failure
+GREEN='%F{#a6e3a1}' # used for prompt arrow on command success
+SUBTEXT='%F{#a6adc8}' # muted tone for structural characters/text
+RESET='%f' # resets foreground color back to default
-# palette
-# CORAL='%F{#ff7645}'
-# LAVENDER='%F{#b8a5e6}'
-# VOID='%F{#6b6b70}'
-# RED='%F{#e05a5a}'
-# RESET='%f'
+# format for normal git state (branch + unstaged/staged indicators)
+zstyle ':vcs_info:git:*' formats "${SUBTEXT}on ${TEAL}%b${YELLOW}%u${PEACH}%c${RESET}"
+# format used during an in-progress git action (e.g. rebase, merge)
+zstyle ':vcs_info:git:*' actionformats "${SUBTEXT}on ${TEAL}%b${SUBTEXT}|${PINK}%a${RESET}"
-# zstyle ':vcs_info:git:*' formats "${VOID}on ${LAVENDER}%b${VOID}%u%c${RESET}"
-# zstyle ':vcs_info:git:*' actionformats "${VOID}on ${LAVENDER}%b${VOID}|%a${RESET}"
-# zstyle ':vcs_info:*' check-for-changes true
-# zstyle ':vcs_info:*' unstagedstr ' *'
-# zstyle ':vcs_info:*' stagedstr ' +'
+zstyle ':vcs_info:*' check-for-changes true # enable staged/unstaged detection (can slow big repos)
+zstyle ':vcs_info:*' unstagedstr ' *' # symbol shown when there are unstaged changes
+zstyle ':vcs_info:*' stagedstr ' +' # symbol shown when there are staged changes
-# precmd() { vcs_info }
+precmd() { vcs_info } # runs vcs_info before each prompt draw, refreshing git status
-# PROMPT='
-# ${VOID}╭─${CORAL}%n${VOID}@%m ${LAVENDER}%~${RESET} ${vcs_info_msg_0_}
-# ${VOID}╰─%(?.${CORAL}.${RED})❯${RESET} '
+PROMPT='
+${SUBTEXT}╭─${MAUVE}%n${SUBTEXT}@%m ${BLUE}%~${RESET} ${vcs_info_msg_0_}
+${SUBTEXT}╰─%(?.${GREEN}.${RED})❯${RESET} '
+# line 1: top border, username (%n), host (%m), current dir (%~), git info
+# line 2: bottom border + arrow — %(?.X.Y) is a ternary: X if last command
+# succeeded (exit code 0), Y otherwise
# Starship prompt
-eval "$(starship init zsh)"
+# for times when prompt gets boring
+# eval "$(starship init zsh)"