#!/bin/bash # Headless NVIM=true ZSH=true PROFILE=true TMUX=true # GUI AWESOME=false ALACRITTY=false MPV=false ################################################# # Basic Preparation # ################################################# OS=$(grep -E '^(NAME)=' /etc/os-release ) if [[ -z "${XDG_CONFIG_HOME}" ]]; then mkdir -p $HOME/.config XDG_CONFIG_HOME=$HOME/.config fi if [[ -z "${XDG_DATA_HOME}" ]]; then mkdir -p $HOME/.local/share XDG_DATA_HOME=$HOME/.local/share fi ################################################# # Neovim # ################################################# if $NVIM; then dependencies="neovim git npm unzip fzf cmake gcc make curl wget" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y software-properties-common add-apt-repository ppa:neovim-ppa/unstable -y apt update apt install -y $dependencies fi ln -s $PWD/nvim $XDG_CONFIG_HOME/nvim ln -s $PWD/clang/.clang-tidy $HOME/.clang-tidy git clone --depth 1 https://github.com/wbthomason/packer.nvim $XDG_DATA_HOME/nvim/site/pack/packer/start/packer.nvim nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync' fi ################################################# # ZSH # ################################################# if $ZSH; then PROFILE=true dependencies="fzf zsh curl" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies echo "Please manually install yay and autojump-rs" elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y $dependencies autojump fi ln -s $PWD/zsh $XDG_CONFIG_HOME/zsh ln -s $PWD/zsh/.zshrc $HOME/.zshrc mkdir -p $HOME/.local/state/zsh/ curl -L http://smartcd.org/install | bash fi ################################################# # Profile # ################################################# if $PROFILE; then rm -rf $HOME/.profile && ln -s $PWD/profile/.profile $HOME/.profile fi ################################################# # Awesome # ################################################# if $AWESOME; then dependencies="awesome picom xbindkeys numlockx xcape" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies network-manager-applet elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y $dependencies awesome-extra fi ln -s $PWD/awesome $XDG_CONFIG_HOME/awesome ln -s $PWD/picom/picom.conf $XDG_CONFIG_HOME/picom.conf ln -s $PWD/picom/picom.conf $XDG_CONFIG_HOME/picom.conf fi ################################################# # Alacritty # ################################################# if $ALACRITTY; then dependencies="alacritty" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y software-properties-common add-apt-repository ppa:aslatter/ppa -y apt update apt install -y $dependencies fi ln -s $PWD/alacritty $XDG_CONFIG_HOME/alacritty fi ################################################# # MPV # ################################################# if $MPV; then dependencies="mpv" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y $dependencies fi ln -s $PWD/mpv $XDG_CONFIG_HOME/mpv fi ################################################# # Tmux # ################################################# if $TMUX; then dependencies="tmux git zsh xdg-utils" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then pacman -Sy --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then apt update apt install -y $dependencies fi ln -s $PWD/tmux/.tmux.conf $HOME/.tmux.conf git clone https://github.com/tmux-plugins/tpm $HOME/.tmux/plugins/tpm $HOME/.tmux/plugins/tpm/bin/install_plugins fi