#!/bin/bash

# Set version of the Regata OS
new_version=22.0.1

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

# Statistics
iso_ver=22.00.01
if test -e "/usr/share/regataos/iso-infos.txt"; then
  iso_ver_file="cat /usr/share/regataos/iso-infos.txt | grep iso-version | awk '{print $2}'"
  if [[ $(echo $iso_ver_file) != *"$(echo $iso_ver)"* ]]; then
    sed -i "s/$(echo $iso_ver_file)/$(echo $iso_ver)/" "/usr/share/regataos/iso-infos.txt"
  fi

else
cat > "/usr/share/regataos/iso-infos.txt" << STATISTICS
iso-type: standard
iso-version: $iso_ver
id: 
STATISTICS
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
sed -i '/MimeType/d' "/usr/share/applications/org.opensuse.yast.Packager.desktop"
sed -i '/MimeType/d' "/usr/share/applications/yast2-packager.desktop"

# Hide printer .desktop files
if [[ $(grep -r "NoDisplay=true" "/usr/share/applications/system-config-printer.desktop") != *"NoDisplay=true"* ]]; then
	echo "NoDisplay=true" >> "/usr/share/applications/system-config-printer.desktop"
fi

if [[ $(grep -r "NoDisplay=true" "/usr/share/applications/YaST2/org.opensuse.yast.Printer.desktop") != *"NoDisplay=true"* ]]; then
	echo "NoDisplay=true" >> "/usr/share/applications/YaST2/org.opensuse.yast.Printer.desktop"
fi

# Create kcm_printer_manager.desktop for app menu
if test -e "/usr/share/applications/kcm_printer_manager.desktop"; then
  ln -sf "/usr/share/kservices5/kcm_printer_manager.desktop" "/usr/share/applications/kcm_printer_manager.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"

# Fix for the ping command
chmod 755 /bin/ping

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

if [[ $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
    rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    rm -f /usr/share/X11/xorg.conf.d/20-nouveau.conf

elif [[ $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
    rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    rm -f /usr/share/X11/xorg.conf.d/20-nouveau.conf

elif [[ $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
    rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    rm -f /usr/share/X11/xorg.conf.d/20-nouveau.conf

elif [[ $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
    rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    rm -f /usr/share/X11/xorg.conf.d/20-nouveau.conf

elif [[ $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
    rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    rm -f /usr/share/X11/xorg.conf.d/20-nouveau.conf

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

	if [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 [[ $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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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

	elif [[ $driver == *"driver=nouveau"* ]]; 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
    	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-nouveau.conf /etc/X11/xorg.conf.d/20-nouveau.conf
    	cp -f /usr/share/regataos/gpu/20-nouveau.conf /usr/share/X11/xorg.conf.d/20-nouveau.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
    	rm -f /etc/X11/xorg.conf.d/20-nouveau.conf
    	rm -f /usr/share/X11/xorg.conf.d/20-nouveau.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 kernel name in grub
kernel_version=$(uname -r)
kernel_fixed_version1=$(uname -r | sed 's/\./\\./g')
kernel_fixed_version2=$(uname -r | cut -d"-" -f -1)
check_kernel_version=$(grep -r "with Linux $kernel_version" /boot/grub2/grub.cfg)
if [[ $check_kernel_version == *"with Linux $kernel_version"* ]]; then
  sed -i "s/with Linux $kernel_fixed_version1/with Linux $kernel_fixed_version2/g" "/boot/grub2/grub.cfg"
fi

exit 0;
