#!/bin/bash
######################################################
#
# Kernel Panic Systems
#
# Fait pour Ubuntu 22.04
#   
# KPS vous propose un script bash pour changer l'apparence d'Ubuntu, 
# ajouter des raccourcis, des documents utiles, installer des applications 
# et scripts dont vous pourriez ou allez avoir besoin. 
#
# Pour plus d'informations, rendez-vous sur https://installfest.panic.systems/Ubuntu_setup.html
#
######################################################

######## SETUP

######## UBUNTU SETTINGS

function ubuntu_settings(){
    printf "\n\e[0;90m- \e[0m\e[1;77mChanging ubuntu settings..\e[0m"
    # Dark mode
    dconf write /org/gnome/desktop/interface/gtk-theme "'Yaru-dark'"
    dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
    dconf write /org/gnome/gedit/preferences/editor/scheme "'Yaru-dark'"

    # Theme bleu
    dconf write /org/gnome/desktop/interface/gtk-theme "'Yaru-blue-dark'"
    dconf write /org/gnome/desktop/interface/icon-theme "'Yaru-blue'"
}

# Ajoute un fond d'écran custom
function background_wallpaper(){
    printf "\n\e[0;90m- \e[0m\e[1;77mChanging background..\e[0m"
    [[ ! -f "/usr/share/backgrounds/kps_background.png" ]] && sudo wget --content-disposition --output-document=/usr/share/backgrounds/kps_background.png ${url}/file/kps_background.png
    gsettings set org.gnome.desktop.background picture-uri "'file:/usr/share/backgrounds/kps_background.png'"
    gsettings set org.gnome.desktop.background picture-uri-dark "'file:/usr/share/backgrounds/kps_background.png'"
    printf "\n\e[0;92m✓ \e[0m\e[1;77mBackground changed\e[0m"
}

######## TERMINAL

function terminal_install(){
    printf "\n\e[0;90m- \e[0m\e[1;77mInstalling git, gcc, and tree..\e[0m"
    sudo apt install git -y &&\
    sudo apt install gcc -y &&\
    sudo apt install tree -y &&\
    printf "\n\e[0;92m✓ \e[0m\e[1;77mDone\e[0m" ||\
    printf "\n\e[0;91mx \e[0m\e[1;77mFail: terminal_install()\e[0m"
}

######## APPLICATIONS

function application_install(){
    printf "\n\e[0;90m- \e[0m\e[1;77mInstalling bitwarden, discord..\e[0m"
    sudo snap install bitwarden &&\
    sudo snap install discord &&\
    sudo snap connect discord:system-observe &&\
    sudo apt install curl &&\
    sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-								browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg &&\
    sudo apt update &&\
    sudo apt install brave-browser &&\
    sudo apt-get install wget gpg &&\
    sudo apt install tmux &&\
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor >packages.microsoft.gpg &&\
    sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg &&\
    rm -f packages.microsoft.gpg &&\
    printf "\n\e[0;92m✓ \e[0m\e[1;77mDone\e[0m" ||\
    printf "\n\e[0;91mx \e[0m\e[1;77mFail: application_install()\e[0m"
}

function application_shortcuts(){
    printf "\n\e[0;90m- \e[0m\e[1;77mInstalling shortcuts..\e[0m"
    home="/home/$(logname)"

    if [[ -d "${home}/Desktop" ]];then
        desktop="${home}/Desktop"
    elif [[ -d "${home}/Bureau" ]];then
        desktop="${home}/Bureau"
    else
        printf "\n\e[0;91mx \e[0m\e[1;77mDesktop not found\e[0m"
        desktop=""
    fi

    if [[ $desktop != "" ]];then
        # Download Icons
        [[ ! -d "${home}/.kps_icons" ]] && mkdir $home/.kps_icons
        
        # Moodle
        wget -q --output-document=${home}/.kps_icons/moodle.png ${url}/file/icons/moodle.png
        printf """[Desktop Entry]
        Name=Moodle
        Exec=xdg-open https://learning.esiea.fr/
        Type=Application
        Icon=${home}/.kps_icons/moodle.png
        """ > ${desktop}/moodle.desktop &&\
        chmod +x ${desktop}/moodle.desktop

        # EDT
        wget -q --output-document=${home}/.kps_icons/edt.png ${url}/file/icons/edt.png
        printf """[Desktop Entry]
        Name=EDT
        Exec=xdg-open https://edt.esiea.fr/
        Type=Application
        Icon=${home}/.kps_icons/edt.png
        """ > ${desktop}/edt.desktop &&\
        chmod +x ${desktop}/edt.desktop

        # Mail
        wget -q --output-document=${home}/.kps_icons/outlook.png ${url}/file/icons/outlook.png
        printf """[Desktop Entry]
        Name=Mail
        Exec=xdg-open https://outlook.office.com/
        Type=Application
        Icon=${home}/.kps_icons/outlook.png
        """ > ${desktop}/outlook.desktop &&\
        chmod +x ${desktop}/outlook.desktop

        printf "\n\e[0;92m✓ \e[0m\e[1;77mShortcuts installed\e[0m"

        # PDF Base Linux
        printf "\n\e[0;90m- \e[0m\e[1;77mInstalling 'Bases_de_Linux.pdf'..\e[0m"
        wget -q --output-document=${desktop}/Bases_de_Linux.pdf ${url}/file/Bases_de_Linux.pdf
        printf "\n\e[0;92m✓ \e[0m\e[1;77mDone\e[0m"
    fi

    # Ordre du dock:
    dconf write /org/gnome/shell/favorite-apps "['org.gnome.Nautilus.desktop', 'firefox_firefox.desktop', 'org.gnome.Terminal.desktop', 'libreoffice-writer.desktop', 'bitwarden_bitwarden.desktop', 'discord_discord.desktop']"
}


###########################
######## MAIN
###########################

printf "\e[0;92m- \e[0m\e[1;77mKPS Ubuntu Setup\e[0m"
url="installfest.panic.systems"
ubuntu_update
ubuntu_settings
background_wallpaper
terminal_install
application_install
application_shortcuts

[[ -f "setup.sh" ]] && rm setup.sh

echo
