1#!/bin/bash
2
3# Stage 2
4ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
5hwclock --systohc
6timedatectl set-local-rtc 1
7sed 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
8locale-gen
9echo "LANG=en_US.UTF-8" > /etc/locale.conf
10echo "linspc" > /etc/hostname
11mkinitcpio -P
12passwd
13systemctl enable sddm
14systemctl enable NetworkManager
15sed 's/#GRUB_DISABLE_OS_PROBER=false/GRUB_DISABLE_OS_PROBER=false/' /etc/default/grub
16grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
17grub-mkconfig -o /boot/grub/grub.cfg
18useradd -m -G wheel -s /usr/bin/fish lin
19passwd lin
20echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
21#NVIDIA Specific shenanigans
22pacman -S nvidia-open-dkms nvidia-utils
23mkdir /etc/pacman.d/
24mkdir /etc/pacman.d/hooks
25echo "" > /etc/pacman.d/hooks/nvidia.hook
26echo "[Trigger]" >> /etc/pacman.d/hooks/nvidia.hook
27echo "Operation=Install" >> /etc/pacman.d/hooks/nvidia.hook
28echo "Operation=Upgrade" >> /etc/pacman.d/hooks/nvidia.hook
29echo "Operation=Remove" >> /etc/pacman.d/hooks/nvidia.hook
30echo "Type=Package" >> /etc/pacman.d/hooks/nvidia.hook
31echo "Target=nvidia-open-dkms" >> /etc/pacman.d/hooks/nvidia.hook
32echo "Target=linux-zen" >> /etc/pacman.d/hooks/nvidia.hook
33echo "Target=linux" >> /etc/pacman.d/hooks/nvidia.hook
34echo "Target=nvidia-open" >> /etc/pacman.d/hooks/nvidia.hook
35echo "Target=nvidia" >> /etc/pacman.d/hooks/nvidia.hook
36echo "" >> /etc/pacman.d/hooks/nvidia.hook
37echo "[Action]" >> /etc/pacman.d/hooks/nvidia.hook
38echo "Description=Updating NVIDIA module in initcpio" >> /etc/pacman.d/hooks/nvidia.hook
39echo "Depends=mkinitcpio" >> /etc/pacman.d/hooks/nvidia.hook
40echo "When=PostTransaction" >> /etc/pacman.d/hooks/nvidia.hook
41echo "NeedsTargets" >> /etc/pacman.d/hooks/nvidia.hook
42echo "Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'" >> /etc/pacman.d/hooks/nvidia.hook
43echo "Remove kms from the HOOKS array in /etc/mkinitcpio.conf and regenerate the initramfs. This will prevent the initramfs from containing the nouveau module making sure the kernel cannot load it during early boot. The nvidia-utils package contains a file which blacklists the nouveau module once you reboot."
44echo "You can add nvidia, nvidia_modeset, nvidia_uvm and nvidia_drm to the initramfs."
45echo "After all of that, run \"mkinitcpio -P\""
46echo "Then \"exit\""
47echo "and \"reboot\" (don't forget to unplug this usb once you do and select Arch as your first boot option)"
48