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 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 # Function name: Check whiptail
# Description: Check if whiptail is installed else install it # Description: Check if whiptail is installed else install it
check_whiptail() { check_whiptail() {
@@ -344,7 +360,7 @@ setup_browser() {
# function name : setup u2f # function name : setup u2f
# Description: setup u2f # Description: setup u2f
setup_u2f() { setup_u2f() {
sudo pacman -S --needed --noconfirm pam-u2f install_package pam-u2f
mkdir ~/.config/Yubico mkdir ~/.config/Yubico
echo "Registering U2F device..." echo "Registering U2F device..."
pamu2fcfg -o "pam://$HOST" -i "pam://$HOST" > ~/.config/Yubico/u2f_keys pamu2fcfg -o "pam://$HOST" -i "pam://$HOST" > ~/.config/Yubico/u2f_keys
@@ -364,7 +380,7 @@ setup_u2f() {
# function name : setup OpenRGB # function name : setup OpenRGB
# Description: setup OpenRGB # Description: setup OpenRGB
setup_openrgb() { setup_openrgb() {
sudo pacman -S --needed --noconfirm openrgb install_package openrgb
sudo gpasswd -a "$USER" plugdev sudo gpasswd -a "$USER" plugdev
sudo systemctl enable --now openrgb sudo systemctl enable --now openrgb
} }
@@ -428,7 +444,7 @@ install_packages_group() {
install_packages containers_packages[@] install_packages containers_packages[@]
# if nvidia gpu is detected # if nvidia gpu is detected
if lspci | grep -Ei "nvidia" > /dev/null; then if lspci | grep -Ei "nvidia" > /dev/null; then
sudo pacman -S --needed --noconfirm nvidia-container-toolkit install_package nvidia-container-toolkit
fi fi
;; ;;
"\"U2F\"") "\"U2F\"")
@@ -457,19 +473,21 @@ setup_firewall() {
case $selected_groups in case $selected_groups in
"ufw") "ufw")
sudo pacman -S --needed --noconfirm ufw ufw-extras install_package ufw
install_dependencies ufw-extras
sudo systemctl enable --now ufw sudo systemctl enable --now ufw
sudo ufw enable sudo ufw enable
;; ;;
"firewalld") "firewalld")
sudo pacman -S --needed --noconfirm firewalld install_package firewalld
sudo systemctl enable --now firewalld sudo systemctl enable --now firewalld
;; ;;
"iptables") "iptables")
sudo pacman -S --needed --noconfirm iptables install_package iptables
;; ;;
"nftables") "nftables")
sudo pacman -S --needed --noconfirm nftables iptables-nft install_package nftables
install_package iptables-nft
;; ;;
esac esac
} }
@@ -478,7 +496,7 @@ setup_firewall() {
# Description: setup flatpak # Description: setup flatpak
setup_flatpak() { setup_flatpak() {
if whiptail --title "Setup Flatpak" --yesno "Would you like to setup Flatpak?" 10 60; then 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 flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
fi fi
} }
@@ -487,7 +505,8 @@ setup_flatpak() {
# Description: setup fwupd # Description: setup fwupd
setup_fwupd() { setup_fwupd() {
if whiptail --title "Setup fwupd" --yesno "Would you like to setup fwupd?" 10 60; then 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
sudo systemctl enable --now fwupd-refresh sudo systemctl enable --now fwupd-refresh
fi 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) 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 case $selected_option in
"\"kdeconnect\"") "\"kdeconnect\"")
sudo pacman -S --needed --noconfirm kdeconnect install_package kdeconnect
;; ;;
"\"gsconnect\"") "\"gsconnect\"")
sudo yay -S --needed --noconfirm gsconnect gnome-shell-extension-gsconnect install_package gnome-shell-extension-gsconnect
;; ;;
esac esac
fi 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) 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 case $selected_option in
"\"LibreOffice\"") "\"LibreOffice\"")
sudo pacman -S --needed --noconfirm libreoffice-fresh install_package libreoffice-fresh
;; ;;
"\"OnlyOffice\"") "\"OnlyOffice\"")
sudo pacman -S --needed --noconfirm onlyoffice-bin install_package onlyoffice-bin
;; ;;
"\"WPS Office\"") "\"WPS Office\"")
sudo pacman -S --needed --noconfirm wps-office install_package wps-office
;; ;;
"\"FreeOffice\"") "\"FreeOffice\"")
sudo pacman -S --needed --noconfirm freeoffice install_package freeoffice
;; ;;
esac esac
} }

