More consistency and bringing debian script on par with arch

This commit is contained in:
2025-03-21 09:41:50 +01:00
parent ca1bc000df
commit 44ad0053ff
2 changed files with 132 additions and 30 deletions

View File

@@ -11,6 +11,22 @@ install_packages() {
done
}
# Function name: Install package
# Description: Install a package
# Arguments:
# $1: Package name
install_package() {
sudo pacman -S --needed --noconfirm "$1"
}
# Function name: Install dependencies
# Description: Install dependencies
# Arguments:
# $1: Package name
install_dependencies() {
sudo pacman -S --needed --noconfirm --asdeps "$1"
}
# Function name: Check whiptail
# Description: Check if whiptail is installed else install it
check_whiptail() {
@@ -344,7 +360,7 @@ setup_browser() {
# function name : setup u2f
# Description: setup u2f
setup_u2f() {
sudo pacman -S --needed --noconfirm pam-u2f
install_package pam-u2f
mkdir ~/.config/Yubico
echo "Registering U2F device..."
pamu2fcfg -o "pam://$HOST" -i "pam://$HOST" > ~/.config/Yubico/u2f_keys
@@ -364,7 +380,7 @@ setup_u2f() {
# function name : setup OpenRGB
# Description: setup OpenRGB
setup_openrgb() {
sudo pacman -S --needed --noconfirm openrgb
install_package openrgb
sudo gpasswd -a "$USER" plugdev
sudo systemctl enable --now openrgb
}
@@ -428,7 +444,7 @@ install_packages_group() {
install_packages containers_packages[@]
# if nvidia gpu is detected
if lspci | grep -Ei "nvidia" > /dev/null; then
sudo pacman -S --needed --noconfirm nvidia-container-toolkit
install_package nvidia-container-toolkit
fi
;;
"\"U2F\"")
@@ -457,19 +473,21 @@ setup_firewall() {
case $selected_groups in
"ufw")
sudo pacman -S --needed --noconfirm ufw ufw-extras
install_package ufw
install_dependencies ufw-extras
sudo systemctl enable --now ufw
sudo ufw enable
;;
"firewalld")
sudo pacman -S --needed --noconfirm firewalld
install_package firewalld
sudo systemctl enable --now firewalld
;;
"iptables")
sudo pacman -S --needed --noconfirm iptables
install_package iptables
;;
"nftables")
sudo pacman -S --needed --noconfirm nftables iptables-nft
install_package nftables
install_package iptables-nft
;;
esac
}
@@ -478,7 +496,7 @@ setup_firewall() {
# Description: setup flatpak
setup_flatpak() {
if whiptail --title "Setup Flatpak" --yesno "Would you like to setup Flatpak?" 10 60; then
sudo pacman -S --needed --noconfirm flatpak
install_package flatpak
flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
fi
}
@@ -487,7 +505,8 @@ setup_flatpak() {
# Description: setup fwupd
setup_fwupd() {
if whiptail --title "Setup fwupd" --yesno "Would you like to setup fwupd?" 10 60; then
sudo pacman -S --needed fwupd fwupd-efi
install_package fwupd
install_dependencies fwupd-efi
sudo systemctl enable --now fwupd
sudo systemctl enable --now fwupd-refresh
fi
@@ -504,10 +523,10 @@ setup_kdeconnect() {
selected_option=$(whiptail --title "Setup KDE Connect" --radiolist "Choose the package you want to install:" 20 78 2 "${options[@]}" 3>&1 1>&2 2>&3)
case $selected_option in
"\"kdeconnect\"")
sudo pacman -S --needed --noconfirm kdeconnect
install_package kdeconnect
;;
"\"gsconnect\"")
sudo yay -S --needed --noconfirm gsconnect gnome-shell-extension-gsconnect
install_package gnome-shell-extension-gsconnect
;;
esac
fi
@@ -525,16 +544,16 @@ setup_office_suite() {
selected_option=$(whiptail --title "Setup Office Suite" --radiolist "Choose the office suite you want to install:" 20 78 4 "${options[@]}" 3>&1 1>&2 2>&3)
case $selected_option in
"\"LibreOffice\"")
sudo pacman -S --needed --noconfirm libreoffice-fresh
install_package libreoffice-fresh
;;
"\"OnlyOffice\"")
sudo pacman -S --needed --noconfirm onlyoffice-bin
install_package onlyoffice-bin
;;
"\"WPS Office\"")
sudo pacman -S --needed --noconfirm wps-office
install_package wps-office
;;
"\"FreeOffice\"")
sudo pacman -S --needed --noconfirm freeoffice
install_package freeoffice
;;
esac
}

View File

