Added 'set -euo pipefail' flag

Set some variables (only to comply with the 'set -u' flag)
Replaced some color functions with simple 'echo' commands
'Secure Erasure': Now a prompt informs about the need to reboot system after erasing the disk, which also takes place automatically when done
'chroot_conf' > 'Custom System Configuration': Now when 'grub' is selected, enabling services will take effect only if a(ny) service(s) have been first set to be enabled
'chroot_conf': Renamed a few 'HERE-docs' for clarification
'Select Desktop' > 'Custom System' > 'Custom Packages Setup': Now, if 'lightdm' has been set as a custom package, a prompt will ask you to select between 'lightdm-gtk-greeter' & 'lightdm-slick-greeter' for convenience, and said greeter will be automatically installed and also lightdm automatically configured for said greeter.
NOTE: The user only has to set 'lightdm' service to be enabled in next step
This commit is contained in:
Jane Doe 2024-02-10 18:22:41 +00:00
parent f2fd59f82d
commit a69659a550

242
Amelia.sh
View file

@ -1,8 +1,9 @@
#!/bin/bash #!/bin/bash
# Amelia Installer # Amelia Installer
# Version: 3.3 # Version: 3.4
set -euo pipefail
########################################################################################### ###########################################################################################
# ### COLOR FUNCTIONS ### # ### COLOR FUNCTIONS ###
@ -261,7 +262,7 @@ first_check (){
REDBG " ---------------------------------------- REDBG " ----------------------------------------
### WARNING: High Risk Of Data Loss ### ### WARNING: High Risk Of Data Loss ###
----------------------------------------" ----------------------------------------"
NC echo
else else
PURPLE " PURPLE "
### The installer must be run as Root (Not 'wheel' group user) " ### The installer must be run as Root (Not 'wheel' group user) "
@ -386,7 +387,7 @@ ${purple}###${nc} Main Menu ${purple}###${nc}
[3] Disk Management [3] Disk Management
[4] Start Installation (Auto-Navigated) " [4] Start Installation (${cyan}Auto-Navigation${nc}) "
BLUE " BLUE "
@ -564,7 +565,7 @@ ${purple}###${nc} User Setup ${purple}###${nc}
Enter a username: " Enter a username: "
read -p " read -p "
==> " USERNAME ==> " USERNAME
NC echo
if [[ -z "${USERNAME}" ]]; then if [[ -z "${USERNAME}" ]]; then
sleep 0.5 sleep 0.5
@ -584,7 +585,7 @@ Enter a username: "
Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: " Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: "
read -p " read -p "
==> " USERPASSWD ==> " USERPASSWD
NC echo
if [[ -z "${USERPASSWD}" ]]; then if [[ -z "${USERPASSWD}" ]]; then
sleep 0.5 sleep 0.5
@ -598,7 +599,7 @@ Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: "
Re-enter${nc} ${cyan}"${USERNAME}"'s ${blue}password: " Re-enter${nc} ${cyan}"${USERNAME}"'s ${blue}password: "
read -p " read -p "
==> " USERPASSWD2 ==> " USERPASSWD2
NC echo
if [[ "${USERPASSWD}" != "${USERPASSWD2}" ]]; then if [[ "${USERPASSWD}" != "${USERPASSWD2}" ]]; then
sleep 0.5 sleep 0.5
@ -639,7 +640,7 @@ Enter a password for the${nc}${cyan} Root ${blue}user: "
Re-enter${nc} ${cyan}Root ${blue}user's password: " Re-enter${nc} ${cyan}Root ${blue}user's password: "
read -p " read -p "
==> " ROOTPASSWD2 ==> " ROOTPASSWD2
NC echo
if [[ "${ROOTPASSWD}" != "${ROOTPASSWD2}" ]]; then if [[ "${ROOTPASSWD}" != "${ROOTPASSWD2}" ]]; then
sleep 0.5 sleep 0.5
@ -665,7 +666,7 @@ ${purple}###${nc} Hostname Setup ${purple}###${nc}
Enter a hostname: " Enter a hostname: "
read -p " read -p "
==> " HOSTNAME ==> " HOSTNAME
NC echo
if [[ -z "${HOSTNAME}" ]]; then if [[ -z "${HOSTNAME}" ]]; then
sleep 0.5 sleep 0.5
@ -891,7 +892,7 @@ ${purple}###${nc} Filesystem Selection ${purple}###${nc}
Enter a number: " Enter a number: "
read -p " read -p "
==> " fs ==> " fs
NC echo
case "${fs}" in case "${fs}" in
1) 1)
@ -1016,7 +1017,7 @@ set_swapsize (){
Enter Swapfile size ${bwhite}(in GiB)${blue}: " Enter Swapfile size ${bwhite}(in GiB)${blue}: "
read -p " read -p "
==> " swapsize ==> " swapsize
NC echo
if [[ -z "${swapsize}" ]]; then if [[ -z "${swapsize}" ]]; then
sleep 0.5 sleep 0.5
@ -1085,7 +1086,7 @@ ${purple}###${nc} Graphics Setup ${purple}###${nc}
if [[ "${vendor}" == "Virtual Machine" ]]; then if [[ "${vendor}" == "Virtual Machine" ]]; then
vgaconf="n" vgaconf="n"
NC echo
skip skip
ok ok
return 0 return 0
@ -1129,7 +1130,7 @@ Enter a number ${bwhite}(empty to skip)${blue}: "
==> " islands ==> " islands
if [[ -z "${islands}" ]]; then if [[ -z "${islands}" ]]; then
skip skip
NC echo
elif [[ "${islands}" == "1" ]]; then elif [[ "${islands}" == "1" ]]; then
NC " NC "
@ -1196,12 +1197,12 @@ Enter a number: "
==> [${green}Turing+ OK${nc}] ==> [${green}Turing+ OK${nc}]
" "
else else
NC echo
invalid invalid
return 1 return 1
fi fi
else else
NC echo
invalid invalid
return 1 return 1
fi fi
@ -1257,7 +1258,7 @@ Enter a number: "
### ""${vendor}"" Graphics will be automatically configured ### ""${vendor}"" Graphics will be automatically configured
" "
elif [[ "${vgaconf}" == "n" ]]; then elif [[ "${vgaconf}" == "n" ]]; then
NC echo
skip skip
else else
invalid invalid
@ -1391,11 +1392,11 @@ Enter [y/n]: "
==> [${green}Terminal OK${nc}] " ;; ==> [${green}Terminal OK${nc}] " ;;
n) n)
NC echo
skip ;; skip ;;
"") "")
sleep 0.5 sleep 0.5
NC echo
RED " RED "
[!] Please type 'y' or 'n' to continue " [!] Please type 'y' or 'n' to continue "
reload reload
@ -1434,11 +1435,11 @@ Enter [y/n]: "
==> [${green}Terminal OK${nc}] " ;; ==> [${green}Terminal OK${nc}] " ;;
n) n)
NC echo
skip ;; skip ;;
"") "")
sleep 0.5 sleep 0.5
NC echo
RED " RED "
[!] Please type 'y' or 'n' to continue " [!] Please type 'y' or 'n' to continue "
reload reload
@ -1495,11 +1496,11 @@ Enter [y/n]: "
==> [${green}base-devel OK${nc}] " ;; ==> [${green}base-devel OK${nc}] " ;;
n) n)
NC echo
skip ;; skip ;;
"") "")
sleep 0.5 sleep 0.5
NC echo
RED " RED "
[!] Please type 'y' or 'n' to continue " [!] Please type 'y' or 'n' to continue "
reload reload
@ -1528,11 +1529,11 @@ Enter [y/n]: "
y) y)
add_prmtrs ;; add_prmtrs ;;
n) n)
NC echo
skip ;; skip ;;
"") "")
sleep 0.5 sleep 0.5
NC echo
RED " RED "
[!] Please type 'y' or 'n' to continue " [!] Please type 'y' or 'n' to continue "
reload reload
@ -1575,6 +1576,59 @@ Enter your packages ${bwhite}(space-seperated)${blue}: "
[!] Please enter package(s) to continue " [!] Please enter package(s) to continue "
reload reload
return 1 return 1
elif [[ "${custompkgs}" =~ "lightdm" ]]; then
echo
sleep 0.5
NC "
_________________________________
${purple}###${nc} Lightdm Greeter Selection ${purple}###${nc}
"
YELLOW "
> Select a Greeter: "
NC "
[1] Gtk
[2] Slick "
BLUE "
Enter a number: "
read -p "
==> " greeternmbr
case "${greeternmbr}" in
1)
greeter="lightdm-gtk-greeter"
sleep 0.5
NC "
==> [${green}Lightdm Gtk Greeter OK${nc}] " ;;
2)
greeter="lightdm-slick-greeter"
sleep 0.5
NC "
==> [${green}Lightdm Slick Greeter OK${nc}] " ;;
"")
sleep 0.5
echo
RED "
[!] Please make a selection.. "
reload
return 1 ;;
*)
invalid
return 1 ;;
esac
else else
ok ok
fi fi
@ -1600,7 +1654,7 @@ Enter your services ${bwhite}(space-seperated)${blue}: "
==> " customservices ==> " customservices
if [[ -z "${customservices}" ]]; then if [[ -z "${customservices}" ]]; then
NC echo
skip skip
else else
ok ok
@ -1627,7 +1681,7 @@ Enter your Kernel parameters ${bwhite}(space-seperated)${blue}: "
==> " cust_bootopts ==> " cust_bootopts
if [[ -z "${cust_bootopts}" ]]; then if [[ -z "${cust_bootopts}" ]]; then
NC echo
skip skip
else else
ok ok
@ -1660,7 +1714,7 @@ ${purple}###${nc} EFI Boot Entries Deletion ${purple}###${nc}
Enter a${nc} ${cyan}BootOrder${blue} number for Deletion ${bwhite}(empty to skip)${blue}: " Enter a${nc} ${cyan}BootOrder${blue} number for Deletion ${bwhite}(empty to skip)${blue}: "
read -p " read -p "
==> " boot_entry ==> " boot_entry
NC echo
if [[ -n "${boot_entry}" ]]; then if [[ -n "${boot_entry}" ]]; then
@ -1707,7 +1761,7 @@ ${purple}###${nc} Wireless Regulatory Domain Setup ${purple}###${nc}
" "
skip skip
ok ok
NC echo
return 0 return 0
fi fi
@ -1718,7 +1772,7 @@ Enter your Country Code, ie:${nc} ${cyan}US ${bwhite}(empty to skip)${blue}: "
==> " REGDOM ==> " REGDOM
if [[ -z "${REGDOM}" ]]; then if [[ -z "${REGDOM}" ]]; then
NC echo
skip skip
elif [[ "${REGDOM}" =~ [[:lower:]] ]]; then elif [[ "${REGDOM}" =~ [[:lower:]] ]]; then
sleep 0.5 sleep 0.5
@ -1955,7 +2009,7 @@ ${disks} "
Enter a disk number: " Enter a disk number: "
read -p " read -p "
==> " instl_dsk_nmbr ==> " instl_dsk_nmbr
NC echo
if [[ -n "${instl_dsk_nmbr}" ]]; then if [[ -n "${instl_dsk_nmbr}" ]]; then
instl_drive="$(echo "${disks}" | awk "\$1 == "${instl_dsk_nmbr}" {print \$2}")" instl_drive="$(echo "${disks}" | awk "\$1 == "${instl_dsk_nmbr}" {print \$2}")"
@ -2162,7 +2216,7 @@ ${purple}###${nc} Encryption Setup ${purple}###${nc}
" "
read -p " read -p "
==> " encrypt ==> " encrypt
NC echo
if [[ "${encrypt}" == "no" ]]; then if [[ "${encrypt}" == "no" ]]; then
skip skip
@ -2179,7 +2233,7 @@ ${purple}###${nc} Encryption Setup ${purple}###${nc}
Enter a name: " Enter a name: "
read -p " read -p "
==> " ENCROOT ==> " ENCROOT
NC echo
if [[ -z "${ENCROOT}" ]]; then if [[ -z "${ENCROOT}" ]]; then
sleep 0.5 sleep 0.5
@ -2220,7 +2274,7 @@ Enter a name: "
" "
read -p " read -p "
==> " homecrypt ==> " homecrypt
NC echo
if [[ "${homecrypt}" == "no" ]]; then if [[ "${homecrypt}" == "no" ]]; then
skip skip
@ -2235,7 +2289,7 @@ Enter a name: "
Enter a name: " Enter a name: "
read -p " read -p "
==> " ENCRHOME ==> " ENCRHOME
NC echo
if [[ -z "${ENCRHOME}" ]]; then if [[ -z "${ENCRHOME}" ]]; then
sleep 0.5 sleep 0.5
@ -2400,7 +2454,6 @@ instl (){
if [[ "${encrypt}" == "no" ]]; then if [[ "${encrypt}" == "no" ]]; then
until set_mode; do : ; done until set_mode; do : ; done
until confirm_status; do : ; done until confirm_status; do : ; done
return 0
elif [[ "${encrypt}" == "yes" ]]; then elif [[ "${encrypt}" == "yes" ]]; then
until sec_erase; do : ; done until sec_erase; do : ; done
@ -2416,7 +2469,6 @@ instl (){
fi fi
until chroot_conf; do : ; done until chroot_conf; do : ; done
return 0
fi fi
} }
########################################################################################### ###########################################################################################
@ -2460,7 +2512,7 @@ ${purple}###${nc} Mode Selection ${purple}###${nc}
Enter a Mode number: " Enter a Mode number: "
read -p " read -p "
==> " setmode ==> " setmode
NC echo
case "${setmode}" in case "${setmode}" in
1) 1)
@ -2488,7 +2540,7 @@ Enter a Mode number: "
" "
sleep 0.5 sleep 0.5
lsblk -f lsblk -f
NC echo
sleep 1 sleep 1
} }
########################################################################################### ###########################################################################################
@ -2879,7 +2931,7 @@ ask_homepart_form (){
" "
read -p " read -p "
==> " homeform ==> " homeform
NC echo
if [[ "${homeform}" == "y" ]]; then if [[ "${homeform}" == "y" ]]; then
if mkdir -pv /mnt/home; then if mkdir -pv /mnt/home; then
@ -3036,7 +3088,7 @@ ${volumes} "
Enter your${nc} ${cyan}"${roottype}"${blue} partition number: " Enter your${nc} ${cyan}"${roottype}"${blue} partition number: "
read -p " read -p "
==> " mntroot_nmbr ==> " mntroot_nmbr
NC echo
if [[ -n "${mntroot_nmbr}" ]]; then if [[ -n "${mntroot_nmbr}" ]]; then
rootpart="$(echo "${volumes}" | awk "\$1 == "${mntroot_nmbr}" { print \$2}")" rootpart="$(echo "${volumes}" | awk "\$1 == "${mntroot_nmbr}" { print \$2}")"
@ -3103,7 +3155,7 @@ ${volumes} "
Enter your${nc} ${cyan}/BOOT${blue} partition number: " Enter your${nc} ${cyan}/BOOT${blue} partition number: "
read -p " read -p "
==> " mntboot_nmbr ==> " mntboot_nmbr
NC echo
if [[ -n "${mntboot_nmbr}" ]]; then if [[ -n "${mntboot_nmbr}" ]]; then
bootpart="$(echo "${volumes}" | awk "\$1 == "${mntboot_nmbr}" { print \$2}")" bootpart="$(echo "${volumes}" | awk "\$1 == "${mntboot_nmbr}" { print \$2}")"
@ -3148,7 +3200,7 @@ ${volumes} "
Enter your${nc} ${cyan}/HOME${blue} partition number: " Enter your${nc} ${cyan}/HOME${blue} partition number: "
read -p " read -p "
==> " mnthome_nmbr ==> " mnthome_nmbr
NC echo
if [[ -n "${mnthome_nmbr}" ]]; then if [[ -n "${mnthome_nmbr}" ]]; then
homepart="$(echo "${volumes}" | awk "\$1 == "${mnthome_nmbr}" { print \$2}")" homepart="$(echo "${volumes}" | awk "\$1 == "${mnthome_nmbr}" { print \$2}")"
@ -3193,7 +3245,6 @@ ${purple}###${nc} Confirm Installation Status ${purple}###${nc}
" "
read -p " read -p "
==> " agree ==> " agree
NC
if [[ "${agree}" == "yes" ]]; then if [[ "${agree}" == "yes" ]]; then
ok ok
@ -3206,7 +3257,6 @@ ${purple}###${nc} Confirm Installation Status ${purple}###${nc}
until wireless_regdom; do : ; done until wireless_regdom; do : ; done
fi fi
until chroot_conf; do : ; done until chroot_conf; do : ; done
return 0
elif [[ "${agree}" == "no" ]]; then elif [[ "${agree}" == "no" ]]; then
reload reload
@ -3229,7 +3279,6 @@ ${purple}###${nc} Unmount Filesystems ${purple}###${nc}
fi fi
revise revise
return 0
else else
sleep 0.5 sleep 0.5
@ -3276,7 +3325,9 @@ ${purple}###${nc} Secure Disk Erasure ${purple}###${nc}
while [[ -n "${erase_dsk_nmbr}" ]]; do while [[ -n "${erase_dsk_nmbr}" ]]; do
YELLOW " YELLOW "
> Select a disk for Secure Erasure ${red}[!] (CAUTION) [!]${nc} " > Select a disk for Secure Erasure ${red}[!] (CAUTION) [!]${yellow}
### A ${nc}reboot${yellow} is mandatory and will take effect imediatelly when done "
NC " NC "
@ -3287,32 +3338,35 @@ ${disks}"
Enter a disk number ${bwhite}(empty to skip)${blue}: " Enter a disk number ${bwhite}(empty to skip)${blue}: "
read -p " read -p "
==> " erase_dsk_nmbr ==> " erase_dsk_nmbr
NC echo
if [[ -n "${erase_dsk_nmbr}" ]]; then if [[ -n "${erase_dsk_nmbr}" ]]; then
erasedrive="$(echo "${disks}" | awk "\$1 == "${erase_dsk_nmbr}" {print \$2}")" erasedrive="$(echo "${disks}" | awk "\$1 == "${erase_dsk_nmbr}" {print \$2}")"
if [[ -e "${erasedrive}" ]]; then if [[ -e "${erasedrive}" ]]; then
cryptsetup open --type plain -d /dev/urandom "${erasedrive}" temp && cryptsetup open --type plain -d /dev/urandom "${erasedrive}" temp &&
dd if=/dev/zero of=/dev/mapper/temp status=progress bs=1M oflag=direct && dd if=/dev/zero of=/dev/mapper/temp status=progress bs=1M oflag=direct &&
if cryptsetup close temp; then cryptsetup close temp
sleep 0.5 sleep 0.5
NC " NC "
==> [${green}Drive "${erasedrive}" Erased OK${nc}] " ==> [${green}Drive "${erasedrive}" Erased OK${nc}] "
else
err_try sleep 1
return 1 NC "
fi
==> [${green}Rebooting${nc}] "
sleep 3
reboot
else else
invalid invalid
return 1 return 1
fi fi
else else
skip skip
ok
fi fi
done done
ok
} }
########################################################################################### ###########################################################################################
luks (){ luks (){
@ -3449,7 +3503,7 @@ ${purple}###${nc} LUKS Encryption ${purple}###${nc}
" "
read -p " read -p "
==> " homeform ==> " homeform
NC echo
if [[ "${homeform}" == "y" ]]; then if [[ "${homeform}" == "y" ]]; then
if mkfs.ext4 -F -L HOME "${home_dev}"; then if mkfs.ext4 -F -L HOME "${home_dev}"; then
@ -3514,7 +3568,7 @@ ${purple}###${nc} LUKS Encryption ${purple}###${nc}
" "
sleep 0.5 sleep 0.5
lsblk -f lsblk -f
NC echo
sleep 1 sleep 1
} }
########################################################################################### ###########################################################################################
@ -3543,7 +3597,7 @@ ${purple}###${nc} Optimize PacMan ${purple}###${nc}
Enter country name or code ${bwhite}(Empty for Defaults)${blue}: " Enter country name or code ${bwhite}(Empty for Defaults)${blue}: "
read -p " read -p "
==> " COUNTRY ==> " COUNTRY
NC echo
if [[ -z "${COUNTRY}" ]] ; then if [[ -z "${COUNTRY}" ]] ; then
sleep 0.5 sleep 0.5
@ -3577,7 +3631,7 @@ Enter country name or code ${bwhite}(Empty for Defaults)${blue}: "
Enter [y/n]: " Enter [y/n]: "
read -p " read -p "
==> " parallel ==> " parallel
NC echo
if [[ "${parallel}" == "y" ]]; then if [[ "${parallel}" == "y" ]]; then
sleep 0.5 sleep 0.5
@ -3598,7 +3652,7 @@ Enter [y/n]: "
Enter a number: " Enter a number: "
read -p " read -p "
==> " parallelnmbr ==> " parallelnmbr
NC echo
if [[ "${parallelnmbr}" =~ ^(2|3|4|5)$ ]]; then if [[ "${parallelnmbr}" =~ ^(2|3|4|5)$ ]]; then
sed -i "s|#ParallelDownloads = 5|ParallelDownloads = "${parallelnmbr}"|g" /etc/pacman.conf sed -i "s|#ParallelDownloads = 5|ParallelDownloads = "${parallelnmbr}"|g" /etc/pacman.conf
@ -3721,9 +3775,9 @@ ${purple}###${nc} Pacstrap System ${purple}###${nc}
11) # NOTE: Custom System: 11) # NOTE: Custom System:
if [[ "${vendor}" == "Virtual Machine" ]]; then if [[ "${vendor}" == "Virtual Machine" ]]; then
deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}"" deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${greeter}""
else else
deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}"" deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}" "${greeter}""
fi ;; fi ;;
esac esac
@ -3829,7 +3883,7 @@ REGDOM
########################################################################################### ###########################################################################################
chroot_conf (){ chroot_conf (){
local prompt="System" local prompt="Arch Linux"
sleep 0.5 sleep 0.5
NC " NC "
_________________________________ _________________________________
@ -3946,7 +4000,7 @@ ${purple}###${nc} Chroot & Configure System ${purple}###${nc}
if [[ "${packages}" =~ ^(1|3|4|5|6|7|8|9|10)$ ]]; then if [[ "${packages}" =~ ^(1|3|4|5|6|7|8|9|10)$ ]]; then
arch-chroot /mnt <<-SYSTEM arch-chroot /mnt <<-VANILLA_CONF
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen && sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
locale-gen && locale-gen &&
echo LANG=${SETLOCALE} > /etc/locale.conf && echo LANG=${SETLOCALE} > /etc/locale.conf &&
@ -3971,7 +4025,7 @@ ${purple}###${nc} Chroot & Configure System ${purple}###${nc}
echo " echo "
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits && %wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
visudo -c /etc/sudoers.d/sudoedits visudo -c /etc/sudoers.d/sudoedits
SYSTEM VANILLA_CONF
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
if [[ "${packages}" == "6" ]]; then if [[ "${packages}" == "6" ]]; then
@ -3979,13 +4033,13 @@ SYSTEM
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf
DEEPIN DEEPIN
elif [[ "${packages}" == "7" ]]; then elif [[ "${packages}" == "7" ]]; then
arch-chroot /mnt <<-BUDGIE arch-chroot /mnt <<-GTK
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf
BUDGIE GTK
else else
arch-chroot /mnt <<-LIGHTDM arch-chroot /mnt <<-SLICK
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf
LIGHTDM SLICK
fi fi
fi fi
@ -4001,6 +4055,7 @@ LIGHTDM
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf && options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim} systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim}
BOOTCTL BOOTCTL
elif [[ "${bootloader}" == "2" ]]; then elif [[ "${bootloader}" == "2" ]]; then
arch-chroot /mnt <<-GRUB arch-chroot /mnt <<-GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB && grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
@ -4023,7 +4078,6 @@ GRUBBTRFSD
sed -i "/^#GRUB_TERMINAL_OUTPUT=console/s/^#//" /etc/default/grub && sed -i "/^#GRUB_TERMINAL_OUTPUT=console/s/^#//" /etc/default/grub &&
grub-mkconfig -o /boot/grub/grub.cfg grub-mkconfig -o /boot/grub/grub.cfg
NVIDIAGRUB NVIDIAGRUB
fi fi
fi fi
@ -4069,7 +4123,7 @@ NVIDIAHOOK
NRG NRG
fi fi
arch-chroot /mnt <<-OPTIMIZED arch-chroot /mnt <<-OPTIMIZED_CONF
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen && sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
locale-gen && locale-gen &&
echo LANG=${SETLOCALE} > /etc/locale.conf && echo LANG=${SETLOCALE} > /etc/locale.conf &&
@ -4205,7 +4259,7 @@ NRG
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits && %wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
visudo -c /etc/sudoers.d/sudoedits && visudo -c /etc/sudoers.d/sudoedits &&
systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim} systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim}
OPTIMIZED OPTIMIZED_CONF
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
@ -4242,7 +4296,7 @@ NVIDIAHOOK
# NOTE: Custom System Configuration (Add any extra configuration below): # NOTE: Custom System Configuration (Add any extra configuration below):
if [[ "${packages}" == "11" ]]; then if [[ "${packages}" == "11" ]]; then
arch-chroot /mnt <<-CUSTOM arch-chroot /mnt <<-CUSTOM_CONF
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen && sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
locale-gen && locale-gen &&
echo LANG=${SETLOCALE} > /etc/locale.conf && echo LANG=${SETLOCALE} > /etc/locale.conf &&
@ -4266,7 +4320,20 @@ NVIDIAHOOK
echo " echo "
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits && %wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
visudo -c /etc/sudoers.d/sudoedits visudo -c /etc/sudoers.d/sudoedits
CUSTOM CUSTOM_CONF
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
if [[ "${greeternmbr}" == "1" ]]; then
arch-chroot /mnt <<-GTK
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf
GTK
elif [[ "${greeternmbr}" == "2" ]]; then
arch-chroot /mnt <<-SLICK
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf
SLICK
fi
fi
if [[ "${bootloader}" == "1" ]]; then if [[ "${bootloader}" == "1" ]]; then
arch-chroot /mnt <<-BOOTCTL arch-chroot /mnt <<-BOOTCTL
@ -4280,6 +4347,7 @@ CUSTOM
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf && options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
systemctl enable systemd-boot-update ${customservices} ${trim} systemctl enable systemd-boot-update ${customservices} ${trim}
BOOTCTL BOOTCTL
elif [[ "${bootloader}" == "2" ]]; then elif [[ "${bootloader}" == "2" ]]; then
arch-chroot /mnt <<-GRUB arch-chroot /mnt <<-GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB && grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
@ -4288,8 +4356,14 @@ BOOTCTL
-e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \ -e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \
/etc/default/grub && /etc/default/grub &&
grub-mkconfig -o /boot/grub/grub.cfg grub-mkconfig -o /boot/grub/grub.cfg
systemctl enable ${customservices} ${trim}
GRUB GRUB
if [[ -n "${customservices}" || -n "${trim}" ]]; then
arch-chroot /mnt <<-SERVICES
systemctl enable ${customservices} ${trim}
SERVICES
fi
if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then
arch-chroot /mnt <<-GRUBBTRFSD arch-chroot /mnt <<-GRUBBTRFSD
systemctl enable grub-btrfsd systemctl enable grub-btrfsd
@ -4339,12 +4413,32 @@ NVIDIAHOOK
# ### END FUNCTIONS ### # ### END FUNCTIONS ###
########################################################################################### ###########################################################################################
clear
set -eo pipefail
run_as="$(whoami)" run_as="$(whoami)"
tty="$(tty)" tty="$(tty)"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
SETLOCALE=""
USERNAME=""
kernelnmbr=""
fs=""
vgaconf=""
packages=""
efi_entr_del=""
wrlss_rgd=""
sanity=""
install=""
bootldr_pkgs=""
devel=""
REGDOM=""
vga_bootopts=""
btrfs_opts=""
trim=""
swapmode=""
homecrypt=""
greeter=""
revision=""
greeternmbr=""
clear
first_check first_check
sleep 1 sleep 1
CYAN " CYAN "