dotfiles/config/scripts/install-arch

160 lines
4.4 KiB
Bash
Executable file

#!/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
if ! pacman -Q yay &> /dev/null
then
mkdir -p $HOME/.cache/yay/yay
cd $HOME/.cache/yay/yay
curl -L https://aur.archlinux.org/cgit/aur.git/snapshot/yay.tar.gz | tar xzvf
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)
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
# 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"