mirror of
https://gitlab.com/prism7/archery.git
synced 2026-04-28 01:17:35 +02:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user