#!/bin/bash

# AstraLinux SE 1.6, AstraLinux CE 2.12, Ubuntu 18.04, nvidia binary(closed,proprietary) driver installer
# =======================================================================================================
# Author: Alexey Kovin <4l3xk3@gmail.com>
# All rights reserved
# Russia, Electrostal, 2018

# Localization
# ------------
function echo_en () {
    if [ x"$LANG" != "xru_RU.UTF-8" ]; then
        echo "$1"
    fi
}

function echo_ru () {
    if [ x"$LANG" = "xru_RU.UTF-8" ]; then
        echo "$1"
    fi
}

# Check EUID
# ----------
echo "EUID=$EUID"
if [ x"$EUID" != "x0" ]; then
    echo_ru "Запустите программу с правами администратора системы (sudo) (root) .."
    echo_en "Launch program as administrator (sudo) (root) .."
    exit 1
fi

# Xorg config
# -----------
echo_ru "Удаление xorg.conf .."
echo_en "Removing xorg.conf .."
if [ -f /etc/X11/xorg.conf ]; then
    mv -f /etc/X11/xorg.conf /etc/X11/backup-$$-xorg.conf-backup
    echo_ru "/etc/X11/xorg.conf удален, резервная копия: /etc/X11/backup-$$-xorg.conf-backup"
    echo_en "/etc/X11/xorg.conf removed, backup version: /etc/X11/backup-$$-xorg.conf-backup"
else
    echo_ru "/etc/X11/xorg.conf"
    echo_en ""
fi

dpkg-reconfigure xserver-xorg

CHVAR="1"
echo_ru "Выберите вариант установки:"
echo_ru "1 - 340 - Старые видеоадаптеры Nvidia"
echo_ru "2 - 390 - Средние видеоадаптеры Nvidia"
echo_ru "3 - 410 - Новые видеоадаптеры Nvidia"
echo_en "Choose install variant:"
echo_en "1 - 340 - Old Nvidia videocards"
echo_en "2 - 390 - Middle Nvidia videocards"
echo_en "3 - 410 - New Nvidia videocards"

read CHVAR

case $CHVAR in
    1)
        apt install --yes --force-yes nvidia-340 nvidia-settings
        ;;
    2)
        apt install --yes --force-yes nvidia-driver-390 nvidia-settings xserver-xorg-video-nvidia-390
        ;;
    3)
        apt install --yes --force-yes nvidia-driver-410 nvidia-settings xserver-xorg-video-nvidia-410
        ;;
    *)
        apt install --yes --force-yes nvidia-driver-410 nvidia-settings xserver-xorg-video-nvidia-410
        ;;
esac

# Steam i386 libs path fix
ln -s /usr/lib32/i386-linux-gnu/ /usr/lib/i386-linux-gnu

echo blacklist nouveau >> /etc/modprobe.d/blacklist.conf
echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist.conf
sed -i -e "s/^[[:space:]]*nouveau[[:space:]]\+modeset[[:space:]]*=[[:space:]]*1/#nouveau modeset=1/" /etc/initramfs-tools/modules

update-initramfs -u -k all

echo_ru "Перезагрузите компьютер, чтобы изменения вступили в силу"
echo_en "Reboot computer to apply changes"
