153 lines
6.3 KiB
Bash
Executable File
153 lines
6.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#github-action genshdoc
|
|
#
|
|
# @file Post-Setup
|
|
# @brief Finalizing installation configurations and cleaning up after script.
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
|
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
|
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
|
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
|
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
|
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
|
-------------------------------------------------------------------------
|
|
Automated Arch Linux Installer
|
|
SCRIPTHOME: ArchTitus
|
|
-------------------------------------------------------------------------
|
|
|
|
Final Setup and Configurations
|
|
GRUB EFI Bootloader Install & Check
|
|
"
|
|
source ${HOME}/ArchTitus/configs/setup.conf
|
|
|
|
if [[ -d "/sys/firmware/efi" ]]; then
|
|
grub-install --efi-directory=/boot ${DISK}
|
|
fi
|
|
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Creating (and Theming) Grub Boot Menu
|
|
-------------------------------------------------------------------------
|
|
"
|
|
# set kernel parameter for decrypting the drive
|
|
if [[ "${FS}" == "luks" ]]; then
|
|
sed -i "s%GRUB_CMDLINE_LINUX_DEFAULT=\"%GRUB_CMDLINE_LINUX_DEFAULT=\"cryptdevice=UUID=${ENCRYPTED_PARTITION_UUID}:ROOT root=/dev/mapper/ROOT %g" /etc/default/grub
|
|
fi
|
|
# set kernel parameter for adding splash screen
|
|
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& splash /' /etc/default/grub
|
|
|
|
echo -e "Installing CyberRe Grub theme..."
|
|
THEME_DIR="/boot/grub/themes"
|
|
THEME_NAME=CyberRe
|
|
echo -e "Creating the theme directory..."
|
|
mkdir -p "${THEME_DIR}/${THEME_NAME}"
|
|
echo -e "Copying the theme..."
|
|
cd ${HOME}/ArchTitus
|
|
cp -a configs${THEME_DIR}/${THEME_NAME}/* ${THEME_DIR}/${THEME_NAME}
|
|
echo -e "Backing up Grub config..."
|
|
cp -an /etc/default/grub /etc/default/grub.bak
|
|
echo -e "Setting the theme as the default..."
|
|
grep "GRUB_THEME=" /etc/default/grub 2>&1 >/dev/null && sed -i '/GRUB_THEME=/d' /etc/default/grub
|
|
echo "GRUB_THEME=\"${THEME_DIR}/${THEME_NAME}/theme.txt\"" >> /etc/default/grub
|
|
echo -e "Updating grub..."
|
|
grub-mkconfig -o /boot/grub/grub.cfg
|
|
echo -e "All set!"
|
|
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Enabling (and Theming) Login Display Manager
|
|
-------------------------------------------------------------------------
|
|
"
|
|
if [[ ${DESKTOP_ENV} == "kde" ]]; then
|
|
systemctl enable sddm.service
|
|
if [[ ${INSTALL_TYPE} == "FULL" ]]; then
|
|
echo [Theme] >> /etc/sddm.conf
|
|
echo Current=Nordic >> /etc/sddm.conf
|
|
fi
|
|
|
|
elif [[ "${DESKTOP_ENV}" == "gnome" ]]; then
|
|
systemctl enable gdm.service
|
|
|
|
else
|
|
if [[ ! "${DESKTOP_ENV}" == "server" ]]; then
|
|
sudo pacman -S --noconfirm --needed lightdm lightdm-gtk-greeter
|
|
systemctl enable lightdm.service
|
|
fi
|
|
fi
|
|
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Enabling Essential Services
|
|
-------------------------------------------------------------------------
|
|
"
|
|
systemctl enable cups.service
|
|
echo " Cups enabled"
|
|
ntpd -qg
|
|
systemctl enable ntpd.service
|
|
echo " NTP enabled"
|
|
systemctl disable dhcpcd.service
|
|
echo " DHCP disabled"
|
|
systemctl stop dhcpcd.service
|
|
echo " DHCP stopped"
|
|
systemctl enable NetworkManager.service
|
|
echo " NetworkManager enabled"
|
|
systemctl enable bluetooth
|
|
echo " Bluetooth enabled"
|
|
systemctl enable avahi-daemon.service
|
|
echo " Avahi enabled"
|
|
|
|
if [[ "${FS}" == "luks" || "${FS}" == "btrfs" ]]; then
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Creating Snapper Config
|
|
-------------------------------------------------------------------------
|
|
"
|
|
|
|
SNAPPER_CONF="$HOME/ArchTitus/configs/etc/snapper/configs/root"
|
|
mkdir -p /etc/snapper/configs/
|
|
cp -rfv ${SNAPPER_CONF} /etc/snapper/configs/
|
|
|
|
SNAPPER_CONF_D="$HOME/ArchTitus/configs/etc/conf.d/snapper"
|
|
mkdir -p /etc/conf.d/
|
|
cp -rfv ${SNAPPER_CONF_D} /etc/conf.d/
|
|
|
|
fi
|
|
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Enabling (and Theming) Plymouth Boot Splash
|
|
-------------------------------------------------------------------------
|
|
"
|
|
PLYMOUTH_THEMES_DIR="$HOME/ArchTitus/configs/usr/share/plymouth/themes"
|
|
PLYMOUTH_THEME="arch-glow" # can grab from config later if we allow selection
|
|
mkdir -p /usr/share/plymouth/themes
|
|
echo 'Installing Plymouth theme...'
|
|
cp -rf ${PLYMOUTH_THEMES_DIR}/${PLYMOUTH_THEME} /usr/share/plymouth/themes
|
|
if [[ $FS == "luks" ]]; then
|
|
sed -i 's/HOOKS=(base udev*/& plymouth/' /etc/mkinitcpio.conf # add plymouth after base udev
|
|
sed -i 's/HOOKS=(base udev \(.*block\) /&plymouth-/' /etc/mkinitcpio.conf # create plymouth-encrypt after block hook
|
|
else
|
|
sed -i 's/HOOKS=(base udev*/& plymouth/' /etc/mkinitcpio.conf # add plymouth after base udev
|
|
fi
|
|
plymouth-set-default-theme -R arch-glow # sets the theme and runs mkinitcpio
|
|
echo 'Plymouth theme installed'
|
|
|
|
echo -ne "
|
|
-------------------------------------------------------------------------
|
|
Cleaning
|
|
-------------------------------------------------------------------------
|
|
"
|
|
# Remove no password sudo rights
|
|
sed -i 's/^%wheel ALL=(ALL) NOPASSWD: ALL/# %wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
|
|
sed -i 's/^%wheel ALL=(ALL:ALL) NOPASSWD: ALL/# %wheel ALL=(ALL:ALL) NOPASSWD: ALL/' /etc/sudoers
|
|
# Add sudo rights
|
|
sed -i 's/^# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
|
|
sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
|
|
|
|
rm -r $HOME/ArchTitus
|
|
rm -r /home/$USERNAME/ArchTitus
|
|
|
|
# Replace in the same state
|
|
cd $pwd
|