From 2682a2565881c5410abcc7b13c63719ba9d82474 Mon Sep 17 00:00:00 2001 From: Nigel Barink Date: Tue, 2 Apr 2024 19:35:57 +0000 Subject: [PATCH] FIX: Cleanup and restructure of .zshrc --- zsh/.zshrc | 172 +++++++++++++---------------------------------------- 1 file changed, 41 insertions(+), 131 deletions(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index f2751b1..7db1bf3 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,9 +1,8 @@ # attach to an existing tmux session or create a new one if none exist -#if [ "$TMUX" = "" ] && [ -z "$TMUX"]; then -# tmux attach -t $(tmux display-message -p '#S') || tmux new-session -#fi - +if [ "$TMUX" = "" ] && [ -z "$TMUX"]; then + tmux attach -t $(tmux display-message -p '#S') || tmux new-session +fi # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] @@ -12,140 +11,51 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH +typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + # Path to your oh-my-zsh installation. export ZSH="/home/nigel/.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="lambda" -# "powerlevel10k/powerlevel10k" -# 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" ) +# Use case-sensitive completion. +CASE_SENSITIVE="true" -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" +# Disable auto-setting terminal title. +DISABLE_AUTO_TITLE="true" -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" +# Enable command auto-correction. +ENABLE_CORRECTION="true" -# Uncomment the following line to disable bi-weekly auto-update checks. -# DISABLE_AUTO_UPDATE="true" +HIST_STAMPS="dd/mm/yyyy" -# 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. -# Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work) -# See https://github.com/ohmyzsh/ohmyzsh/issues/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 zsh-syntax-highlighting tmux debian themes) source $ZSH/oh-my-zsh.sh # User configuration source ~/.bashrc -# export MANPATH="/usr/local/man:$MANPATH" -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 +# Set my language environment +export LANG=en_GB.UTF-8 # Preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='mvim' -# fi +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' + else + 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" - - - -typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet - -# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. -[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh - - -# zsh paramater for dotnet cli tab completion - -_dotnet_zsh_complete() -{ - local completions=("$(dotnet complete "$word")") - - reply=( "${(ps:\n:)completions}") - -} - -compctl -K _dotnet_zsh_complete dotnet - - -# Enable tmux for every session -if false ; then - - if which tmux 2>&1 >/dev/null; then - if [[ ! $TERM =~ screen ]]; then - exec tmux - fi - fi -fi +# Personal aliases +alias zshconfig="mate ~/.zshrc" +alias ohmyzsh="mate ~/.oh-my-zsh" +alias dev="cd /home/nigel/Hacking/Development" +# Set Environment Variables DOTNET_ROOT=$HOME/dotnet PATH=$PATH:$HOME/dotnet export PATH=$PATH:/home/nigel/Hacking/Development/depot_tools @@ -156,22 +66,22 @@ export PATH=$PATH:$HOME/llvm/build/bin # Add nvim export PATH=$PATH:/usr/local/bin/nvim/bin: export PATH=$PATH:/opt/gradle/gradle-8.7/bin -eval "$(starship init zsh)" + + +# Add Autocompletion tools +_dotnet_zsh_complete() +{ + local completions=("$(dotnet complete "$word")") + + reply=( "${(ps:\n:)completions}") + +} source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh -# >>> conda initialize >>> -# !! Contents within this block are managed by 'conda init' !! -__conda_setup="$('/home/nigel/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" -if [ $? -eq 0 ]; then - eval "$__conda_setup" -else - if [ -f "/home/nigel/anaconda3/etc/profile.d/conda.sh" ]; then - . "/home/nigel/anaconda3/etc/profile.d/conda.sh" - else - export PATH="/home/nigel/anaconda3/bin:$PATH" - fi -fi -unset __conda_setup -# <<< conda initialize <<< +# zsh paramater for dotnet cli tab completion +compctl -K _dotnet_zsh_complete dotnet -alias dev="cd /home/nigel/Hacking/Development" + + + +eval "$(starship init zsh)"