#!/bin/bash ### Vargs ElementaryOS script ### ### Check for sudo access ### if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi ### Variables ### user_home=$(sudo -u $SUDO_USER sh -c 'echo $HOME') ### Colours ### ESC=$(printf '\033') RESET="${ESC}[0m" BLACK="${ESC}[30m" RED="${ESC}[31m" GREEN="${ESC}[32m" YELLOW="${ESC}[33m" BLUE="${ESC}[34m" MAGENTA="${ESC}[35m" CYAN="${ESC}[36m" WHITE="${ESC}[37m" DEFAULT="${ESC}[39m" ### Color Functions ### # function $text greenprint() { printf "${GREEN}%s${RESET}\n" "$1"; } blueprint() { printf "${BLUE}%s${RESET}\n" "$1"; } redprint() { printf "${RED}%s${RESET}\n" "$1"; } yellowprint() { printf "${YELLOW}%s${RESET}\n" "$1"; } magentaprint() { printf "${MAGENTA}%s${RESET}\n" "$1"; } cyanprint() { printf "${CYAN}%s${RESET}\n" "$1"; } ### Depriv ### depriv() { if [[ $SUDO_USER ]]; then sudo -u "$SUDO_USER" -- "$@" else "$@" fi } ### Global Funcions ### vs_exit() { exit 0; } vs_fail() { exit 1; } ### Logo ### vs_logo() { echo -e "\x20\x20\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\n\e[48;5;34m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;10m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;12m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\e[48;5;16m\x20\x20\e[m\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\e[48;5;16m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\n\x20\x20\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\e[48;5;34m\x20\x20\e[m\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20"; } ### Main Menu ### init() { clear; vs_logo; echo -ne " $(greenprint "ElementaryOS Setup Script") $(yellowprint '1)') Jolnir (6.1) $(yellowprint '2)') Horus (7) $(redprint '0)') Exit Choose an version: " read -r ans case $ans in 1) start_jolnir ;; 2) start_horus ;; *) vs_fail ;; esac } start_jolnir() { echo $(greenprint "Performing apt and flatpak updates") apt update apt upgrade flatpak update echo $(greenprint "Install drivers") ubuntu-drivers autoinstall echo $(greenprint "Installing Nala") install_nala_jolnir echo $(greenprint "Installing Chromium") install_chromium echo $(greenprint "Launching Extensions") chromium_extensions echo $(greenprint "Installing fish shell") install_fish echo $(greenprint "Installing wireguard and wiregui") install_wiregui echo $(greenprint "Installing Gnome Disks") install_gnome_disks echo $(greenprint "Installing Simple Scan") install_simple_scan echo $(greenprint "Installing sshch") install_sshch echo $(greenprint "Installing Appimage Launcher") install_appimage_launcher echo $(greenprint "Adding Flathub") add_flathub echo $(greenprint "Installing flathub apps") echo $(greenprint "Installing Bitwarden") install_bitwarden echo $(greenprint "Installing Bottles") install_bottles echo $(greenprint "Installing Connections") install_connections echo $(greenprint "Installing Fondo") install_fondo echo $(greenprint "Installing VSCode") install_vscode echo $(greenprint "Installing Webcord") install_webcord echo $(greenprint "Installing WhatIP") install_whatip echo $(greenprint "Installing Insomnia") install_insomnia echo $(greenprint "Installing SteamLink") install_steamlink echo $(greenprint "Installing Libre Office") install_libre_office echo $(greenprint "Installing Gimp") install_gimp echo $(greenprint "Installing btop") install_btop } insall_btop() { wget -qO /tmp/btop.tbz https://github.com/aristocratos/btop/releases/latest/download/btop-x86_64-linux-musl.tbz tar xf /tmp/btop.tbz /tmp/btop/install.sh rm -R /tmp/btop rm /tmp/btop.tbz } install_gimp() { depriv flatpak install flathub org.gimp.GIMP } install_libre_office() { depriv flatpak install flathub org.libreoffice.LibreOffice } install_steamlink() { depriv flatpak install flathub com.valvesoftware.SteamLink } install_insomnia() { depriv flatpak install appcenter com.github.manexim.insomnia } install_whatip() { depriv flatpak install flathub org.gabmus.whatip } install_webcord() { depriv flatpak install flathub io.github.spacingbat3.webcord } install_vscode() { depriv flatpak install flathub com.visualstudio.code } install_fondo() { depriv flatpak install appcenter com.github.calo001.fondo } install_appimage_launcher() { nala install -y software-properties-common add-apt-repository ppa:appimagelauncher-team/stable nala update nala install -y appimagelauncher } install_connections() { depriv flatpak install flathub org.gnome.Connections } install_bottles() { depriv flatpak install flathub com.usebottles.bottles } install_bitwarden() { depriv flatpak install flathub com.bitwarden.desktop } add_flathub() { flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo } install_sshch() { nala install -y python3-pip depriv pip3 install sshch } install_simple_scan() { nala install -y simple-scan } install_gnome_disks() { nala install -y gnome-disk-utility } install_wiregui() { nala install -y wireguard wget -P /tmp/ https://github.com/Devsfy/wiregui/releases/download/1.8.1/wiregui_1.8.1_amd64.deb nala install -y /tmp/wiregui_1.8.1_amd64.deb rm /tmp/wiregui_1.8.1_amd64.deb } install_fish() { nala install -y fish depriv chsh -s /usr/bin/fish depriv mkdir -p ${user_home}/.local/bin depriv mkdir -p ${user_home}/.local/fish depriv echo "SETUVAR fish_user_paths:${user_home}/\x2elocal/bin" > ${user_home}/.local/fish/fish_variables } install_chromium() { nala install -y software-properties-common add-apt-repository ppa:saiarcot895/chromium-beta nala update nala install -y chromium-browser } chromium_extensions() { depriv chromium-browser https://chrome.google.com/webstore/detail/nngceckbapebfimnlniiiahkandclblb >/dev/null 2>/dev/null depriv chromium-browser https://chrome.google.com/webstore/detail/fnaicdffflnofjppbagibeoednhnbjhg >/dev/null 2>/dev/null depriv chromium-browser https://chrome.google.com/webstore/detail/cjpalhdlnbpafiamejdnhcphjbkeiagm >/dev/null 2>/dev/null } install_nala_jolnir() { echo "deb http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list wget -O /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg https://deb.volian.org/volian/scar.key apt update apt install nala-legacy nala fetch nala update } init