#!/bin/bash

# Set version of the Regata OS
new_version=20.1.23

detect_system_lang_1=$(grep -r LANG /home/*/.config/plasma-localerc)
detect_system_lang_2=$(cat /home/*/.config/user-dirs.locale)

if [ ! -z $detect_system_lang_1 ]; then
	system_lang=$(echo $detect_system_lang_1)
elif [ ! -z $detect_system_lang_2 ]; then
	system_lang=$(echo $detect_system_lang_2)
else
	"The user's language cannot be detected."
fi

if [[ $system_lang == *"pt"* ]]; then
	variant=$(grep -r "Variant=" /etc/xdg/kcm-about-distrorc | awk '{print $1}')
	old_version=$(grep -r "Variant=" /etc/xdg/kcm-about-distrorc | awk '{print $2}')

	if [[ $(echo $variant) == *"Variant"* ]]; then
		sed -i "s/$(echo $variant)/Variant=Versão/" "/etc/xdg/kcm-about-distrorc"
		sed -i "s/$(echo $old_version)/$(echo $new_version)/" "/etc/xdg/kcm-about-distrorc"
	else
		echo "Variant=Versão $new_version" >> "/etc/xdg/kcm-about-distrorc"
	fi

else
	variant=$(grep -r "Variant=" /etc/xdg/kcm-about-distrorc | awk '{print $1}')
	old_version=$(grep -r "Variant=" /etc/xdg/kcm-about-distrorc | awk '{print $2}')

	if [[ $(echo $variant) == *"Variant"* ]]; then
		sed -i "s/$(echo $variant)/Variant=Version/" "/etc/xdg/kcm-about-distrorc"
		sed -i "s/$(echo $old_version)/$(echo $new_version)/" "/etc/xdg/kcm-about-distrorc"
	else
		echo "Variant=Version $new_version" >> "/etc/xdg/kcm-about-distrorc"
	fi
fi

# Hide YaST .desktop files
if [[ $(grep -r "NoDisplay=true" "/usr/share/applications/org.opensuse.yast.Packager.desktop") != *"NoDisplay=true"* ]]; then
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.Snapper.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.CheckMedia.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.SWSingle.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.SWSource.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.OnlineUpdate.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/org.opensuse.yast.Packager.desktop"
	echo "NoDisplay=true" >> "/usr/share/applications/mintstick-kde.desktop"
fi

# Fix Insync and possibly other programs
if test ! -e /etc/pki/tls/certs/ca-bundle.crt ; then
	mkdir -p /etc/pki/tls/certs
	ln -s /etc/ssl/ca-bundle.pem /etc/pki/tls/certs/ca-bundle.crt
fi

# Fix pulseaudio
fix_pulse=$(cat /etc/pulse/system.pa)
if [[ $fix_pulse != *"load-module module-allow-passthrough"* ]]; then
	echo "load-module module-allow-passthrough" >> /etc/pulse/system.pa
fi

# Fix Kworker consuming a lot of CPU
echo disable > "/sys/firmware/acpi/interrupts/gpe06"
echo disable > "/sys/firmware/acpi/interrupts/gpe05"

# Set CPU governor
cpufreq_driver=$(cpupower frequency-info | grep driver | awk '{print $2}')
if [[ $(echo "$cpufreq_driver") != *"intel_pstate"* ]]; then
  cpupower frequency-set -g ondemand
fi

# Detect hybrid graphics
#Detect "device 2" and configure xorg
device=$(inxi -G | egrep -i "Card-2|Device-2")

if [[ $(echo "$device") == *"AMD"* ]]; then
	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

elif [[ $(echo "$device") == *"ATI"* ]]; then
	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

elif [[ $(echo "$device") == *"NVIDIA"* ]]; then
	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

elif [[ $(echo "$device") == *"GeForce"* ]]; then
	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

elif [[ $(echo "$device") == *"Intel"* ]]; then
	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

else
	# Detect driver and configure xorg
	driver=$(lshw -class display)

	if [[ $(echo $driver) == *"driver=intel"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/etc/X11/xorg.conf.d/20-intel.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/usr/share/X11/xorg.conf.d/20-intel.conf"

	elif [[ $(echo $driver) == *"driver=i915"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/etc/X11/xorg.conf.d/20-intel.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/usr/share/X11/xorg.conf.d/20-intel.conf"

	elif [[ $(echo $driver) == *"driver=i965"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/etc/X11/xorg.conf.d/20-intel.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/usr/share/X11/xorg.conf.d/20-intel.conf"

	elif [[ $(echo $driver) == *"driver=iris"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/etc/X11/xorg.conf.d/20-intel.conf"
    	cp -f "/usr/share/regataos/gpu/20-intel.conf" "/usr/share/X11/xorg.conf.d/20-intel.conf"

	elif [[ $(echo $driver) == *"driver=nvidia"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-nvidia.conf" "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	cp -f "/usr/share/regataos/gpu/20-nvidia.conf" "/usr/share/X11/xorg.conf.d/20-nvidia.conf"

	elif [[ $(echo $driver) == *"driver=amdgpu"* ]]; then
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	cp -f "/usr/share/regataos/gpu/20-amdgpu.conf" "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	cp -f "/usr/share/regataos/gpu/20-amdgpu.conf" "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"

	else
    	rm -f "/etc/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-amdgpu.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-radeon.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-intel.conf"
    	rm -f "/etc/X11/xorg.conf.d/20-nvidia.conf"
    	rm -f "/usr/share/X11/xorg.conf.d/20-nvidia.conf"
    	echo "ERROR: Unsupported VGA controller"
	fi
fi

# Fix apps Qt4
if test -e "/etc/xdg/Trolltech.conf" ; then
	cp -f /etc/xdg/Trolltech.conf /home/*/.config/Trolltech.conf
	chmod 777 /home/*/.config/Trolltech.conf
fi

# Verify that the system is installed on the machine
if test ! -e "/usr/bin/calamares"; then
	# Remove the shortcut for the installer
	if test -e "/usr/share/applications/YaST2/live-installer.desktop" ; then
		rm -f "/usr/share/applications/YaST2/live-installer.desktop"
    fi
fi

# Fix directory "/tmp/apps-scripts"
if test ! -e "/tmp/apps-scripts"; then
  	mkdir -p /tmp/apps-scripts
  	chmod 777 /tmp/apps-scripts
else
  	chmod 777 /tmp/apps-scripts
fi

# Fix directory "/tmp/progressbar-gcs"
if test ! -e "/tmp/progressbar-gcs"; then
  	mkdir -p /tmp/progressbar-gcs
  	chmod 777 /tmp/progressbar-gcs
else
  	chmod 777 /tmp/progressbar-gcs
fi

exit 0;
