#!/usr/bin/env bash

# Git for /etc
sudo pacman -S etckeeper --needed
(cd /etc/; sudo git config user.name "etckeeper on $(cat /etc/hostname)"; sudo git config user.email "etckeeper@$(cat /etc/hostname)")
[ ! -d /etc/.git ] && sudo etckeeper init
sudo etckeeper commit "install-arch script: begin"

# Install yay
# TODO Use yay-bin
sudo pacman -S base-devel --needed
if ! pacman -Q yay-bin &> /dev/null
then
    mkdir -p $HOME/.cache/yay
    cd $HOME/.cache/yay
    curl -L https://aur.archlinux.org/cgit/aur.git/snapshot/yay-bin.tar.gz | tar xzvf -
    cd yay-bin
    makepkg -si
fi

# Keyboard layout
echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us_qwerty-fr"
EndSection
' | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf

# Backlight (for Intel Devices)
if [ -d /sys/class/backlight/intel_backlight ]
then
    sudo pacman -S xf86-video-intel --needed
    echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

    Section "Device"
        Identifier  "Intel Graphics" 
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
    EndSection
    ' | sudo tee /etc/X11/xorg.conf.d/20-intel.conf
fi

# Touchpad
echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    Option "Tapping" "on"
EndSection
' | sudo tee /etc/X11/xorg.conf.d/30-touchpad.conf

# Disable joystick as mouse
echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

Section "InputClass"
        Identifier "joystick catchall"
        MatchIsJoystick "on"
        MatchDevicePath "/dev/input/event*"
        Driver "joystick"
        Option "StartKeysEnabled" "False"       #Disable mouse
        Option "StartMouseEnabled" "False"      #support
EndSection
' | sudo tee /etc/X11/xorg.conf.d/50-joystick.conf

# Install same rules with nvidia-xrun
if [ -d /etc/X11/nvidia-xorg.conf.d ]
then
    function link { # filename
        sudo ln -s ../xorg.conf.d/$1 /etc/X11/nvidia-xorg.conf.d/$1
    }
    link 00-keyboard.conf
    link 20-intel.conf # Yep
    link 30-touchpad.conf
    link 50-joystick.conf
fi
exit 0

# Uninstall Manjaro's pamac
if pacman -Q pamac &> /dev/null
then
    sudo pacman -Rsc pamac --noconfirm
fi

# Ccache
sudo pacman -S ccache --needed
sudo sed 's|BUILDENV=\(.\+\)!ccache\(.\+\)|BUILDENV=\1ccache\2|' /etc/makepkg.conf -i

# Makepkg config
sudo sed 's|BUILDENV=\(.\+\)!color\(.\+\)|BUILDENV=\1color\2|' /etc/makepkg.conf -i

# Pacman config
sudo sed 's|#Color|Color\nILoveCandy|' /etc/pacman.conf -i

# TLP
sudo pacman -S tlp --needed
# sudo sed 's|SATA_LINKPWR_ON_BAT=min_power|SATA_LINKPWR_ON_BAT=max_performance|' /etc/default/tlp -i
sudo systemctl enable tlp.service tlp-sleep.service --now
sudo systemctl disable systemd-rfkill.service systemd-rfkill.socket
sudo tlp start

# Numlock on boot
echo "# File wrote by ~/.dotfiles/config/scripts/install-arch

[Service]
ExecStartPre=/bin/sh -c 'setleds +num < /dev/%I'
" | sudo tee /etc/systemd/system/getty@.service.d/override.conf

# Makeflags
# I'd rather have updates not take my whole CPU
# sudo sed "s|#MAKEFLAGS=\"-j2\"|MAKEFLAGS=\"-j$(nproc)\"|" /etc/makepkg.conf -i

# DHCPCD
sudo pacman -S dhcpcd --needed
sudo systemctl enable dhcpcd --now

# Time synchronisation
sudo pacman -S chrony --needed
echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

server 0.europe.pool.ntp.org offline
server 1.europe.pool.ntp.org offline
server 2.europe.pool.ntp.org offline
server 3.europe.pool.ntp.org offline
driftfile /etc/chrony.drift
rtconutc
rtcsync' | sudo tee /etc/chrony.conf
sudo systemctl enable chronyd --now
echo '# File wrote by ~/.dotfiles/config/scripts/install-arch

if $if_up; then
	chronyc online
elif $if_down; then
	chronyc offline
fi
' | sudo tee /etc/dhcpcd.exit-hook

# Grub other OS
sudo pacman -S os-prober --needed
sudo grub-mkconfig -o /boot/grub/grub.cfg

# Manual

echo '
# Hibernation:
sudo blkid | grep 'TYPE="swap"'
sudoedit /etc/default/grub
# Add resume=UUID=<UUID-of-swap-partition> to GRUB_CMDLINE_LINUX_DEFAULT
sudo grub-mkconfig -o /boot/grub/grub.cfg
'

echo '
# wpa_supplicant (Wi-Fi)
sudo pacman -S wpa_supplicant
ip link
[ ! -f /etc/wpa_supplicant/wpa_supplicant.conf ] && wpa_passphrase 'DUMMY' 'JustToHaveAConfigFiel' > /etc/wpa_supplicant/wpa_supplicant.conf
# Replace wlo1 with the correct interface
sudo systemctl start wpa_supplicant@wlo1.service
sudo ln -s wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlo1.conf
'

sudo etckeeper commit "install-arch script: end"