init.zsh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. PLUGIN_DIR="$HOME/.local/share/zsh/plugins"
  2. PLUGIN_LOCK="$PLUGIN_DIR/.plugins.lock"
  3. [ -d "$PLUGIN_DIR" ] || mkdir -p "$PLUGIN_DIR"
  4. # Reinstall function
  5. update-plugins() {
  6. rm -fr "$PLUGIN_DIR"
  7. echo "Plugin lock removed. Restart your shell to reinstall plugins."
  8. }
  9. # Define plugins: "github_repo name"
  10. plugins=(
  11. "romkatv/zsh-defer"
  12. "zsh-users/zsh-autosuggestions"
  13. "hlissner/zsh-autopair"
  14. "zsh-users/zsh-history-substring-search"
  15. "Aloxaf/fzf-tab"
  16. "junegunn/fzf"
  17. "subnixr/minimal"
  18. "zap-zsh/vim"
  19. "zsh-users/zsh-syntax-highlighting"
  20. )
  21. # Only install plugins if lock file doesn't exist
  22. if [ ! -f "$PLUGIN_LOCK" ]; then
  23. for plugin in "${plugins[@]}"; do
  24. plugin_name=${plugin##*/}
  25. if [ ! -d "$PLUGIN_DIR/$plugin_name" ]; then
  26. echo "Installing $plugin_name"
  27. git clone --quiet "https://github.com/$plugin" "$PLUGIN_DIR/$plugin_name" --depth=1
  28. fi
  29. done
  30. date > "$PLUGIN_LOCK"
  31. fi
  32. # Source plugins
  33. source "$PLUGIN_DIR/zsh-defer/zsh-defer.plugin.zsh"
  34. source "$PLUGIN_DIR/zsh-autosuggestions/zsh-autosuggestions.zsh"
  35. source "$PLUGIN_DIR/zsh-autopair/autopair.zsh"
  36. source "$PLUGIN_DIR/zsh-history-substring-search/zsh-history-substring-search.zsh"
  37. source "$PLUGIN_DIR/fzf-tab/fzf-tab.plugin.zsh"
  38. source "$PLUGIN_DIR/fzf/shell/completion.zsh"
  39. source "$PLUGIN_DIR/fzf/shell/key-bindings.zsh"
  40. source "$PLUGIN_DIR/minimal/minimal.zsh"
  41. source "$PLUGIN_DIR/vim/vim.plugin.zsh"
  42. # Source config files
  43. source "$ZDOTDIR/opts.zsh"
  44. source "$ZDOTDIR/rose-pine.sh"
  45. source "$ZDOTDIR/maintenance.zsh"
  46. # Defer loading
  47. zsh-defer source "$PLUGIN_DIR/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
  48. for config in mise.zsh tmux.zsh functions.zsh alias.zsh keymap.zsh path.zsh pnpm.zsh opts.zsh; do
  49. zsh-defer source "$ZDOTDIR/$config"
  50. done