helm/os/arch/install

103 lines
2.6 KiB
Bash
Executable file

#!/usr/bin/env bash
PWD=$(dirname $0)
pacman='sudo pacman --needed --noconfirm'
pacaur='pacaur --needed --noconfirm'
exists() { command -v "$1" >/dev/null; }
########################################
#
# Bootstrap
#
########################################
if ! echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1; then
>&2 echo "No internet connection detected!"
exit 1
elif [[ $(id -u) == 0 ]]; then
>&2 echo "Should not be run as root!"
exit 2
fi
# Essential utilities
$pacman -S wget curl tree rsync openssh dnsutils
# Set up pacaur (AUR helper)
if ! exists pacaur; then
pushd $(mktemp -d)
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=cower && makepkg --skippgpcheck -sri
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pacaur && makepkg --skippgpcheck -sri
TEMP=$(pwd)
popd
rm -rf "$TEMP"
if ! exists pacaur; then
>&2 echo "Pacaur wasn't successfully installed"
exit 3
fi
fi
## Bootstrap
# Helpful utilities
$pacaur -S the_silver_searcher fasd tmux hub bc keybase cronie
sudo systemctl enable cronie.service
if [[ -z $SERVER ]]; then
# crontab
if exists crontab; then
[[ -f $PWD/crontab ]] && crontab $PWD/crontab
fi
# desktop essentials
$pacman -S xorg-init xorg-server
# fontconfig
if ! grep infinality /etc/pacman.conf >/dev/null; then
echo <<EOL | sudo tee -a /etc/pacman.conf
[infinality-bundle]
Server = http://bohoomil.com/repo/\$arch
[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/\$arch
[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts
EOL
sudo pacman-key -r 962DDE58
sudo pacman-key --lsign-key 962DDE58
sudo pacman -Sy
$pacaur -S ttf-droid-ib ttf-opensans otf-fira-{mono,sans}-ibx terminus-font-td1
fi
# Window manager
$pacaur -S bspwm sxhkd compton
# Taskbar
$pacaur -S lemonbar-xft-git siji-git xtitle sutils-git dunst libnotify
# Music player
$pacaur -S mpd mpc ncmpcpp
# Utilities
$pacaur -S rofi feh maim slop neofetch-git pass youtube-dl xdotool
# Apps
$pacaur -S redshift chromium termite
# Power events from users
$pacaur -S polkit
# Audio
$pacaur -S alsa-utils
systemctl enable --user redshift.service
systemctl enable --user rslsync.service
systemctl enable --user mpd.service
# FIXME Install pacman hooks
hookdest=/etc/pacman.d/hooks
mkdir -p "$hookdest"
for hook in $PWD/$hookdest/*.hook; do
[[ -f $hookdest/${hook##*/} ]] || sudo ln -svf $hook $hookdest/
done
fi