Add: 'Desktop Setup': Support for selecting a Web Browser has been added

Add: 'Desktop Setup': Offering Printer support has been added
Add: 'Desktop Setup': Additional packages have been added to Desktop Setups where missing ('gvfs' 'pipewire-pulse' 'pavucontrol' 'cosmic-player' 'xdg-user-dirs')
Change: Some variables & functions have been edited/renamed for clarity
Change: 'set_vars' function has been greatly optimized
Change: A few prompts have been edited for aesthetic purposes
This commit is contained in:
Jane Doe
2025-03-19 21:19:25 +02:00
parent f436b609e1
commit 219b4f2a73
+298 -246
View File
@@ -2,7 +2,7 @@
# Amelia Installer
# Source: https://gitlab.com/prism7/archery
# Version: 8.11.0
# Version: 8.12.0
set -euo pipefail
###################################################################################################
@@ -22,7 +22,6 @@
cyan="\e[36m"
red="\e[31m"
nc="\e[0m"
MAGENTABG() { echo -e "${magentabg} $1${nc}" ;}
YELLOWBG() { echo -e "${yellowbg} $1${nc}" ;}
YELLOWL() { echo -e "${yellowl} $1${nc}" ;}
@@ -67,6 +66,13 @@ ${green}Packages to be installed${nc}:
${deskpkgs}"
}
deskname() {
sleep 0.2
YELLOW "
### ${desktopname} has been selected
"
}
vm() {
sleep 0.2
RED "
@@ -242,7 +248,7 @@ amd() {
NC "
* ${vgacard}
* ${gfxcard}
"
}
@@ -254,7 +260,7 @@ intel() {
NC "
* ${vgacard}
* ${gfxcard}
"
}
@@ -266,7 +272,7 @@ nvidia() {
NC "
* ${vgacard}
* ${gfxcard}
"
}
@@ -478,7 +484,7 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Machi
if [[ "${hypervisor}" != "none" ]]; then
vm
vendor="Virtual Machine"
vgaconf="n"
gfxconf="n"
fi
if [[ "${CPU}" == *"GenuineIntel"* ]]; then
@@ -511,6 +517,7 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Machi
fi
YELLOW "
> Disable ${nc}Watchdogs ${yellow}in the installed system ? [Y/n]
@@ -931,15 +938,15 @@ Enter a number: "
1)
until slct_krnl; do : ; done
until ask_sign; do : ; done
until ask_bootldr; do : ; done
until slct_bootldr; do : ; done
until slct_espmnt; do : ; done
return 1 ;;
2)
until ask_fs; do : ; done
until ask_swap; do : ; done
until slct_fs; do : ; done
until slct_swap; do : ; done
return 1 ;;
3)
until dtct_vga; do : ; done
until dtct_gfx; do : ; done
return 1 ;;
4)
until slct_dsktp; do : ; done
@@ -1100,7 +1107,7 @@ Enter [Y/n]: "
ok
}
###################################################################################################
ask_bootldr() {
slct_bootldr() {
local prompt="Bootloader Selection"
sleep 0.2
@@ -1207,7 +1214,7 @@ Enter a number: "
fi
}
###################################################################################################
ask_fs() {
slct_fs() {
local prompt="Filesystem Setup"
sleep 0.2
@@ -1315,7 +1322,7 @@ Enter a name: "
ok
}
###################################################################################################
ask_swap() {
slct_swap() {
local prompt="Swap Setup"
sleep 0.2
@@ -1454,7 +1461,7 @@ Enter Swap size ${bwhite}(in GB)${blue}: "
fi
}
###################################################################################################
dtct_vga() {
dtct_gfx() {
if [[ "${hypervisor}" != "none" ]]; then
vm
@@ -1471,24 +1478,24 @@ dtct_vga() {
${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Graphics Setup${nc} ${magenta}]${nc}-------------------------------------${magenta}###
"
vgacount="$(lspci | grep -E -c 'VGA|Display|3D')"
vgacard="$(lspci | grep -E 'VGA|Display|3D' | sed 's/^.*: //g')"
gfxcount="$(lspci | grep -E -c 'VGA|Display|3D')"
gfxcard="$(lspci | grep -E 'VGA|Display|3D' | sed 's/^.*: //g')"
intelcount="$(lspci | grep -E 'VGA|Display|3D' | grep -E -c 'Intel Corporation')"
intelcards="$(lspci | grep -E 'VGA|Display|3D' | grep -E 'Intel Corporation'| sed 's/.*Corporation //g' | cat --number | sed 's/.[0-9]//')"
amdcount="$(lspci | grep -E 'VGA|Display|3D' | grep -E -c 'Advanced Micro Devices')"
amdcards="$(lspci | grep -E 'VGA|Display|3D' | grep -E 'Advanced Micro Devices' | sed 's/.*\[AMD\/ATI\] //g' | cat --number | sed 's/.[0-9]//')"
nvidiacount="$(lspci | grep -E 'VGA|Display|3D' | grep -E -c 'NVIDIA Corporation')"
nvidiacards="$(lspci | grep -E 'VGA|Display|3D' | grep -E 'NVIDIA Corporation'| sed 's/.*Corporation //g' | cat --number | sed 's/.[0-9]//')"
vga_slct="yes"
gfx_slct="yes"
if [[ "${vgacount}" == "1" ]]; then
dtct_single_vga
if [[ "${gfxcount}" == "1" ]]; then
dtct_single_gfx
else
dtct_multi_vga
dtct_multi_gfx
fi
}
###################################################################################################
dtct_single_vga() {
dtct_single_gfx() {
if [[ "${intelcount}" -eq "1" ]]; then
vendor="Intel"
@@ -1527,14 +1534,14 @@ dtct_single_vga() {
Enter [Y/n]: "
read -r -p "
==> " vgaconf
==> " gfxconf
vgaconf="${vgaconf:-y}"
vgaconf="${vgaconf,,}"
gfxconf="${gfxconf:-y}"
gfxconf="${gfxconf,,}"
if [[ "${vgaconf}" == "y" ]]; then
vga_conf
elif [[ "${vgaconf}" == "n" ]]; then
if [[ "${gfxconf}" == "y" ]]; then
gfx_conf
elif [[ "${gfxconf}" == "n" ]]; then
local prompt="Graphics Setup"
skip
ok
@@ -1544,18 +1551,18 @@ Enter [Y/n]: "
fi
}
###################################################################################################
dtct_multi_vga() {
dtct_multi_gfx() {
if [[ "${vgacount}" == "2" ]]; then
vga_setup="Dual"
elif [[ "${vgacount}" == "3" ]]; then
vga_setup="Triple"
if [[ "${gfxcount}" == "2" ]]; then
gfx_setup="Dual"
elif [[ "${gfxcount}" == "3" ]]; then
gfx_setup="Triple"
fi
sleep 0.2
YELLOW "
### ${vga_setup} Graphics setup detected, consisting of: "
### ${gfx_setup} Graphics setup detected, consisting of: "
NC "
____________________________________________________________________"
@@ -1707,33 +1714,33 @@ Enter a number: "
fi
if [[ "${vendor}" == "Intel" || "${vendor}" == "AMD" ]]; then
sourcetype="Open-source"
vgaconf="y"
vga_conf
gfxconf="y"
gfx_conf
elif [[ "${vendor}" == "Nvidia" ]]; then
sourcetype="Proprietary"
vgaconf="y"
vga_conf
gfxconf="y"
gfx_conf
elif [[ "${vendors}" == "Intel & AMD" ]]; then
sourcetype="Open-source"
vgaconf="y"
vga_conf
gfxconf="y"
gfx_conf
elif [[ "${vendors}" == "Intel & Nvidia" ]]; then
sourcetype="Open-source & Proprietary"
vgaconf="y"
vga_conf
gfxconf="y"
gfx_conf
elif [[ "${vendors}" == "AMD & Nvidia" ]]; then
sourcetype="Open-source & Proprietary"
vgaconf="y"
vga_conf
gfxconf="y"
gfx_conf
elif [[ "${vendor}" == "none" ]]; then
local prompt="Graphics Setup"
vgaconf="n"
gfxconf="n"
skip
ok
fi
}
###################################################################################################
vga_conf() {
gfx_conf() {
if [[ "${vendor}" != "none" ]]; then
sleep 0.2
@@ -1885,7 +1892,7 @@ gfxpkgs_set() {
gfxpkgs=()
# Configure Graphics = yes
if [[ "${vgaconf}" == "y" ]]; then
if [[ "${gfxconf}" == "y" ]]; then
# Intel Graphics
if [[ "${vendor}" == "Intel" || "${vendors}" =~ "Intel" ]]; then
# /etc/sysctl.d/99-sysctld.conf
@@ -1944,7 +1951,7 @@ gfxpkgs_set() {
fi
fi
# Configure Graphics = no
elif [[ "${vgaconf}" == "n" ]]; then
elif [[ "${gfxconf}" == "n" ]]; then
# Nvidia Graphics
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
gfxpkgs+=(libva-mesa-driver vulkan-nouveau)
@@ -2002,17 +2009,23 @@ Enter a number: "
case "${packages}" in
1)
desktopname="Plasma" ;;
desktopname="Plasma"
deskname ;;
2)
desktopname="Minimal Plasma (System Optimized)" ;;
desktopname="Minimal Plasma (System Optimized)"
deskname ;;
3)
desktopname="Gnome" ;;
desktopname="Gnome"
deskname ;;
4)
desktopname="Minimal Gnome (System Optimized)" ;;
desktopname="Minimal Gnome (System Optimized)"
deskname ;;
5)
desktopname="Xfce" ;;
desktopname="Xfce"
deskname ;;
6)
desktopname="Cinnamon"
deskname
sleep 0.2
YELLOW "
@@ -2048,9 +2061,11 @@ Enter [Y/n]: "
esac ;;
7)
desktopname="Deepin" ;;
desktopname="Deepin"
deskname ;;
8)
desktopname="Budgie"
deskname
sleep 0.2
YELLOW "
@@ -2086,17 +2101,21 @@ Enter [Y/n]: "
esac ;;
9)
desktopname="Lxqt" ;;
desktopname="Lxqt"
deskname ;;
10)
desktopname="Mate" ;;
desktopname="Mate"
deskname ;;
11)
desktopname="Basic Arch Linux" ;;
desktopname="Basic Arch Linux"
deskname ;;
12)
desktopname="Custom Arch Linux"
until cust_sys; do :; done
return 0 ;;
13)
desktopname="Cosmic" ;;
desktopname="Cosmic"
deskname ;;
"")
choice
return 1 ;;
@@ -2104,13 +2123,11 @@ Enter [Y/n]: "
invalid
return 1 ;;
esac
sleep 0.2
YELLOW "
### ${desktopname} has been selected
### NOTE: 'base' meta-package does not include the tools needed for building packages
> Install ${nc}'base-devel' ${yellow}meta-package ? [Y/n] "
@@ -2126,11 +2143,9 @@ Enter [Y/n]: "
case "${dev}" in
y)
local prompt="base-devel"
devel="base-devel"
sleep 0.2
NC "
==> [${green}base-devel OK${nc}] " ;;
ok ;;
n)
skip ;;
*)
@@ -2142,9 +2157,77 @@ Enter [Y/n]: "
YELLOW "
### NOTE: Custom Kernel Parameters can be set at boot time
### Web Browser support is available
> Enter your own Kernel Parameters ? [y/N] "
> Select Web Browser to install "
NC "
[1] Firefox
[2] Chromium
[3] Vivaldi "
BLUE "
Enter a number ${bwhite}(empty to skip)${blue}: "
read -r -p "
==> " web
local prompt="Web Browser"
case "${web}" in
1)
web_browser="firefox"
ok ;;
2)
web_browser="chromium"
ok ;;
3)
web_browser="vivaldi"
ok ;;
"")
skip ;;
*)
invalid
return 1 ;;
esac
sleep 0.2
YELLOW "
### Printing support is available
> Enable Printing support ? [Y/n] "
BLUE "
Enter [Y/n]: "
read -r -p "
==> " printer
printer="${printer:-y}"
printer="${printer,,}"
case "${printer}" in
y)
local prompt="Printer Support"
print_pkgs="cups-pdf cups-browsed ipp-usb xdg-utils colord"
ok ;;
n)
skip ;;
*)
invalid
return 1 ;;
esac
sleep 0.2
YELLOW "
### Custom Kernel Parameters can be set at boot time
> Enter your own additional Kernel Parameters ? [y/N] "
BLUE "
@@ -2155,15 +2238,16 @@ Enter [y/N]: "
ask_param="${ask_param:-n}"
ask_param="${ask_param,,}"
case "${ask_param}" in
y)
add_prmtrs ;;
n)
skip ;;
*)
invalid
return 1 ;;
esac
case "${ask_param}" in
y)
add_prmtrs ;;
n)
skip ;;
*)
invalid
return 1 ;;
esac
local prompt="Desktop Setup"
ok
}
###################################################################################################
@@ -2735,12 +2819,15 @@ ${magenta}###${nc}---------------------------------${magenta}[ ${bwhite}Automati
sleep 0.2
NC "
-----------------------------------------------------------
${cyan}>> ${nc}Apply ${yellowl}'Smart Partitioning' ${nc}on disk ${bwhite}'${instl_drive}'${nc} ? ${cyan}[y/n]${nc}
${cyan}>> ${nc}Apply ${yellowl}'Smart Partitioning' ${nc}on disk ${bwhite}'${instl_drive}'${nc} ? ${cyan}[Y/n]${nc}
-----------------------------------------------------------
"
read -r -p "
==> " smartpart
echo
smartpart="${smartpart:-y}"
smartpart="${smartpart,,}"
if [[ "${smartpart}" == "y" ]]; then
sgdsk_nmbr="${instl_dsk_nmbr}"
@@ -4023,21 +4110,21 @@ instl() {
completion_err
until slct_krnl; do : ; done
until ask_sign; do : ; done
until ask_bootldr; do : ; done
until slct_bootldr; do : ; done
until slct_espmnt; do : ; done
fi
if [[ -z "${fs}" ]]; then
local stage_prompt="Filesystem & Swap Setup"
completion_err
until ask_fs; do : ; done
until ask_swap; do : ; done
until slct_fs; do : ; done
until slct_swap; do : ; done
fi
if [[ "${hypervisor}" == "none" && "${vga_slct}" != "yes" ]]; then
if [[ "${hypervisor}" == "none" && "${gfx_slct}" != "yes" ]]; then
local stage_prompt="Graphics Setup"
completion_err
until dtct_vga; do : ; done
until dtct_gfx; do : ; done
fi
if [[ -z "${packages}" ]]; then
@@ -5001,23 +5088,22 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
revise() {
revision="yes"
reset=(xbootloader="" vgaconf="" vendor_slct="" vendor="" packages="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" preset="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" vendors="" nogsp="")
reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" packages="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" preset="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" vendors="" nogsp="")
export "${reset[@]}"
gfxpkgs=()
if [[ "${hypervisor}" != "none" ]]; then
vm
vendor="Virtual Machine"
vgaconf="n"
gfxconf="n"
fi
until slct_krnl; do : ; done
until ask_sign; do : ; done
until ask_bootldr; do : ; done
until slct_bootldr; do : ; done
until slct_espmnt; do : ; done
until ask_fs; do : ; done
until ask_swap; do : ; done
until slct_fs; do : ; done
until slct_swap; do : ; done
if [[ "${hypervisor}" == "none" ]]; then
until dtct_vga; do : ; done
until dtct_gfx; do : ; done
fi
until slct_dsktp; do : ; done
if [[ "${hypervisor}" == "none" ]]; then
@@ -5443,6 +5529,12 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
if [[ -n "${wireless_reg}" ]]; then
basepkgs+=("${wireless_reg}")
fi
if [[ -n "${print_pkgs}" ]]; then
basepkgs+=("${print_pkgs}")
fi
if [[ -n "${web_browser}" ]]; then
basepkgs+=("${web_browser}")
fi
case "${packages}" in
@@ -5465,18 +5557,18 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
deskpkgs="${basepkgs[*]} dconf-editor evince file-roller gdm gnome-calculator gnome-clocks gnome-connections gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-remote-desktop gnome-session gnome-shell-extensions gnome-system-monitor gnome-text-editor gnome-tweaks gnome-user-share gvfs gvfs-afc gvfs-mtp loupe malcontent nautilus networkmanager power-profiles-daemon simple-scan sushi system-config-printer xdg-desktop-portal-gnome xdg-user-dirs-gtk alsa-firmware alsa-utils ccache cups-pdf exfatprogs fdkaac git glib2-devel glibc-locales gnome-browser-connector gparted gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb libfido2 libva-utils lrzip mac man-db man-pages meld mesa-utils nano-syntax-highlighting nss-mdns ntfs-3g p7zip pacman-contrib pbzip2 pigz pipewire-alsa pipewire-jack pipewire-pulse powerline powerline-fonts qbittorrent realtime-privileges reflector rng-tools sof-firmware sox terminus-font ttf-ubuntu-font-family unrar unzip usb_modeswitch usbutils vdpauinfo vlc wget zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
5) # Xfce Desktop:
deskpkgs="${basepkgs[*]} xfce4 xdg-user-dirs lightdm-gtk-greeter network-manager-applet"
deskpkgs="${basepkgs[*]} xfce4 gvfs lightdm-gtk-greeter network-manager-applet pavucontrol pipewire-pulse xfce4-screensaver xdg-user-dirs"
displaymanager="lightdm"
network="NetworkManager" ;;
6) # Cinnamon Desktop:
deskpkgs="${basepkgs[*]} cinnamon blueberry lightdm-slick-greeter system-config-printer gnome-keyring xdg-user-dirs ${terminal}"
deskpkgs="${basepkgs[*]} cinnamon blueberry gnome-keyring gvfs lightdm-slick-greeter system-config-printer xdg-user-dirs ${terminal}"
displaymanager="lightdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
7) # Deepin Desktop:
deskpkgs="${basepkgs[*]} deepin deepin-terminal deepin-kwin networkmanager"
deskpkgs="${basepkgs[*]} deepin deepin-kwin deepin-terminal"
displaymanager="lightdm"
network="NetworkManager" ;;
@@ -5486,12 +5578,12 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
network="NetworkManager" ;;
9) # Lxqt Desktop:
deskpkgs="${basepkgs[*]} lxqt lxqt-wayland-session breeze-icons network-manager-applet sddm xscreensaver"
deskpkgs="${basepkgs[*]} lxqt breeze-icons gvfs network-manager-applet sddm xscreensaver"
displaymanager="sddm"
network="NetworkManager" ;;
10) # Mate Desktop:
deskpkgs="${basepkgs[*]} mate mate-terminal mate-media blueman network-manager-applet mate-power-manager system-config-printer lightdm-gtk-greeter xdg-user-dirs"
deskpkgs="${basepkgs[*]} mate mate-terminal mate-media blueman network-manager-applet mate-power-manager pipewire-pulse system-config-printer lightdm-gtk-greeter xdg-user-dirs"
displaymanager="lightdm"
bluetooth="bluetooth"
network="NetworkManager" ;;
@@ -5526,10 +5618,16 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
if [[ -n "${wireless_reg}" ]]; then
custarray+=("${wireless_reg}")
fi
if [[ -n "${print_pkgs}" ]]; then
custarray+=("${print_pkgs}")
fi
if [[ -n "${web_browser}" ]]; then
custarray+=("${web_browser}")
fi
deskpkgs="${custarray[*]}" ;;
13) # Cosmic Desktop:
deskpkgs="${basepkgs[*]} cosmic networkmanager"
deskpkgs="${basepkgs[*]} cosmic cosmic-player networkmanager pipewire-pulse xdg-user-dirs"
displaymanager="cosmic-greeter"
network="NetworkManager" ;;
esac
@@ -5739,7 +5837,7 @@ GRUB_BTRFSD
fi
fi
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
if [[ "${gfxconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
local stage_prompt="Grub/Nvidia Configuration"
if arch-chroot /mnt <<-NVGRUB > /dev/null 2>&1 2> amelia_log.txt ; then
sed -i "/^#GRUB_TERMINAL_OUTPUT=console/s/^#//" /etc/default/grub || exit
@@ -5811,7 +5909,7 @@ ZRAMCONF
###################################################################################################
nvidia_hook() {
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]] || [[ "${vgaconf}" == "y" && "${vendors}" =~ "Nvidia" ]]; then
if [[ "${gfxconf}" == "y" && "${vendor}" == "Nvidia" ]] || [[ "${gfxconf}" == "y" && "${vendors}" =~ "Nvidia" ]]; then
if [[ "${nvname}" == "nvidia-open" ]] || [[ "${nvname}" == "nvidia" ]] || [[ "${nvname}" == "nvidia-lts" ]]; then
local stage_prompt="Nvidia Hook Creation"
if arch-chroot /mnt <<-NVIDIAHOOK > /dev/null 2>&1 2> amelia_log.txt ; then
@@ -5974,6 +6072,17 @@ SYSTEMD_OOMD
stage_fail
fi
fi
if [[ "${printer}" == "y" ]]; then
local stage_prompt="Print Services Activation"
if arch-chroot /mnt <<-PRINT_CONF > /dev/null 2>&1 2> amelia_log.txt ; then
systemctl enable cups.socket cups-browsed || exit
PRINT_CONF
stage_ok
else
stage_fail
fi
fi
}
###################################################################################################
secboot_sign() {
@@ -6024,23 +6133,39 @@ SECSIGN
###################################################################################################
set_vars() {
#### Encryption = yes
# Main Kernel Parameters
boot_opts=()
# Graphics Kernel Parameters
gfx_bootopts=()
# Mkinitcpio Modules
MODULES=()
# Mkinitcpio Hooks
HOOKS=()
# Zram Swap
if [[ "${swapmode}" == "3" ]]; then
# Zram Swap Kernel Parameters
zram_bootopts="zswap.enabled=0"
fi
#--------------------------------------------------------------------------------------------------
# ENCRYPTION = 'YES'
if [[ "${encrypt}" == "yes" ]]; then
### Encrypted Root Device
# Mkinitcpio Modules (Encryption)
MODULES+=("${fs_mod}")
# Encrypted Root Device
encr_root_dev="/dev/mapper/${ENCROOT}"
### Encrypted Root Options
# Encrypted Root Options
encr_root_opts="rd.luks.name=$(blkid -s UUID -o value "${root_dev}")=${ENCROOT}"
### Encryption_Kernel Parameters
# Encryption Kernel Parameters
encr_root_bootopts="${encr_root_opts} root=${encr_root_dev}"
#---------------------------------------------------------------------------------------------------------
### Swap Setup (Encryption)
## Encrypted Swap Partition
# SWAP SETUP (Encryption)
# Encrypted Swap Partition
if [[ "${swapmode}" == "1" ]]; then
# Encrypted Swap Partition Options
encr_swap_opts="rd.luks.name=$(blkid -s UUID -o value "${swap_dev}")=swap"
# Encrypted Swap Partition Kernel Parameters
# Encrypted Swap Kernel Parameters
encr_swap_bootopts="resume=/dev/mapper/swap ${encr_swap_opts}"
## Encrypted Swapfile
# Encrypted Swapfile
elif [[ "${swapmode}" == "2" ]]; then
# Ext4 Offset calculation
if [[ "${fs}" == "1" ]]; then
@@ -6049,171 +6174,98 @@ set_vars() {
elif [[ "${fs}" == "2" ]]; then
offst="$(btrfs inspect-internal map-swapfile -r /mnt/swap/swapfile)"
fi
# Encrypted Swapfile Kernel Parameters
# Encrypted Swap Kernel Parameters
encr_swap_bootopts="resume=${encr_root_dev} resume_offset=${offst}"
## Zram Swap
elif [[ "${swapmode}" == "3" ]]; then
# Zram Swap Kernel Parameters
zram_bootopts="zswap.enabled=0"
fi
#---------------------------------------------------------------------------------------------------------
### Graphics Setup (Encryption)
## Mkinitcpio Modules (Encryption)
MODULES=("${fs_mod}")
## Mkinitcpio Hooks (Encryption)
HOOKS=()
## Graphics Kernel Parameters
vga_bootopts=()
# Nvidia Only
# HOOKS SETUP (Encryption)
# Nvidia Only Vendor
if [[ "${vendor}" == "Nvidia" ]]; then
HOOKS+=(systemd keyboard autodetect microcode modconf sd-vconsole block sd-encrypt filesystems fsck)
# Other Vendors/Multi-Vendors
# Other Vendors / Multi-Vendors
else
HOOKS+=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)
fi
## Configuration = 'Yes'
if [[ "${vgaconf}" == "y" ]]; then
# Nvidia
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
vga_bootopts+=(nvidia.NVreg_UsePageAttributeTable=1)
# Disable GSP Firmware
if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi
# Enable Experimental Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi
fi
# AMD
if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
if [[ -n "${islands}" ]]; then
MODULES+=(amdgpu)
fi
# 'Southern Islands' support
if [[ "${islands}" == "1" ]]; then
vga_bootopts+=(amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1)
# 'Sea Islands' support
elif [[ "${islands}" == "2" ]]; then
vga_bootopts+=(amdgpu.dc=1 radeon.cik_support=0 amdgpu.cik_support=1)
fi
fi
fi
#### Main Mkinitcpio Modules (Encryption)
mkinitcpio_mods="MODULES=(${MODULES[*]})"
#### Main Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(${HOOKS[*]})"
#### Main Kernel Parameters (Encryption)
boot_opts=("${encr_root_bootopts}")
# MAIN KERNEL PARAMETERS (Encryption)
# Encrypted Root Kernel Parameters
boot_opts+=("${encr_root_bootopts}")
# Encrypted Swap Kernel Parameters
if [[ -n "${encr_swap_bootopts}" ]]; then
boot_opts+=("${encr_swap_bootopts}")
fi
if [[ "${kill_watchdog}" == "y" ]]; then
boot_opts+=(nowatchdog)
fi
if [[ -n "${vga_bootopts[*]}" ]]; then
boot_opts+=("${vga_bootopts[*]}")
fi
if [[ -n "${cust_bootopts}" ]]; then
boot_opts+=("${cust_bootopts}")
fi
if [[ -n "${btrfs_bootopts}" ]]; then
boot_opts+=("${btrfs_bootopts}")
fi
if [[ -n "${zram_bootopts}" ]]; then
boot_opts+=("${zram_bootopts}")
fi
#-------------------------------------------------------------------------------------------------------------
#### No Encryption
# ENCRYPTION = 'NO'
elif [[ "${encrypt}" == "no" ]]; then
### Swap Setup
## Zram Swap
if [[ "${swapmode}" == "3" ]]; then
# Zram Swap Kernel Parameters
zram_bootopts="zswap.enabled=0"
fi
#---------------------------------------------------------------------------------------------------------
### Graphics Setup
## Mkinitcpio Modules
MODULES=()
## Mkinitcpio Hooks
HOOKS=()
## Graphics Kernel Parameters
vga_bootopts=()
# Nvidia Only
# HOOKS SETUP
# Nvidia Only Vendor
if [[ "${vendor}" == "Nvidia" ]]; then
HOOKS+=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems fsck)
# Other Vendors/Multi-Vendors
# Other Vendors / Multi-Vendors
else
HOOKS+=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
fi
## Configuration = 'Yes'
if [[ "${vgaconf}" == "y" ]]; then
# Nvidia
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
vga_bootopts+=(nvidia.NVreg_UsePageAttributeTable=1)
# Disable GSP Firmware
if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi
# Enable Experimental Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi
fi
# AMD
if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
if [[ -n "${islands}" ]]; then
MODULES+=(amdgpu)
fi
# 'Southern Islands' support
if [[ "${islands}" == "1" ]]; then
vga_bootopts+=(amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1)
# 'Sea Islands' support
elif [[ "${islands}" == "2" ]]; then
vga_bootopts+=(amdgpu.dc=1 radeon.cik_support=0 amdgpu.cik_support=1)
fi
fi
fi
#### Main Mkinitcpio Modules
mkinitcpio_mods="MODULES=(${MODULES[*]})"
#### Main Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(${HOOKS[*]})"
#### Main Kernel Parameters
boot_opts=()
# MAIN KERNEL PARAMETERS
if [[ "${autoroot}" == "y" ]]; then
boot_opts+=("${multiroot_bootopts}")
fi
if [[ "${kill_watchdog}" == "y" ]]; then
boot_opts+=(nowatchdog)
fi
#--------------------------------------------------------------------------------------------------
# GFX CONFIGURATION = 'YES'
if [[ "${gfxconf}" == "y" ]]; then
# Nvidia
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
gfx_bootopts+=(nvidia.NVreg_UsePageAttributeTable=1)
# Disable GSP Firmware
if [[ "${nogsp}" == "y" ]]; then
gfx_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi
# Enable Experimental Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then
gfx_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi
fi
if [[ -n "${vga_bootopts[*]}" ]]; then
boot_opts+=("${vga_bootopts[*]}")
fi
if [[ -n "${cust_bootopts}" ]]; then
boot_opts+=("${cust_bootopts}")
fi
if [[ -n "${btrfs_bootopts}" ]]; then
boot_opts+=("${btrfs_bootopts}")
fi
if [[ -n "${zram_bootopts}" ]]; then
boot_opts+=("${zram_bootopts}")
# AMD
if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
if [[ -n "${islands}" ]]; then
MODULES+=(amdgpu)
fi
# 'Southern Islands' support
if [[ "${islands}" == "1" ]]; then
gfx_bootopts+=(amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1)
# 'Sea Islands' support
elif [[ "${islands}" == "2" ]]; then
gfx_bootopts+=(amdgpu.dc=1 radeon.cik_support=0 amdgpu.cik_support=1)
fi
fi
fi
#--------------------------------------------------------------------------------------------------
# MAIN KERNEL PARAMETERS
if [[ -n "${gfx_bootopts[*]}" ]]; then
boot_opts+=("${gfx_bootopts[*]}")
fi
if [[ "${kill_watchdog}" == "y" ]]; then
boot_opts+=(nowatchdog)
fi
if [[ -n "${cust_bootopts}" ]]; then
boot_opts+=("${cust_bootopts}")
fi
if [[ -n "${btrfs_bootopts}" ]]; then
boot_opts+=("${btrfs_bootopts}")
fi
if [[ -n "${zram_bootopts}" ]]; then
boot_opts+=("${zram_bootopts}")
fi
# MAIN MKINITCPIO MODULES
mkinitcpio_mods="MODULES=(${MODULES[*]})"
# MAIN MKINITCPIO HOOKS
mkinitcpio_hooks="HOOKS=(${HOOKS[*]})"
}
###################################################################################################
chroot_conf() {
@@ -6544,7 +6596,7 @@ OPTIMIZED
tty="$(tty)"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
trg=""
vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="")
vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" printer="" print_pkgs="" web="" web_browser="")
export "${vars[@]}"
clear
first_check