103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			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 sxiv maim slop-opengl 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
 | 
						|
    sudo mkdir -p "$hookdest"
 | 
						|
    for hook in $PWD/$hookdest/*.hook; do
 | 
						|
        [[ -f $hookdest/${hook##*/} ]] || sudo ln -svf $hook $hookdest/
 | 
						|
    done
 | 
						|
fi
 |