#!/usr/bin/env sh $INTERACTION_MODE=0 # Check if running as root if [ "$EUID" -ne 0 ]; then echo "Please run as root" exit fi # Add contrib, non-free and non-free-firmware to the sources config_sources () { echo "INFO: ####################### Add contrib, non-free and non-free-firmware to the sources #######################" interactive cat << END_OF_FILE > /etc/apt/sources.list deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware END_OF_FILE } # Add multi-arch support config_multi-arch () { echo "INFO: ####################### Add multi-arch support #######################" interactive dpkg --add-architecture i386 } # Update apt sources update_sources () { echo "INFO: ####################### Update apt sources #######################" interactive apt-get update } # Upgrade upgradeable packages upgrade_packages () { echo "INFO: ####################### Upgrade upgradeable packages #######################" interactive apt-get upgrade --yes } # Install packages install_packages () { echo "INFO: ####################### Install packages #######################" interactive apt-get install --yes gnome-core gnome-connections gnome-text-editor gnome-disk-utility gnome-passwordsafe gnome-feeds vim curl chromium dropbear dropbear-initramfs steam-installer wine wine64 protontricks pcsx2 openjdk-17-jre flatpak gnome-software-plugin-flatpak git python3 python3-venv qemu-kvm virt-manager nvidia-driver tmux apostrophe } # Install Proton-GE install_proton-ge () { echo "INFO: ####################### Install Proton-GE #######################" interactive wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/proton/proton-ge-setup.sh | bash } # Setup Flatpaks setup_flatpaks () { echo "INFO: ####################### Setup Flatpak #######################" interactive flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install --assumeyes --noninteractive flathub org.telegram.desktop flathub com.usebottles.bottles flatpak override --filesystem=host } # Install NordVPN install_nordvpn () { echo "INFO: ####################### Install NordVPN #######################" interactive sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) } # Install Internet Archive CLI install_ia-cli () { echo "INFO: ####################### Install Internet Archive CLI #######################" interactive wget https://archive.org/download/ia-pex/ia -o /tmp/ia chmod +x /tmp/ia mv /tmp/ia /usr/bin/ia } main () { config_sources config_multi-arch update_sources upgrade_packages install_packages install_proton-ge setup_flatpaks install_nordvpn install_ia-cli } if [ $1 == "-i" ]; then $INTERACTION_MODE="1" elif [ -z $1 ]; then $1 else main fi # Check if running in interactive mode interactive () { if [ $INTERACTION_MODE -eq "1" ];then echo "INFO: ctrl+c to stop the script" read -p "Press any key to start the current step..." fi }