From f99719b3b4c3a71d36df66589ff4a6c0855d18ba Mon Sep 17 00:00:00 2001 From: Kaholaz Date: Wed, 8 Feb 2023 21:17:30 +0100 Subject: [PATCH] Add zplug package manager --- .zshrc | 125 +++++++++++++-------------------------------------- setup-zsh.sh | 6 +-- 2 files changed, 35 insertions(+), 96 deletions(-) diff --git a/.zshrc b/.zshrc index cabe36d..8c9ab30 100644 --- a/.zshrc +++ b/.zshrc @@ -1,110 +1,49 @@ -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH - -# Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" - -# Set name of the theme to load --- if set to "random", it will -# load a random theme each time oh-my-zsh is loaded, in which case, -# to know which specific one was loaded, run: echo $RANDOM_THEME -# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes ZSH_THEME="afowler" -# Set list of themes to pick from when loading at random -# Setting this variable when ZSH_THEME=random will cause zsh to load -# a theme from this variable instead of looking in $ZSH/themes/ -# If set to an empty array, this variable will have no effect. -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) - -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" - -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" - -# Uncomment one of the following lines to change the auto-update behavior -# zstyle ':omz:update' mode disabled # disable automatic updates -# zstyle ':omz:update' mode auto # update automatically without asking -# zstyle ':omz:update' mode reminder # just remind me to update when it's time - -# Uncomment the following line to change how often to auto-update (in days). -# zstyle ':omz:update' frequency 13 - -# Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS="true" - -# Uncomment the following line to disable colors in ls. -# DISABLE_LS_COLORS="true" - -# Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" - -# Uncomment the following line to enable command auto-correction. -# ENABLE_CORRECTION="true" - -# Uncomment the following line to display red dots whilst waiting for completion. -# You can also set it to another string to have that shown instead of the default red dots. -# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" -# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) -# COMPLETION_WAITING_DOTS="true" - -# Uncomment the following line if you want to disable marking untracked files -# under VCS as dirty. This makes repository status check for large repositories -# much, much faster. -# DISABLE_UNTRACKED_FILES_DIRTY="true" - -# Uncomment the following line if you want to change the command execution time -# stamp shown in the history command output. -# You can set one of the optional three formats: -# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" -# or set a custom format using the strftime function format specifications, -# see 'man strftime' for details. -# HIST_STAMPS="mm/dd/yyyy" - -# Would you like to use another custom folder than $ZSH/custom? -# ZSH_CUSTOM=/path/to/new-custom-folder - -# Which plugins would you like to load? -# Standard plugins can be found in $ZSH/plugins/ -# Custom plugins may be added to $ZSH_CUSTOM/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -# Add wisely, as too many plugins slow down shell startup. -plugins=( - git - zsh-autosuggestions -) - source $ZSH/oh-my-zsh.sh -# User configuration +# :: Zplug - ZSH plugin manager +export ZPLUG_HOME=$HOME/.zplug -# export MANPATH="/usr/local/man:$MANPATH" +# Check if zplug is installed +if [[ ! -d $ZPLUG_HOME ]]; then + git clone https://github.com/zplug/zplug $ZPLUG_HOME + source $ZPLUG_HOME/init.zsh && zplug update --self +fi -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 +# Essential +source $ZPLUG_HOME/init.zsh + +# Zplug plugins +zplug "zplug/zplug", hook-build:"zplug --self-manage" + +# zsh users +zplug "zsh-users/zsh-completions", defer:0 +zplug "zsh-users/zsh-autosuggestions", defer:2, on:"zsh-users/zsh-completions" +zplug "zsh-users/zsh-syntax-highlighting", defer:3, on:"zsh-users/zsh-autosuggestions" +zplug "zsh-users/zsh-history-substring-search", defer:3, on:"zsh-users/zsh-syntax-highlighting" + +# Plugins from oh my zsh +zplug "plugins/git", from:oh-my-zsh + +# Base16 +zplug chriskempson/base16-shell, from:github + +zplug load +base16_dracula # Preferred editor for local and remote sessions if [[ -n $SSH_CONNECTION ]]; then - export EDITOR='vim' + export EDITOR='nvim' else - export EDITOR='vim' + export EDITOR='nvim' fi -# Compilation flags -# export ARCHFLAGS="-arch x86_64" - -# Set personal aliases, overriding those provided by oh-my-zsh libs, -# plugins, and themes. Aliases can be placed here, though oh-my-zsh -# users are encouraged to define aliases within the ZSH_CUSTOM folder. -# For a full list of active aliases, run `alias`. -# -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" -source .aliases - # Attach to a tmux session on startup if [ -z "$TMUX" ]; then tmux attach -t Default || tmux new -s Default fi + +source .aliases + diff --git a/setup-zsh.sh b/setup-zsh.sh index 81e3fb9..c7bf10b 100755 --- a/setup-zsh.sh +++ b/setup-zsh.sh @@ -1,8 +1,8 @@ #!/bin/bash -sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +if [ ! $HOME/.oh-my-zsh ] sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -# Plugins -git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +if [ ! $HOME/.zplug ] curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh +zplug install # Start zsh /usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME restore --staged $HOME/.zshrc