hyprdots/Scripts/custom_pst.sh
2024-12-16 19:15:28 +01:00

137 lines
4 KiB
Bash
Executable file

#!/usr/bin/env bash
scrDir=$(dirname "$(realpath "$0")")
REFINDCONF="/boot/efi/EFI/refind/refind.conf"
install_secureboot(){
sudo pacman -S sbsigntools efitools refind
echo "[sbsigntools, efitools, refind] installed, press any key to continue ..."
sudo refind-install --shim /usr/share/shim-signed/shimx64.efi --localkeys
echo "[refind-install] executed, press any key to continue ..."
echo signing [/boot/efi/EFI/endeavouros/grubx64.efi]
sudo sbsign --key /etc/refind.d/keys/refind_local.key --cert /etc/refind.d/keys/refind_local.crt --output /boot/efi/EFI/endeavouros/grubx64.efi /boot/efi/EFI/endeavouros/grubx64.efi
echo signing [/boot/efi/EFI/boot/bootx64.efi]
sudo sbsign --key /etc/refind.d/keys/refind_local.key --cert /etc/refind.d/keys/refind_local.crt --output /boot/efi/EFI/boot/bootx64.efi /boot/efi/EFI/boot/bootx64.efi
echo signing [/boot/vmlinuz-linux]
sudo sbsign --key /etc/refind.d/keys/refind_local.key --cert /etc/refind.d/keys/refind_local.crt --output /boot/vmlinuz-linux /boot/vmlinuz-linux
}
install_theme(){
sudo mkdir -p /boot/efi/EFI/refind/themes
git clone https://github.com/catppuccin/refind.git catppuccin
cp catppuccin/assets/mocha/icons/os_arch.png catppuccin/assets/mocha/icons/os_endeavouros.png
sudo cp -rf catppuccin /boot/efi/EFI/refind/themes/
sudo rm $REFINDCONF
sudo cp .refind/refind.conf $REFINDCONF
rm -rf catppuccin
}
install_snapd(){
echo "Cloning Snapd AUR package..."
git clone https://aur.archlinux.org/snapd.git
cd snapd
echo "Building and installing Snapd..."
makepkg -si --noconfirm
echo "Enabling snapd.socket service..."
sudo systemctl enable --now snapd.socket
echo "Enabling AppArmor for Snap confinement..."
sudo systemctl enable --now snapd.apparmor.service
echo "Creating symbolic link for classic Snap support..."
sudo ln -s /var/lib/snapd/snap /snap
echo "Waiting for Snapd to complete device seeding..."
max_retries=10
retry_count=0
while ! sudo snap wait system seed.loaded && [ $retry_count -lt $max_retries ]; do
echo "Snapd is not seeded yet, retrying... ($retry_count/$max_retries)"
sleep 2
((retry_count++))
done
# Check if seeding failed after max retries
if [ $retry_count -ge $max_retries ]; then
echo "Snapd seeding failed after $max_retries retries. Exiting."
exit 1
fi
# Now you can install your Snap package
echo "Snapd is seeded and ready, installing the Snap package..."
sudo snap install hello-world
echo "Snap installation complete!"
}
install_snap_apps(){
# Set the path to the snap_apps.lst file
SNAP_APPS_FILE="${scrDir}/.extra/snap_apps.lst"
# Check if the file exists
if [ ! -f "$SNAP_APPS_FILE" ]; then
echo "File $SNAP_APPS_FILE not found!"
exit 1
fi
# Read each line in the "snap_apps.lst" file
while IFS= read -r line
do
# Skip empty lines and lines starting with '#'
if [ -z "$line" ] || [[ "$line" == \#* ]]; then
continue
fi
# Install the snap package
echo "Installing snap package: $line"
sudo snap install "$line"
# Check if the installation was successful
if [ $? -eq 0 ]; then
echo "$line installed successfully!"
else
echo "Failed to install $line"
fi
done < "$SNAP_APPS_FILE"
echo "All snap packages have been processed."
}
# Check with sudo
if sudo [ -f "$REFINDCONF" ]; then
echo "The file '$REFINDCONF' exists, skipping refind installation"
else
echo "refind not installed, installing now"
install_secureboot
install_theme
fi
read -p "Do you want to install Snap? (y/n): " answer
# Handle user input
if [[ "$answer" =~ ^[Yy]$ ]]; then
# Install Snapd
install_snapd
# Install Snap packages
install_snap_apps
else
echo "Snap installation skipped"
fi
read -p "enable systemd-resolved? (needed for wireguard) (y/n): " answer
# Handle user input
if [[ "$answer" =~ ^[Yy]$ ]]; then
sudo systemctl enable --now systemd-resolved
else
echo "systemd-resolved skipped"
fi