diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh index 473528e..67afdf9 100644 --- a/.config/zsh/alias.zsh +++ b/.config/zsh/alias.zsh @@ -2,9 +2,9 @@ alias zshrc="nvim ~/.zshrc && source ~/.zshrc" # Aliases for common use -alias ls='eza' -alias ll='eza -lh' -alias lal='eza -alh' +alias ls='eza --icons --group-directories-first' +alias ll='eza --icons --group-directories-first -lh' +alias lal='eza --icons --group-directories-first -alh' alias cat='bat' diff --git a/.config/zsh/env.zsh b/.config/zsh/env.zsh index d455a55..b061392 100644 --- a/.config/zsh/env.zsh +++ b/.config/zsh/env.zsh @@ -1,6 +1,19 @@ # Rust / Cargo . "$HOME/.cargo/env" +# Setup PATH +export PATH=$PATH:$HOME/.local/bin:$HOME/.cargo/bin +export EDITOR=nvim + +# NVM directory +export NVM_DIR="$HOME/.nvm" + +# Pnpm +export PNPM_HOME="$HOME/.local/share/pnpm" + +# SDKMAN +export SDKMAN_DIR="$HOME/.sdkman" + # Terraform export TF_VAR_CLOUDFLARE_API_TOKEN=$CLOUDFLARE_API_TOKEN export TF_CLOUD_ORGANIZATION=noah-knegt diff --git a/.config/zsh/nvm.zsh b/.config/zsh/nvm.zsh new file mode 100644 index 0000000..c6c3f39 --- /dev/null +++ b/.config/zsh/nvm.zsh @@ -0,0 +1,3 @@ +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + diff --git a/.config/zsh/pnpm.zsh b/.config/zsh/pnpm.zsh new file mode 100644 index 0000000..33d6d5a --- /dev/null +++ b/.config/zsh/pnpm.zsh @@ -0,0 +1,7 @@ +# pnpm +case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; +esac +# pnpm end + diff --git a/.config/zsh/sdkman.zsh b/.config/zsh/sdkman.zsh new file mode 100644 index 0000000..4244f74 --- /dev/null +++ b/.config/zsh/sdkman.zsh @@ -0,0 +1,2 @@ +[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" + diff --git a/.zshrc b/.zshrc index cc2ec92..51a244d 100644 --- a/.zshrc +++ b/.zshrc @@ -1,6 +1,3 @@ -# 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. ZSH_CORE=/usr/share/zsh/ ZSH=$HOME/.oh-my-zsh/ @@ -11,153 +8,59 @@ ZSH=$HOME/.oh-my-zsh/ # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes ZSH_THEME="amuse" -# 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 the following line to disable bi-weekly auto-update checks. DISABLE_AUTO_UPDATE="true" -# Uncomment the following line to automatically update without prompting. -# DISABLE_UPDATE_PROMPT="true" - -# Uncomment the following line to change how often to auto-update (in days). -# export UPDATE_ZSH_DAYS=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. -# 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=( - cp docker docker-compose dotenv - extract + extract git git-auto-fetch gitignore - golang - helm jsontools kubectl - nmap - nvm rust - rsync + starship sudo - systemd - themes + terraform tmux - vscode ) - -# User configuration - -# export MANPATH="/usr/local/man:$MANPATH" - -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 - -# Preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='mvim' -# 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" - ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh if [[ ! -d $ZSH_CACHE_DIR ]]; then mkdir $ZSH_CACHE_DIR fi +CONFIG_DIR=$HOME/.config + source $ZSH/oh-my-zsh.sh -source $HOME/.config/zsh/alias.zsh -source $HOME/.config/zsh/env.zsh +source $CONFIG_DIR/zsh/alias.zsh +source $CONFIG_DIR/zsh/env.zsh -source $ZSH_CORE/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -source $ZSH_CORE/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +[[ -f $ZSH_CORE/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]] && source $ZSH_CORE/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +[[ -f $ZSH_CORE/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]] && source $ZSH_CORE/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh -# Starship rs -eval "$(starship init zsh)" - - -# pnpm -export PNPM_HOME="/home/noahk/.local/share/pnpm" -case ":$PATH:" in - *":$PNPM_HOME:"*) ;; - *) export PATH="$PNPM_HOME:$PATH" ;; -esac -# pnpm end +[[ -f $CONFIG_DIR/zsh/nvm.zsh ]] && source $CONFIG_DIR/zsh/nvm.zsh +[[ -f $CONFIG_DIR/zsh/pnpm.zsh ]] && source $CONFIG_DIR/zsh/pnpm.zsh +[[ -f $CONFIG_DIR/zsh/sdkman.zsh ]] && source $CONFIG_DIR/zsh/sdkman.zsh # tabtab source for packages # uninstall by removing these lines [[ -f ~/.config/tabtab/zsh/__tabtab.zsh ]] && . ~/.config/tabtab/zsh/__tabtab.zsh || true -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - - -# Load Angular CLI autocompletion. -source <(ng completion script) - -#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! -export SDKMAN_DIR="$HOME/.sdkman" -[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" -