From 49fd73e67b073781525d2c109b45bb7351938acf Mon Sep 17 00:00:00 2001 From: Yingjie Wang Date: Fri, 7 Jun 2024 03:09:21 -0400 Subject: [PATCH] update: add choice between oh my zsh and zinit --- .install/fish.sh | 14 ++------ .install/zsh.sh | 23 ++++++++---- .zshrc_ohmyzsh | 80 ++++++++++++++++++++++++++++++++++++++++++ .zshrc => .zshrc_zinit | 15 ++++---- 4 files changed, 104 insertions(+), 28 deletions(-) create mode 100644 .zshrc_ohmyzsh rename .zshrc => .zshrc_zinit (81%) diff --git a/.install/fish.sh b/.install/fish.sh index 3baae17..4eea7ff 100644 --- a/.install/fish.sh +++ b/.install/fish.sh @@ -1,16 +1,6 @@ # ------------------------------------------------------ # install fish # ------------------------------------------------------ -packagesPacman=( - "fish" -); -packagesYay=( -); +packagesPacman=("fish"); +packagesYay=(); source .install/install-packages.sh - -if [ -f ~/dotfiles-versions/$version/.zshrc ]; then - _installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc ~ -fi -if [ -f ~/dotfiles-versions/$version/.p10k.zsh ]; then - _installSymLink p10k ~/.p10k.zsh ~/dotfiles/.p10k.zsh ~ -fi diff --git a/.install/zsh.sh b/.install/zsh.sh index f4e78c7..ed4bc26 100644 --- a/.install/zsh.sh +++ b/.install/zsh.sh @@ -1,10 +1,19 @@ # ------------------------------------------------------ # install zsh and zinit # ------------------------------------------------------ -packagesPacman=( - "zsh" -); -packagesYay=( - "zinit" -); -source .install/install-packages.sh +packagesPacman=("zsh"); + +echo "Please select the zsh plugin manager:" +zsh_manager=$(gum choose --limit=1 --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "oh my zsh" "zinit") +if [ ${zsh_manager}=="oh my zsh" ]; then + source .install/install-packages.sh + RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" + git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions + git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting + _installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_ohmyzsh ~ +else + packagesYay=("zinit"); + source .install/install-packages.sh + _installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_zinit ~ +fi +_installSymLink p10k ~/.p10k.zsh ~/dotfiles/.p10k.zsh ~ diff --git a/.zshrc_ohmyzsh b/.zshrc_ohmyzsh new file mode 100644 index 0000000..c558bf7 --- /dev/null +++ b/.zshrc_ohmyzsh @@ -0,0 +1,80 @@ +# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. +# Initialization code that may require console input (password prompts, [y/n] +# confirmations, etc.) must go above this block; everything else may go below. +if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +fi + +# ----------------------------------------------------- +# Oh my zsh settings +# ----------------------------------------------------- + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# ZSH_THEME="robbyrussell" +ZSH_THEME="powerlevel10k/powerlevel10k" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +zstyle ':omz:update' mode auto + +# 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" + +# ----------------------------------------------------- +# Plugins +# ----------------------------------------------------- +plugins=(git colored-man-pages eza z sudo zsh-autosuggestions fast-syntax-highlighting) + +source $ZSH/oh-my-zsh.sh + +# ----------------------------------------------------- +# Variables +# ----------------------------------------------------- +export PATH=$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$PATH +# export MANPATH="/usr/local/man:$MANPATH" + +export LANG=en_US.UTF-8 + +export EDITOR='vim' + +export MAKEFLAGS='-j$(nproc)' +export CFLAGS='-march=native -O2 -pipe' + +# ----------------------------------------------------- +# Alias +# ----------------------------------------------------- +alias sshkoko="TERM=xterm-256color ssh ywang2020@koko-login.hpc.fau.edu" +alias wakemac="wakeonlan 18:C0:4D:8D:56:0E" +alias ls="eza --icons=auto" +alias githashselector="git log --oneline | gum filter | cut -d' ' -f1" +alias bat="bat --paging=never" +# fix ssh if in kitty +[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh" + +# ----------------------------------------------------- +# evals +# ----------------------------------------------------- +eval $(thefuck --alias) +eval "$(fzf --zsh)" + +# ----------------------------------------------------- +# PYWAL +# ----------------------------------------------------- +cat ~/.cache/wal/sequences + +# ----------------------------------------------------- +# Custom +# ----------------------------------------------------- +[[ ! -f ~/.custom.zsh ]] || source ~/.custom.zsh + +# ----------------------------------------------------- +# miscs +# ----------------------------------------------------- +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh diff --git a/.zshrc b/.zshrc_zinit similarity index 81% rename from .zshrc rename to .zshrc_zinit index 9014e6b..70f73a4 100644 --- a/.zshrc +++ b/.zshrc_zinit @@ -1,11 +1,6 @@ -# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. -# Initialization code that may require console input (password prompts, [y/n] -# confirmations, etc.) must go above this block; everything else may go below. -if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" -fi - -# load zinit +# --------------------------------------------------- +# Zinit and plugins +# --------------------------------------------------- source /usr/share/zinit/zinit.zsh # Load powerlevel10k theme @@ -16,11 +11,13 @@ zinit light romkatv/powerlevel10k zinit light zsh-users/zsh-autosuggestions zinit light zdharma-continuum/fast-syntax-highlighting # oh-my-zsh plugins +zi snippet OMZL::git.zsh zi snippet OMZP::git zi snippet OMZP::sudo zi snippet OMZP::colored-man-pages zi snippet OMZP::eza -#others +zi snippet OMZP::z +# others zplugin ice as"program" pick"bin/git-dsf" zplugin light zdharma-continuum/zsh-diff-so-fancy