Let my HOME alone 1/2
This commit is contained in:
parent
2ae37e902e
commit
a83e45df5e
94 changed files with 328 additions and 58 deletions
105
config/scripts/install-arch
Executable file
105
config/scripts/install-arch
Executable file
|
@ -0,0 +1,105 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Setups an Arch Linux system the way I like it
|
||||
# (requires sudo)
|
||||
|
||||
if ! which pacman &> /dev/null; then
|
||||
echo "This is not an Arch Linux system (or pacman isn't installed)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Don't ask for things that are already there
|
||||
if which aurman &> /dev/null; then
|
||||
AURMAN=1
|
||||
fi
|
||||
if [ -z $AURMAN ]; then
|
||||
prompt "Do you want aurman on this machine?"
|
||||
AURMAN=$?
|
||||
fi
|
||||
# COMMON
|
||||
|
||||
# Install packages if they aren't installed
|
||||
function inst {
|
||||
# Could also use --needed but, meh
|
||||
for pkg in $*; do
|
||||
pacman -Q $pkg &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
sudo pacman -S $pkg --noconfirm
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Install package from PKGBUILD file
|
||||
function installPKGBUILD { # url
|
||||
# TODO Download snapshots
|
||||
TMP_DIR="$(mktemp -d /tmp/pkgbuild.XXXXXXXXXX)"
|
||||
cd "$TMP_DIR"
|
||||
wget "$1" -O PKGBUILD
|
||||
makepkg -si --noconfirm
|
||||
cd -
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
# SYSTEM
|
||||
inst wget
|
||||
|
||||
# Aur
|
||||
|
||||
pacman -Q aurman &> /dev/null
|
||||
if [[ $AURMAN == 1 && $? == 1 ]]; then
|
||||
gpg --recv-keys 465022E743D71E39
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=aurman"
|
||||
fi
|
||||
|
||||
# Git for /etc
|
||||
inst etckeeper
|
||||
sudo etckeeper init
|
||||
(cd /etc/; sudo git config user.name "etckeeper on $(cat /etc/hostname)"; sudo git config user.email "etckeeper@$(cat /etc/hostname)")
|
||||
sudo etckeeper commit "~/.dotfiles/scripts/install-arch commit"
|
||||
|
||||
|
||||
|
||||
# Uninstall Manjaro's pamac
|
||||
if pacman -Q pamac &> /dev/null ; then
|
||||
sudo pacman -Rsc pamac --noconfirm
|
||||
fi
|
||||
|
||||
# Ccache
|
||||
inst ccache
|
||||
sudo sed 's|BUILDENV=\(.\+\)!ccache\(.\+\)|BUILDENV=\1ccache\2|' /etc/makepkg.conf -i
|
||||
|
||||
# TLP
|
||||
inst tlp
|
||||
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
|
||||
sudo systemctl disable systemd-rfkill.service systemd-rfkill.socket
|
||||
sudo tlp start
|
||||
|
||||
# Numlock on boot
|
||||
echo -e "[Service]\nExecStartPre=/bin/sh -c 'setleds +num < /dev/%I'" | sudo systemctl edit getty\@.service
|
||||
|
||||
# Makeflags
|
||||
sudo sed "s|#MAKEFLAGS=\"-j2\"|MAKEFLAGS=\"-j$(nproc)\"|" /etc/makepkg.conf -i
|
||||
|
||||
# Time synchronisation
|
||||
inst ntp
|
||||
sudo systemctl start ntpd
|
||||
sudo systemctl enable ntpd
|
||||
|
||||
# MANUAL
|
||||
|
||||
# Hibernation
|
||||
# Add resume=UUID=<UUID-of-swap-partition> to GRUB_CMDLINE_LINUX_DEFAULT and run `sudo grub-mkconfig -o /boot/grub/grub.cfg`
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue