#!/usr/bin/env bash if [ -z "$HOME" ]; then echo "Seems you're \$HOMEless :("; exit 1; fi DOTCONFIG=$HOME/.config DOTFILES=$HOME/.dotfiles DOTFZF=$HOME/.fzf DOTLOCAL=$HOME/.local/share/dotfiles GITCLONE="git clone --depth=1" cd "$HOME" || exit rm -rf "$DOTFILES" mkdir "$DOTFILES" cd "$DOTFILES" || exit git init git remote add origin https://github.com/joshtronic/dotfiles.git git pull origin master # Swap origin so I can make edits easily git remote rm origin git remote add origin git@github.com:joshtronic/dotfiles.git rm -rf \ "$DOTCONFIG/gtk-3.0/gtk.css" \ "$DOTCONFIG/nvim/init.vim" \ "$DOTFZF" \ "$DOTLOCAL" \ "$HOME/.bashrc" \ "$HOME/.gitconfig" \ "$HOME/.local/share/gnome-shell/extensions/custom@gnome-shell-extensions.joshtronic.com" \ "$HOME/.screenrc" \ "$HOME/.themes/custom/gnome-shell/gnome-shell.css" \ "$HOME/.vim" \ "$HOME/.vimrc" \ "$HOME/.zshrc" mkdir -p \ "$DOTCONFIG/"{gtk-3.0,nvim} \ "$DOTLOCAL" \ "$HOME/.local/share/gnome-shell/extensions" \ "$HOME/.local/share/vim/"{swap,undo} \ "$HOME/.themes/custom/gnome-shell" \ "$HOME/.vim/colors" \ "$HOME/.vim/pack/plugins/start" ln -s "$DOTFILES/bashrc" "$HOME/.bashrc" ln -s "$DOTFILES/gitconfig" "$HOME/.gitconfig" ln -s "$DOTFILES/gnome/extension" "$HOME/.local/share/gnome-shell/extensions/custom@gnome-shell-extensions.joshtronic.com" ln -s "$DOTFILES/gnome/gnome-shell.css" "$HOME/.themes/custom/gnome-shell/gnome-shell.css" ln -s "$DOTFILES/gnome/gtk.css" "$HOME/.config/gtk-3.0/gtk.css" ln -s "$DOTFILES/init.vim" "$DOTCONFIG/nvim/init.vim" ln -s "$DOTFILES/screenrc" "$HOME/.screenrc" ln -s "$DOTFILES/vimrc" "$HOME/.vimrc" ln -s "$DOTFILES/zshrc" "$HOME/.zshrc" $GITCLONE https://github.com/junegunn/fzf.git "$DOTFZF" "$DOTFZF/install" --key-bindings --completion --no-update-rc ZSHPLUGS=( "zsh-completions" "zsh-history-substring-search" "zsh-syntax-highlighting" ) for INDEX in ${!ZSHPLUGS[*]}; do ZSHPLUG="${ZSHPLUGS[$INDEX]}" $GITCLONE "https://github.com/zsh-users/$ZSHPLUG.git" "$DOTLOCAL/$ZSHPLUG" done VIMPLUGS=( # File exploration and navigation "junegunn/fzf.vim" # Languages and syntax "sheerun/vim-polyglot" # Code completion "neoclide/coc.nvim" # Style guide and linting "dense-analysis/ale" "editorconfig/editorconfig-vim" # TypeScript "leafgarland/typescript-vim" "Quramy/tsuquyomi" # Hoping vim-polyglot deprecates the need for these # "jelera/vim-javascript-syntax" # "Quramy/vim-js-pretty-template" ) for INDEX in ${!VIMPLUGS[*]}; do VIMPLUG="${VIMPLUGS[$INDEX]}" PLUGDIR=$(echo "$VIMPLUG" | cut -d '/' -f2) $GITCLONE "https://github.com/$VIMPLUG.git" "$HOME/.vim/pack/plugins/start/$PLUGDIR" done curl -o "$HOME/.vim/colors/solarized.vim" https://raw.githubusercontent.com/altercation/vim-colors-solarized/master/colors/solarized.vim # Finishes installing CoC # vim +"call coc#util#install()" +qa cd "$HOME/.vim/pack/plugins/start/coc.nvim" || exit ./install.sh nightly cd "$HOME" || exit rm -f "${HOME}/.zcompdump*" # Required to kill the terminal's border in GNOME 3.32+ gsettings set org.gnome.Terminal.Legacy.Settings headerbar "@mb false" echo echo "If this is your first time, you should restart GNOME" echo echo "ENJOY! :)"