summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <contact@kyren.codes>2026-05-30 22:27:05 +0300
committerKyren223 <contact@kyren.codes>2026-05-30 22:27:05 +0300
commit244996e82a874c4e05fe89ada711cbf1d2572070 (patch)
treea003be81259c2a1c2a3985ca489a2c013ac94b11
parent5787de026a67746047363e82ff27a7173dcfbda6 (diff)
rework zshrc
-rw-r--r--.zshrc97
1 files changed, 46 insertions, 51 deletions
diff --git a/.zshrc b/.zshrc
index f8f9af0..baa4a52 100644
--- a/.zshrc
+++ b/.zshrc
@@ -1,3 +1,12 @@
+# Start measuring time
+typeset -F SECONDS=0
+
+# Install catppuccin automatically if it's not installed already
+if [[ ! -d "$HOME/.config/tmux/plugins/catppuccin" ]]; then
+ mkdir -p $HOME/.config/tmux/plugins/catppuccin
+ git clone -b v2.1.2 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
+fi
+
# Install zinit if missing
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
@@ -12,11 +21,13 @@ source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
+autoload -Uz compinit
+compinit
+
# Zsh plugins
zinit ice wait lucid && zinit light zsh-users/zsh-syntax-highlighting
zinit ice wait lucid && zinit light zsh-users/zsh-completions
zinit ice wait lucid && zinit light Aloxaf/fzf-tab
-zinit ice wait lucid atload'_zsh_autosuggest_start && bindkey "^y" autosuggest-accept'
zinit light zsh-users/zsh-autosuggestions
# Completion styling
@@ -26,21 +37,32 @@ zstyle ':completion:*' menu no
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls $realpath'
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls $realpath'
-# Load oh my posh
+# Shell integrations
+zinit ice wait lucid atload'eval "$(zoxide init --cmd cd zsh)"'
+zinit ice wait lucid atload'source <(k completion zsh)'
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/tokyocat.omp.yml)"
-# Shell integrations
-zinit ice wait lucid atload'source <(fzf --zsh)' && zinit load zdharma-continuum/null
-zinit ice wait lucid atload'eval "$(zoxide init --cmd cd zsh)"' && zinit load zdharma-continuum/null
-zinit ice wait lucid atload'source <(k completion zsh)' && zinit load zdharma-continuum/null
+# Fzf
+zinit ice wait lucid atload'source <(fzf --zsh)'
+export FZF_DEFAULT_COMMAND="fd --hidden --strip-cwd-prefix --exclude .git"
+export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
+export FZF_ALT_C_COMMAND="fd --type=d --hidden --strip-cwd-prefix --exclude .git"
+export FZF_DEFAULT_OPTS=" \
+ --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
+ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
+ --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
+source fzf-git.sh
-# # Keybindings
-bindkey -v # Vim Mode
-bindkey '^p' history-search-backward
-bindkey '^n' history-search-forward
+# pnpm
+export PNPM_HOME="/home/kyren/.local/share/pnpm"
+case ":$PATH:" in
+ *":$PNPM_HOME:"*) ;;
+ *) export PATH="$PNPM_HOME:$PATH" ;;
+esac
+# pnpm end
# History
-HISTSIZE=10000
+HISTSIZE=100000
HISTFILE=~/.zsh_history
SAVEHIST=$HISTSIZE
HISTDUP=erase
@@ -52,7 +74,13 @@ setopt hist_save_no_dups
setopt hist_ignore_dups
setopt hist_find_no_dups
-# Aliases
+# # Keybindings
+bindkey -v # Vim Mode
+bindkey '^p' history-search-backward
+bindkey '^n' history-search-forward
+bindkey "^y" autosuggest-accept
+
+# Misc Aliases
alias ls='eza --group-directories-first --across --icons auto'
alias tree='eza --tree --icons'
alias c='clear'
@@ -66,16 +94,13 @@ alias kn='k new'
alias gs='git status'
alias ga='git add'
alias gc='git commit'
-
alias gp='git push'
alias gP='git pull'
-
alias gl='git log'
alias glo='git log --oneline'
alias gb='git branch'
# Env vars
-export NH_FLAKE=~/dotfiles/
export EDITOR=nvim
export PAGER=less
export MANPAGER=$PAGER
@@ -91,24 +116,7 @@ export PATH="$HOME/.zig:$PATH"
export PATH="$HOME/.zls:$PATH"
export PATH="$HOME/projects/k/bin:$PATH"
export PATH="$HOME/bin:$PATH"
-
-# Fzf
-export FZF_DEFAULT_COMMAND="fd --hidden --strip-cwd-prefix --exclude .git"
-export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
-export FZF_ALT_C_COMMAND="fd --type=d --hidden --strip-cwd-prefix --exclude .git"
-export FZF_DEFAULT_OPTS=" \
- --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
- --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
- --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
-source fzf-git.sh
-
-# pnpm
-export PNPM_HOME="/home/kyren/.local/share/pnpm"
-case ":$PATH:" in
- *":$PNPM_HOME:"*) ;;
- *) export PATH="$PNPM_HOME:$PATH" ;;
-esac
-# pnpm end
+export PATH="$PATH:/opt/nvim-linux-x86_64/bin"
# Start ssh-agent if not running
# export SSH_ASKPASS_REQUIRE="prefer"
@@ -116,27 +124,14 @@ eval $(keychain --quiet --quick --lockwait 60 --eval ~/.ssh/id_ed25519)
MARKER_FILE="/run/user/$(id -u)/autorun_once_marker"
if [ ! -f "$MARKER_FILE" ]; then
- # HACK: Send a notification so systemd notification will work
- notify-send --urgency=normal --expire-time=1 " "
-
- # Start albert (app launcher like krunner)
- nohup albert --platform xcb &>/dev/null & disown
-
- # HACK: I need read access to home for sqlite access for eko
- # in prod it'll be read access /var/lib/eko which is fine I guess?
- chmod o+x /home/kyren/
-
- K_SWITCH_HOME=
-
touch "$MARKER_FILE"
-fi
-
-# Install catppuccin automatically if it's not installed already
-if [[ ! -d "$HOME/.config/tmux/plugins/catppuccin" ]]; then
- mkdir -p $HOME/.config/tmux/plugins/catppuccin
- git clone -b v2.1.2 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
+ K_SWITCH_HOME=
fi
if [ -v K_SWITCH_HOME ]; then
k switch $HOME
fi
+
+if false; then
+ printf "\e[38;5;34m⚡ \e[38;5;220m.zshrc parsed in \e[38;5;33m%.0fms\e[0m\n" "$(( SECONDS * 1000 ))"
+fi