@@ -11,6 +11,14 @@ install_packages() {
done
}
# Function name: Install package
# Description: Install a package
# Arguments:
# $1: Package name
install_package() {
sudo apt-get install -y "$1"
}
# Function name: Add repositories
# Description: Add repositories from an array
# Arguments:
@@ -75,7 +83,8 @@ update_system() {
# Function name: Setup plymouth
# Description: Setup plymouth
setup_plymouth() {
sudo apt-get install -y plymouth plymouth-themes
install_package plymouth
install_package plymouth-themes
sudo plymouth-set-default-theme -R spinner
}
@@ -129,6 +138,10 @@ containers_packages=(
waydroid
lxc
)
thunderbird_packages=(
thunderbird
thunderbird-l10n-all
)
# Function name: Setup browser
# Description: Setup browser
@@ -152,31 +165,31 @@ setup_browser() {
for browser in $selected_browsers; do
case $browser in
"\"Firefox\"")
sudo apt-get install -y firefox-esr
install_package firefox-esr
;;
"\"Chromium\"")
sudo apt-get install -y chromium
install_package chromium
;;
"\"Brave\"")
sudo apt-get install -y brave-browser
install_package brave-browser
;;
"\"Google Chrome\"")
sudo apt-get install -y google-chrome-stable
install_package google-chrome-stable
;;
"\"Tor Browser\"")
sudo apt-get install -y torbrowser-launcher
install_package torbrowser-launcher
;;
"\"Mullvad Browser\"")
sudo apt-get install -y mullvad-browser
install_package mullvad-browser
;;
"\"Edge Stable\"")
sudo apt-get install -y microsoft-edge-stable
install_package microsoft-edge-stable
;;
"\"LibreWolf\"")
sudo apt-get install -y librewolf
install_package librewolf
;;
"\"Links\"")
sudo apt-get install -y links
install_package links
;;
esac
done
@@ -185,16 +198,26 @@ setup_browser() {
# Function name: Setup U2F
# Description: Setup U2F
setup_u2f() {
sudo apt-get install -y libpam-u2f
install_package pamu2fcfg
install_package libpam-u2f
mkdir -p ~/.config/Yubico
pamu2fcfg > ~/.config/Yubico/u2f_keys
echo "auth required pam_u2f.so" | sudo tee -a /etc/pam.d/common-auth
sudo touch /etc/pam.d/u2f-required
sudo touch /etc/pam.d/u2f-sufficient
echo "auth required pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-required
echo "auth sufficient pam_u2f.so cue origin=pam://$HOST appid=pam://$HOST" | sudo tee -a /etc/pam.d/u2f-sufficient
sudo sed -i '/^password\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/su
sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/sudo
sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/passwd
sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/system-login
sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1
sudo sed -i '/^auth\s*include\s*system-auth/i auth include u2f-sufficient' /etc/pam.d/polkit-1
}
# Function name: Setup OpenRGB
# Description: Setup OpenRGB
setup_openrgb() {
sudo apt-get install -y openrgb
install_package openrgb
sudo gpasswd -a "$USER" plugdev
sudo systemctl enable --now openrgb
}
@@ -214,10 +237,11 @@ install_packages_group() {
"Containers" "Install Containers packages" OFF
"U2F" "Setup U2F" OFF
"OpenRGB" "Setup OpenRGB" OFF
"Thunderbird" "Install Thunderbird" OFF
)
selected_groups=$(whiptail --title "Install Packages Group" --checklist \
"Choose the packages group you want to install:" 20 78 11 \
"Choose the packages group you want to install:" 20 78 10 \
"${options[@]}" 3>&1 1>&2 2>&3)
for group in $selected_groups; do
@@ -255,12 +279,71 @@ install_packages_group() {
"\"OpenRGB\"")
setup_openrgb
;;
"\"Thunderbird\"")
install_packages thunderbird_packages[@]
;;
esac
done
}
# Function name: Setup flatpak
# Description: Setup flatpak
setup_flatpak() {
if whiptail --title "Setup Flatpak" --yesno "Would you like to setup Flatpak?" 10 60; then
install_package flatpak
flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
fi
}
# function name : setup_kdeconnect
# Description: setup kdeconnect
setup_kdeconnect() {
if whiptail --title "Setup KDE Connect" --yesno "Would you like to setup KDE Connect?" 10 60; then
options=(
"kdeconnect" "Install KDE Connect" OFF
"gsconnect" "Install GSConnect" OFF
)
selected_option=$(whiptail --title "Setup KDE Connect" --radiolist "Choose the package you want to install:" 20 78 2 "${options[@]}" 3>&1 1>&2 2>&3)
case $selected_option in
"\"kdeconnect\"")
install_package kdeconnect
;;
"\"gsconnect\"")
install_package gnome-shell-extension-gsconnect
;;
esac
fi
}
# function name : setup_office_suite
# Description: setup office suite
setup_office_suite() {
options=(
"LibreOffice" "Install LibreOffice" OFF
"OnlyOffice" "Install OnlyOffice" OFF
"WPS Office" "Install WPS Office" OFF
"FreeOffice" "Install FreeOffice" OFF
)
selected_option=$(whiptail --title "Setup Office Suite" --radiolist "Choose the office suite you want to install:" 20 78 4 "${options[@]}" 3>&1 1>&2 2>&3)
case $selected_option in
"\"LibreOffice\"")
install_package libreoffice-fresh
;;
"\"OnlyOffice\"")
install_package onlyoffice-bin
;;
"\"WPS Office\"")
install_package wps-office
;;
"\"FreeOffice\"")
install_package freeoffice
;;
esac
}
# Main script
update_system
setup_plymouth
setup_browser
install_packages_group
setup_flatpak