#!/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
set -ue
. gettext.sh
export TEXTDOMAINDIR=/usr/share/locale
export TEXTDOMAIN="astra-nvidia-install"

# Check EUID
# ----------
echo "EUID=$EUID"
if [ x"$EUID" != "x0" ]; then
    gettext "Launch program as administrator (sudo) (root) .."; echo
    exit 1
fi

# Xorg config
# -----------
gettext "Removing xorg.conf .."; echo
if [ -f /etc/X11/xorg.conf ]; then
    mv -f /etc/X11/xorg.conf /etc/X11/backup-$$-xorg.conf-backup
    eval_gettext '/etc/X11/xorg.conf removed, backup version: /etc/X11/backup-$$-xorg.conf-backup'; echo
fi

dpkg-reconfigure xserver-xorg

CHVAR="1"
gettext "Choose install variant:"; echo
gettext "1 - 340 - Old Nvidia videocards"; echo
gettext "2 - 390 - Middle Nvidia videocards"; echo
gettext "3 - 410 - New Nvidia videocards"; echo

        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

gettext "Reboot computer to apply changes"; echo
