#!/bin/bash # Headless NVIM=false ZSH=false PROFILE=false TMUX=false # GUI AWESOME=false ALACRITTY=false MPV=false SUDO="sudo" if [[ $(whoami) == "root" ]]; then SUDO="" fi ################################################# # 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 $SUDO pacman -Sy --needed --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO apt install -y software-properties-common $SUDO add-apt-repository ppa:neovim-ppa/unstable -y $SUDO apt update $SUDO 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 $SUDO pacman -Sy --needed --noconfirm $dependencies echo "Please manually install yay and autojump-rs" elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO 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/ git clone https://github.com/cxreg/smartcd.git /tmp/smartcd cd /tmp/smartcd make install ln -s $XDG_CONFIG_HOME/zsh/.smartcd_config $HOME/.smartcd_config fi ################################################# # Profile # ################################################# if $PROFILE; then rm -rf $HOME/.profile && ln -s $PWD/profile/.profile $HOME/.profile fi ################################################# # Awesome # ################################################# if $AWESOME; then dependencies="awesome picom numlockx xcape rofi" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then $SUDO pacman -Sy --needed --noconfirm $dependencies network-manager-applet xorg-xmodmap adobe-source-code-pro-fonts noto-fonts ttf-nerd-fonts-symbols elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO 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/xmodmap/.Xmodmap $XDG_CONFIG_HOME/.Xmodmap ln -s $PWD/rofi $XDG_CONFIG_HOME/rofi fi ################################################# # Alacritty # ################################################# if $ALACRITTY; then dependencies="alacritty" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then $SUDO pacman -Sy --needed --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO apt install -y software-properties-common $SUDO add-apt-repository ppa:aslatter/ppa -y $SUDO apt update $SUDO 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 $SUDO pacman -Sy --needed --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO 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 $SUDO pacman -Sy --needed --noconfirm $dependencies elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then $SUDO apt update $SUDO apt install -y $dependencies fi ln -s $PWD/tmux $XDG_CONFIG_HOME/tmux git clone https://github.com/tmux-plugins/tpm $XDG_DATA_HOME/tmux/plugins/tpm $XDG_DATA_HOME/tmux/plugins/tpm/bin/install_plugins fi