Fixes for debian and first version of fedora script
This commit is contained in:
343
fedora-setup.sh
343
fedora-setup.sh
@@ -1 +1,342 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
# Function name: Install packages
|
||||
# Description: Install packages from an array
|
||||
# Arguments:
|
||||
# $1: Package list (array)
|
||||
install_packages() {
|
||||
local packages=("${!1}")
|
||||
for package in "${packages[@]}"; do
|
||||
sudo dnf install -y "$package"
|
||||
done
|
||||
}
|
||||
|
||||
# Function name: Install package
|
||||
# Description: Install a package
|
||||
# Arguments:
|
||||
# $1: Package name
|
||||
install_package() {
|
||||
sudo dnf install -y "$1"
|
||||
}
|
||||
|
||||
# Function name: Add repositories
|
||||
# Description: Add repositories from an array
|
||||
# Arguments:
|
||||
# $1: Repository list (array)
|
||||
add_repositories() {
|
||||
options=(
|
||||
"rpmfusion-free" "RPM Fusion Free repository" ON
|
||||
"rpmfusion-nonfree" "RPM Fusion Non-Free repository" OFF
|
||||
"brave" "Brave official repository" OFF
|
||||
"chrome" "Google Chrome official repository" OFF
|
||||
"edge" "Microsoft Edge official repository" OFF
|
||||
"librewolf" "Librewolf official repository" OFF
|
||||
"mullvad" "Mullvad official repository" OFF
|
||||
"heroic-games" "Heroic Games Launcher official repository" OFF
|
||||
"freeoffice" "FreeOffice official repository" OFF
|
||||
)
|
||||
|
||||
selected_repositories=$(whiptail --title "Add Repositories" --checklist \
|
||||
"Choose the repositories you want to add:" 20 78 9 \
|
||||
"${options[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
for repository in $selected_repositories; do
|
||||
case $repository in
|
||||
"rpmfusion-free")
|
||||
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -y
|
||||
;;
|
||||
"rpmfusion-nonfree")
|
||||
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y
|
||||
;;
|
||||
"brave")
|
||||
sudo dnf config-manager addrepo --from-repofile=https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo
|
||||
;;
|
||||
"chrome")
|
||||
sudo dnf install fedora-workstation-repositories -y
|
||||
sudo dnf config-manager setopt google-chrome.enabled=1
|
||||
;;
|
||||
"edge")
|
||||
sudo dnf config-manager addrepo --from-repofile=https://packages.microsoft.com/yumrepos/edge/config.repo
|
||||
;;
|
||||
"librewolf")
|
||||
sudo dnf config-manager addrepo --from-repofile=https://rpm.librewolf.net/librewolf-repo.repo
|
||||
;;
|
||||
"mullvad")
|
||||
sudo dnf config-manager addrepo --from-repofile=https://repository.mullvad.net/rpm/stable/mullvad.repo
|
||||
;;
|
||||
"heroic-games")
|
||||
sudo dnf copr enable atim/heroic-games-launcher -y
|
||||
;;
|
||||
"freeoffice")
|
||||
sudo dnf config-manager addrepo --from-repofile=https://shop.softmaker.com/repo/softmaker.repo
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Function name: Update system
|
||||
# Description: Update the system
|
||||
update_system() {
|
||||
sudo dnf update -y
|
||||
}
|
||||
|
||||
# Function name: Setup plymouth
|
||||
# Description: Setup plymouth
|
||||
setup_plymouth() {
|
||||
install_package plymouth
|
||||
sudo plymouth-set-default-theme -R spinner
|
||||
}
|
||||
|
||||
# Packages group definitions
|
||||
zsh_packages=(
|
||||
zsh
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
)
|
||||
games_packages=(
|
||||
steam
|
||||
heroic-games-launcher-bin
|
||||
)
|
||||
pipewire_packages=(
|
||||
pipewire
|
||||
pipewire-pulseaudio
|
||||
pipewire-jack-audio-connection-kit
|
||||
pipewire-alsa
|
||||
wireplumber
|
||||
)
|
||||
cups_packages=(
|
||||
cups
|
||||
cups-filters
|
||||
system-config-printer
|
||||
)
|
||||
networkmanager_packages=(
|
||||
NetworkManager
|
||||
NetworkManager-openvpn
|
||||
NetworkManager-pptp
|
||||
NetworkManager-vpnc
|
||||
NetworkManager-strongswan
|
||||
NetworkManager-l2tp
|
||||
wpa_supplicant
|
||||
)
|
||||
bluetooth_packages=(
|
||||
bluez
|
||||
bluez-tools
|
||||
blueman
|
||||
)
|
||||
virtualization_packages=(
|
||||
qemu-kvm
|
||||
libvirt
|
||||
libvirt-client
|
||||
virt-manager
|
||||
virt-viewer
|
||||
swtpm
|
||||
)
|
||||
containers_packages=(
|
||||
podman
|
||||
distrobox
|
||||
waydroid
|
||||
lxc
|
||||
)
|
||||
thunderbird_packages=(
|
||||
thunderbird
|
||||
thunderbird-l10n
|
||||
)
|
||||
|
||||
# Function name: Setup browser
|
||||
# Description: Setup browser
|
||||
setup_browser() {
|
||||
options=(
|
||||
"Firefox" "Install Firefox" ON
|
||||
"Chromium" "Install Chromium" OFF
|
||||
"Brave" "Install Brave" OFF
|
||||
"Google Chrome" "Install Google Chrome" OFF
|
||||
"Tor Browser" "Install Tor Browser" OFF
|
||||
"Mullvad Browser" "Install Mullvad Browser" OFF
|
||||
"Edge Stable" "Install Edge Stable" OFF
|
||||
"LibreWolf" "Install LibreWolf" OFF
|
||||
"Links" "Install Links" OFF
|
||||
)
|
||||
|
||||
selected_browsers=$(whiptail --title "Setup Browser" --checklist \
|
||||
"Choose the browsers you want to install:" 20 78 9 \
|
||||
"${options[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
for browser in $selected_browsers; do
|
||||
case $browser in
|
||||
"\"Firefox\"")
|
||||
install_package firefox
|
||||
;;
|
||||
"\"Chromium\"")
|
||||
install_package chromium
|
||||
;;
|
||||
"\"Brave\"")
|
||||
install_package brave-browser
|
||||
;;
|
||||
"\"Google Chrome\"")
|
||||
install_package google-chrome-stable
|
||||
;;
|
||||
"\"Tor Browser\"")
|
||||
install_package torbrowser-launcher
|
||||
;;
|
||||
"\"Mullvad Browser\"")
|
||||
install_package mullvad-browser
|
||||
;;
|
||||
"\"Edge Stable\"")
|
||||
install_package microsoft-edge-stable
|
||||
;;
|
||||
"\"LibreWolf\"")
|
||||
install_package librewolf
|
||||
;;
|
||||
"\"Links\"")
|
||||
install_package links
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Function name: Setup U2F
|
||||
# Description: Setup U2F
|
||||
setup_u2f() {
|
||||
install_package pam-u2f
|
||||
install_package pamu2fcfg
|
||||
mkdir -p ~/.config/Yubico
|
||||
pamu2fcfg > ~/.config/Yubico/u2f_keys
|
||||
sudo authselect select sssd with-pam-u2f
|
||||
}
|
||||
|
||||
# Function name: Setup OpenRGB
|
||||
# Description: Setup OpenRGB
|
||||
setup_openrgb() {
|
||||
install_package openrgb
|
||||
install_package i2c-tools
|
||||
sudo gpasswd -a "$USER" plugdev
|
||||
sudo systemctl enable --now openrgb
|
||||
}
|
||||
|
||||
# Function name: Install packages group
|
||||
# Description: Install packages group by asking with a selection menu which group would you like to install
|
||||
install_packages_group() {
|
||||
options=(
|
||||
"Zsh" "Install Zsh packages" OFF
|
||||
"Theme" "Install Theme packages" OFF
|
||||
"Games" "Install Games packages" OFF
|
||||
"Pipewire" "Install Pipewire packages" OFF
|
||||
"Cups" "Install Cups packages" OFF
|
||||
"NetworkManager" "Install NetworkManager packages" OFF
|
||||
"Bluetooth" "Install Bluetooth packages" OFF
|
||||
"Virtualization" "Install Virtualization packages" OFF
|
||||
"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 10 \
|
||||
"${options[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
for group in $selected_groups; do
|
||||
case $group in
|
||||
"\"Zsh\"")
|
||||
install_packages zsh_packages[@]
|
||||
;;
|
||||
"\"Theme\"")
|
||||
install_packages theme_packages[@]
|
||||
;;
|
||||
"\"Games\"")
|
||||
install_packages games_packages[@]
|
||||
;;
|
||||
"\"Pipewire\"")
|
||||
install_packages pipewire_packages[@]
|
||||
;;
|
||||
"\"Cups\"")
|
||||
install_packages cups_packages[@]
|
||||
;;
|
||||
"\"NetworkManager\"")
|
||||
install_packages networkmanager_packages[@]
|
||||
;;
|
||||
"\"Bluetooth\"")
|
||||
install_packages bluetooth_packages[@]
|
||||
;;
|
||||
"\"Virtualization\"")
|
||||
install_packages virtualization_packages[@]
|
||||
;;
|
||||
"\"Containers\"")
|
||||
install_packages containers_packages[@]
|
||||
;;
|
||||
"\"U2F\"")
|
||||
setup_u2f
|
||||
;;
|
||||
"\"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
|
||||
sudo flatpak remote-add --if-not-exists 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
|
||||
;;
|
||||
"\"OnlyOffice\"")
|
||||
sudo flatpak install --system flathub org.onlyoffice.desktopeditors -y
|
||||
;;
|
||||
"\"WPS Office\"")
|
||||
sudo flatpak install --system flathub com.wps.Office -y
|
||||
;;
|
||||
"\"FreeOffice\"")
|
||||
install_package softmaker-freeoffice-2024
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Main script
|
||||
update_system
|
||||
setup_plymouth
|
||||
setup_browser
|
||||
install_packages_group
|
||||
setup_flatpak
|
||||
setup_kdeconnect
|
||||
setup_office_suite
|
||||
Reference in New Issue
Block a user