View File

@@ -11,6 +11,14 @@ install_packages() {
done 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 # Function name: Add repositories
# Description: Add repositories from an array # Description: Add repositories from an array
# Arguments: # Arguments:
@@ -75,7 +83,8 @@ update_system() {
# Function name: Setup plymouth # Function name: Setup plymouth
# Description: Setup plymouth # Description: Setup plymouth
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 sudo plymouth-set-default-theme -R spinner
} }
@@ -129,6 +138,10 @@ containers_packages=(
waydroid waydroid
lxc lxc
) )
thunderbird_packages=(
thunderbird
thunderbird-l10n-all
)
# Function name: Setup browser # Function name: Setup browser
# Description: Setup browser # Description: Setup browser
@@ -152,31 +165,31 @@ setup_browser() {
for browser in $selected_browsers; do for browser in $selected_browsers; do
case $browser in case $browser in
"\"Firefox\"") "\"Firefox\"")
sudo apt-get install -y firefox-esr install_package firefox-esr
;; ;;
"\"Chromium\"") "\"Chromium\"")
sudo apt-get install -y chromium install_package chromium
;; ;;
"\"Brave\"") "\"Brave\"")
sudo apt-get install -y brave-browser install_package brave-browser
;; ;;
"\"Google Chrome\"") "\"Google Chrome\"")
sudo apt-get install -y google-chrome-stable install_package google-chrome-stable
;; ;;
"\"Tor Browser\"") "\"Tor Browser\"")
sudo apt-get install -y torbrowser-launcher install_package torbrowser-launcher
;; ;;
"\"Mullvad Browser\"") "\"Mullvad Browser\"")
sudo apt-get install -y mullvad-browser install_package mullvad-browser
;; ;;
"\"Edge Stable\"") "\"Edge Stable\"")
sudo apt-get install -y microsoft-edge-stable install_package microsoft-edge-stable
;; ;;
"\"LibreWolf\"") "\"LibreWolf\"")
sudo apt-get install -y librewolf install_package librewolf
;; ;;
"\"Links\"") "\"Links\"")
sudo apt-get install -y links install_package links
;; ;;
esac esac
done done
@@ -185,16 +198,26 @@ setup_browser() {
# Function name: Setup U2F # Function name: Setup U2F
# Description: Setup U2F # Description: Setup U2F
setup_u2f() { setup_u2f() {
sudo apt-get install -y libpam-u2f install_package pamu2fcfg
install_package libpam-u2f
mkdir -p ~/.config/Yubico mkdir -p ~/.config/Yubico
pamu2fcfg > ~/.config/Yubico/u2f_keys 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 # Function name: Setup OpenRGB
# Description: Setup OpenRGB # Description: Setup OpenRGB
setup_openrgb() { setup_openrgb() {
sudo apt-get install -y openrgb install_package openrgb
sudo gpasswd -a "$USER" plugdev sudo gpasswd -a "$USER" plugdev
sudo systemctl enable --now openrgb sudo systemctl enable --now openrgb
} }
@@ -214,10 +237,11 @@ install_packages_group() {
"Containers" "Install Containers packages" OFF "Containers" "Install Containers packages" OFF
"U2F" "Setup U2F" OFF "U2F" "Setup U2F" OFF
"OpenRGB" "Setup OpenRGB" OFF "OpenRGB" "Setup OpenRGB" OFF
"Thunderbird" "Install Thunderbird" OFF
) )
selected_groups=$(whiptail --title "Install Packages Group" --checklist \ 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) "${options[@]}" 3>&1 1>&2 2>&3)
for group in $selected_groups; do for group in $selected_groups; do
@@ -255,12 +279,71 @@ install_packages_group() {
"\"OpenRGB\"") "\"OpenRGB\"")
setup_openrgb setup_openrgb
;; ;;
"\"Thunderbird\"")
install_packages thunderbird_packages[@]
;;
esac esac
done 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 # Main script
update_system update_system
setup_plymouth setup_plymouth
setup_browser setup_browser
install_packages_group install_packages_group
setup_flatpak