198 lines
5.1 KiB
Bash
Executable file
198 lines
5.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
scripts_PATH=$1/arch-automated-installer
|
|
username=$(whoami)
|
|
home_PATH=/home/$username
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "===================="
|
|
echo " Arch Desktop Setup "
|
|
echo "===================="
|
|
echo ""
|
|
|
|
while true; do
|
|
read -p "Enter a dotfiles repository (enter to skip): " repo
|
|
if [[ ! -z $repo ]]; then
|
|
if [[ ! -f /bin/git ]]; then
|
|
echo "Authentication Is Required. Enter $username's password"
|
|
sudo pacman -S --noconfirm --needed git
|
|
echo ""
|
|
fi
|
|
if [[ ! -d $home_PATH/Repos ]]; then
|
|
mkdir $home_PATH/Repos
|
|
fi
|
|
git clone $repo $home_PATH/Repos/dotfiles
|
|
if [[ $? == 0 ]]; then
|
|
for file in $home_PATH/Repos/dotfiles/*; do
|
|
ln -s $file $home_PATH/.config/
|
|
done
|
|
break
|
|
else
|
|
echo -e "\n\n\n"
|
|
while true; do
|
|
read -p "Could not find repository. Try again? (y/n): " response
|
|
if [[ "${response,,}" == "y" ]]; then
|
|
redo="${response,,}"
|
|
break
|
|
elif [[ "${response,,}" == "n" ]]; then
|
|
redo="${response,,}"
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|
|
if [[ $redo == "n" ]]; then
|
|
break
|
|
fi
|
|
fi
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "=================="
|
|
echo " Install Packages "
|
|
echo "=================="
|
|
echo ""
|
|
|
|
sudo pacman -S --noconfirm --needed base-devel
|
|
while IFS= read -r line ; do
|
|
sudo pacman -S --noconfirm --needed $line
|
|
done < $scripts_PATH/arch-assets/archpkg.txt
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "=================="
|
|
echo " Setup Essentials "
|
|
echo "=================="
|
|
echo ""
|
|
|
|
# Setup Firewall
|
|
echo "Setup UFW"
|
|
echo ""
|
|
sudo ufw default deny incoming
|
|
sudo ufw default allow outgoing
|
|
# Allow SSH on Default port
|
|
sudo ufw allow 22
|
|
# Allow SSH on Alternate Port
|
|
echo ""
|
|
read -p "Would you like to set an alternate SSH port? (Empty to skip) " sshPort
|
|
if [[ ! -z $sshPort && $sshPort =~ ^[0-9]+$ ]]; then
|
|
sudo ufw allow $sshPort
|
|
fi
|
|
systemctl enable ufw
|
|
|
|
# Setup Printer
|
|
systemctl enable cups
|
|
|
|
# Setup Yay
|
|
while true;do
|
|
read -p "Do you want to install yay? (y/n) " answer
|
|
if [[ "${answer,,}" == "y" ]]; then
|
|
if [[ ! -d $home_PATH/Software ]]; then
|
|
mkdir $home_PATH/Software
|
|
fi
|
|
git clone https://aur.archlinux.org/yay.git $home_PATH/Software/yay && cd $home_PATH/Software/yay && makepkg -si --noconfirm --needed && cd
|
|
break
|
|
elif [[ "${answer,,}" == "n" ]]; then
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "========"
|
|
echo " Tweaks "
|
|
echo "========"
|
|
echo ""
|
|
|
|
# Get JetBrainsMono font
|
|
while true; do
|
|
read -p "Do you want to install JetBrainsMono Nerd Font?" answer
|
|
if [[ "${answer}" == "y" ]]; then
|
|
font_PATH="$home_PATH/.local/share/fonts"
|
|
if [[ ! -d $font_PATH ]]; then
|
|
mkdir $font_PATH
|
|
fi
|
|
mkdir $font_PATH/JetBrainsMono
|
|
cd $font_PATH/JetBrainsMono
|
|
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz
|
|
cd $font_PATH/JetbrainsMono && tar -xvf JetBrainsMono.tar.xz
|
|
cd ""
|
|
echo ""
|
|
break
|
|
elif [[ "${answer}" == "n" ]]; then
|
|
echo "Skipping JetBrainsMono Nerd Font Install"
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|
|
|
|
# Build pijulius's Picom
|
|
|
|
while true; do
|
|
read -p "Do you want to install the Pijulius's Picom? (y/n) " answer
|
|
if [[ "${answer,,}" == "y" ]]; then
|
|
sudo pacman -S --noconfirm --needed
|
|
git clone https://github/pijulius/picom $home_PATH/Software/picom
|
|
cd $home_PATH/Software/picom
|
|
git checkout implemented-window-animations
|
|
git submodule update --init --recursive
|
|
meson --buildtype=release . build
|
|
ninja -C build
|
|
ninja -C build install
|
|
cd ""
|
|
break
|
|
elif [[ "${answer,,}" == "n" ]]; then
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "=================="
|
|
echo " Gaming Setup "
|
|
echo "=================="
|
|
echo ""
|
|
|
|
while true; do
|
|
read -p "Do you want to install the Gaming Setup? (y/n) " answer
|
|
if [[ "${answer,,}" == "y" ]]; then
|
|
argument="$scripts_PATH/arch-assets/archgamingpkg.txt"
|
|
bash $scripts_PATH/scripts/archgamingsetup.sh $argument
|
|
break
|
|
elif [[ "${answer,,}" == "n" ]]; then
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|
|
|
|
echo -e "\n\n\n\n"
|
|
echo ""
|
|
echo "================="
|
|
echo " Game Dev Apps "
|
|
echo "================="
|
|
echo ""
|
|
|
|
while true; do
|
|
read -p "Do you want to install the Gaming Development Setup? (y/n) " answer
|
|
if [[ "${answer,,}" == "y" ]]; then
|
|
argument="$scripts_PATH/arch-assets/archgamedevpkg.txt"
|
|
bash $scripts_PATH/scripts/archgamedevsetup.sh $argument
|
|
break
|
|
elif [[ "${answer,,}" == "n" ]]; then
|
|
break
|
|
else
|
|
echo "Invalid Response (y/n)"
|
|
fi
|
|
done
|