Skip to content

Commit

Permalink
Making progress on configuration and changes for using zsh as primary…
Browse files Browse the repository at this point in the history
… shell
  • Loading branch information
devert committed Feb 23, 2023
1 parent 887465e commit 949feb5
Show file tree
Hide file tree
Showing 9 changed files with 225 additions and 11 deletions.
4 changes: 2 additions & 2 deletions brew/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ brew upgrade --all
echo "Installing Homebrew Packages"

brew install curl
brew install fish
brew install fzf
/usr/local/opt/fzf/install
# To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install

brew install git
brew install git-extras
Expand Down
6 changes: 3 additions & 3 deletions git/gh_config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# What protocol to use when performing git operations. Supported values: ssh, https
git_protocol: https
git_protocol: ssh
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
editor: vim
# Aliases allow you to create nicknames for gh commands
aliases:
prco: pr checkout
clone: repo clone
prco: pr checkout
clone: repo clone
1 change: 1 addition & 0 deletions git/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ sudo ln -s ~/.dotfiles/git/.gitconfig ~/.gitconfig
sudo ln -s ~/.dotfiles/git/.gitignore_global ~/.gitignore_global

# Configuration settings for Github CLI
mkdir ~/.config/gh
sudo ln -s ~/.dotfiles/git/gh_config.yml ~/.config/gh/config.yml
10 changes: 8 additions & 2 deletions node/install.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
#!/usr/bin/env bash

# Install NVM
echo "Installing NVM"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

# Global modules to install with every version of node managed through nvm
echo "Symlinking NVM default packages config"
sudo ln -s ~/.dotfiles/node/nvm_default_packages ~/.nvm/default-packages

# Install latest version of Node and LTS version of Node
echo "Installing Latest Node and LTS Node Version"
nvm install node
nvm install --lts

# Set latest node as the default
nvm alias default node
# Set latest stable node as the default
nvm alias default stable
8 changes: 8 additions & 0 deletions zsh/.zprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
eval "$(/opt/homebrew/bin/brew shellenv)"

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

# Add brew installed curl to path
export PATH="/opt/homebrew/opt/curl/bin:$PATH"
128 changes: 128 additions & 0 deletions zsh/.zshrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# 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="robbyrussell"

# 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

# NVM plugin configuration
# zstyle ':omz:plugins:nvm' lazy yes
# zstyle ':omz:plugins:nvm' autoload yes

# 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=(
alias-finder
async
docker
docker-compose
fast-loading-nvm
fzf
git
git-extras
gh
history-substring-search
httpie
kubectl
npm
poetry
pyenv
rust
z
zsh-autosuggestions
zsh-syntax-highlighting
)

source $ZSH/oh-my-zsh.sh

# User configuration

# fast-loading-nvm config
AUTO_LOAD_NVMRC_FILES=true

# 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"
7 changes: 3 additions & 4 deletions zsh/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Zsh Setup

Switch to using brew installed zsh as default shell

```sh
chsh -s /usr/local/bin/zsh
```



32 changes: 32 additions & 0 deletions zsh/aliases.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env zsh

# Path shortcuts
alias db="cd ~/Dropbox\ \(Personal\)/"
alias dl="cd ~/Downloads"
alias dt="cd ~/Desktop"
alias df="cd ~/.dotfiles"
alias p="cd ~/Projects"

# Shorten commonly typed commands
alias d="docker"
alias dsa="docker stop (docker ps -q)"
alias dka="docker kill (docker ps -q)"
alias dc="docker compose"
alias dce="docker compose exec"
alias dck="docker compose kill"
alias dcu="docker compose up"
alias g="git"
alias kc="kubectl"
alias vim="nvim"
alias v="vim"
alias y="yarn"

# Print each PATH entry on a separate line
alias path='echo -e ${PATH//:/\\n}'

# Reload shell
alias reload="omz reload"

# Edit .zshrc
alias zshconfig="v ~/.zshrc"

40 changes: 40 additions & 0 deletions zsh/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/usr/bin/env bash

# Ask for the administrator password upfront.
sudo -v

# Keep-alive: update existing `sudo` time stamp until the script has finished.
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

# Install Homebrew Zsh
echo "Installing Zsh"

brew install zsh

# Switch to using brew-installed zsh as default shell
echo "Change User Shell To Homebrew Installed Zsh"

sudo dscl . -create /Users/$USER UserShell /opt/homebrew/bin/zsh

# Install Oh My Zsh
echo "Installing Oh My Zsh"

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


# Put Zsh Configuration in Place
echo "Configuring Zsh Profile"

sudo ln -s ~/.dotfiles/zsh/.zprofile ~/.zprofile
sudo ln -s ~/.dotfiles/zsh/.zshrc ~/.zshrc

# Install custom Zsh plugins
echo "Installing Custom Zsh Plugins"
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone https://github.com/mafredri/zsh-async $ZSH_CUSTOM/plugins/async
git clone https://github.com/devert/fast-zsh-nvm $ZSH_CUSTOM/plugins/fast-loading-nvm

# Install custom configuration files
sudo ln -s ~/.dotfiles/zsh/aliases.zsh $ZSH_CUSTOM/aliases.zsh

0 comments on commit 949feb5

Please sign in to comment.