2023-05-08 16:56:15 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Headless
|
2023-05-17 11:40:50 +02:00
|
|
|
NVIM=false
|
|
|
|
ZSH=false
|
|
|
|
PROFILE=false
|
|
|
|
TMUX=false
|
2023-05-08 16:56:15 +02:00
|
|
|
|
|
|
|
# GUI
|
|
|
|
AWESOME=false
|
|
|
|
ALACRITTY=false
|
|
|
|
MPV=false
|
|
|
|
|
2023-05-17 11:40:50 +02:00
|
|
|
SUDO="sudo"
|
|
|
|
|
|
|
|
if [[ $(whoami) == "root" ]]; then
|
|
|
|
SUDO=""
|
|
|
|
fi
|
2023-05-08 16:56:15 +02:00
|
|
|
|
|
|
|
#################################################
|
|
|
|
# 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
|
2023-07-17 16:53:15 +02:00
|
|
|
dependencies="neovim git unzip fzf cmake gcc make curl wget"
|
2023-05-08 16:56:15 +02:00
|
|
|
if [[ $OS == "NAME=\"Arch Linux\"" ]]; then
|
2023-09-03 15:01:20 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies npm go
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
|
|
|
$SUDO apt install -y software-properties-common
|
|
|
|
$SUDO add-apt-repository ppa:neovim-ppa/unstable -y
|
2023-09-03 14:55:27 +02:00
|
|
|
$SUDO curl -sL https://deb.nodesource.com/setup_20.x | $SUDO bash -
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
2023-09-03 15:01:20 +02:00
|
|
|
$SUDO apt install -y $dependencies python3-venv nodejs golang
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
ln -s $PWD/nvim $XDG_CONFIG_HOME/nvim
|
|
|
|
ln -s $PWD/clang/.clang-tidy $HOME/.clang-tidy
|
|
|
|
fi
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# ZSH #
|
|
|
|
#################################################
|
|
|
|
if $ZSH; then
|
|
|
|
PROFILE=true
|
2023-06-26 15:36:24 +02:00
|
|
|
dependencies="fzf zsh curl zoxide"
|
2023-05-08 16:56:15 +02:00
|
|
|
if [[ $OS == "NAME=\"Arch Linux\"" ]]; then
|
2023-06-23 15:42:41 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies zsh-autosuggestions
|
2023-06-26 15:36:24 +02:00
|
|
|
echo "Please manually install yay"
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
2023-06-26 15:36:24 +02:00
|
|
|
$SUDO apt install -y $dependencies
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
ln -s $PWD/zsh $XDG_CONFIG_HOME/zsh
|
|
|
|
ln -s $PWD/zsh/.zshrc $HOME/.zshrc
|
|
|
|
mkdir -p $HOME/.local/state/zsh/
|
|
|
|
|
2023-05-17 16:53:46 +02:00
|
|
|
git clone https://github.com/cxreg/smartcd.git /tmp/smartcd
|
2023-05-17 16:28:59 +02:00
|
|
|
cd /tmp/smartcd
|
|
|
|
make install
|
2023-05-17 17:01:50 +02:00
|
|
|
ln -s $XDG_CONFIG_HOME/zsh/.smartcd_config $HOME/.smartcd_config
|
2023-05-17 17:05:17 +02:00
|
|
|
cd -
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# Profile #
|
|
|
|
#################################################
|
|
|
|
if $PROFILE; then
|
|
|
|
rm -rf $HOME/.profile && ln -s $PWD/profile/.profile $HOME/.profile
|
|
|
|
fi
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# Awesome #
|
|
|
|
#################################################
|
|
|
|
|
|
|
|
if $AWESOME; then
|
2023-05-08 17:06:58 +02:00
|
|
|
dependencies="awesome picom numlockx xcape rofi"
|
2023-05-08 16:56:15 +02:00
|
|
|
if [[ $OS == "NAME=\"Arch Linux\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies network-manager-applet xorg-xmodmap adobe-source-code-pro-fonts noto-fonts ttf-nerd-fonts-symbols
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
|
|
|
$SUDO apt install -y $dependencies awesome-extra
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
ln -s $PWD/awesome $XDG_CONFIG_HOME/awesome
|
|
|
|
ln -s $PWD/picom/picom.conf $XDG_CONFIG_HOME/picom.conf
|
2023-05-08 17:06:58 +02:00
|
|
|
ln -s $PWD/xmodmap/.Xmodmap $XDG_CONFIG_HOME/.Xmodmap
|
|
|
|
ln -s $PWD/rofi $XDG_CONFIG_HOME/rofi
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# Alacritty #
|
|
|
|
#################################################
|
|
|
|
|
|
|
|
if $ALACRITTY; then
|
|
|
|
dependencies="alacritty"
|
|
|
|
if [[ $OS == "NAME=\"Arch Linux\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$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
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
ln -s $PWD/alacritty $XDG_CONFIG_HOME/alacritty
|
|
|
|
fi
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# MPV #
|
|
|
|
#################################################
|
|
|
|
|
|
|
|
if $MPV; then
|
|
|
|
dependencies="mpv"
|
|
|
|
if [[ $OS == "NAME=\"Arch Linux\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
|
|
|
$SUDO apt install -y $dependencies
|
2023-05-08 16:56:15 +02:00
|
|
|
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
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO pacman -Sy --needed --noconfirm $dependencies
|
2023-05-17 17:24:02 +02:00
|
|
|
|
|
|
|
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
|
2023-05-08 16:56:15 +02:00
|
|
|
elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then
|
2023-05-17 11:40:50 +02:00
|
|
|
$SUDO apt update
|
|
|
|
$SUDO apt install -y $dependencies
|
2023-05-08 16:56:15 +02:00
|
|
|
|
2023-05-17 17:24:02 +02:00
|
|
|
ln -s $PWD/tmux $HOME/.tmux
|
2023-05-17 17:37:25 +02:00
|
|
|
ln -s $PWD/tmux/tmux.conf $HOME/.tmux.conf
|
2023-05-17 17:24:02 +02:00
|
|
|
git clone https://github.com/tmux-plugins/tpm $HOME/.tmux/plugins/tpm
|
|
|
|
$HOME/.tmux/plugins/tpm/bin/install_plugins
|
|
|
|
fi
|
2023-05-08 16:56:15 +02:00
|
|
|
fi
|