#!/bin/bash -e # Enable multilib & add extra repos {{{ sudo cp /etc/pacman.conf{,.bak} sudo sed -i /etc/pacman.conf \ -e 's/^#\(Color\)/\1\nILoveCandy/' \ -e '/\[multilib\]/,/Include/s/^#//' \ -e '$ a [quarry]\nServer = https://pkgbuild.com/~anatolik/quarry/x86_64/' \ -e '$ a \n[chaotic-aur]\nServer = https://repo.kitsuna.net/x86_64/' \ -e '$ a Server = http://lonewolf-builder.duckdns.org/chaotic-aur/x86_64/' \ -e '$ a Server = http://chaotic.bangl.de/chaotic-aur/x86_64/' # }}} # Update system and install basic packages {{{ sudo pacman-key --init sudo pacman-key --populate archlinux sudo pacman-key --recv-keys 0x3056513887B78AEB sudo pacman-key --refresh-keys sudo pacman -Syyu --noconfirm sudo pacman -S git aria2 reflector yay --noconfirm # }}} # Clone dotfiles {{{ (cd /tmp; yay -G dotfiles.sh-git) pushd /tmp/dotfiles.sh-git >/dev/null patch -n PKGBUILD <<'EOF' 12,13c12,14 < source=("${pkgname%-git}::git+$url") < md5sums=("SKIP") --- > source=("${pkgname%-git}::git+$url" "sparse-edit.patch::$url/pull/10.diff") > md5sums=("SKIP" "6ecafcc0206a730aa40cc751435922ef") > prepare() (git -C "$srcdir/${pkgname%-git}" apply "$srcdir/sparse-edit.patch") EOF makepkg -sic popd >/dev/null rm -r /tmp/dotfiles.sh-git dotfiles clone https://github.com/ObserverOfTime/home.files \ "${XDG_CONFIG_HOME:=$HOME/.config}/dotfiles" dotfiles checkout --force # }}} # Rank pacman mirrors {{{ sudo cp /etc/pacman.d/mirrorlist{,.bak} REF_OPTS=('--country GR' '--country DE' '--country FR' '--protocol https' '--protocol ftp' '--age 12' '--sort rate' '--save /etc/pacman.d/mirrorlist') # shellcheck disable=SC2068 sudo reflector ${REF_OPTS[@]} sudo mkdir -p /etc/pacman.d/hooks sudo tee /etc/pacman.d/hooks/mirrorupgrade.hook >/dev/null </dev/null <> "$DIRECTORY/ffmpeg" printf 'complete -o default -F _clang clang++\n' >> "$DIRECTORY/clang" printf 'complete -o default -F __bundle bundler\n' >> "$DIRECTORY/bundle" for key in "${!ALIASES[@]}"; do ln -fvs "$DIRECTORY/${ALIASES[$key]}" "$DIRECTORY/$key" done grunt --completion=bash > "$DIRECTORY/grunt" gulp --completion=bash > "$DIRECTORY/gulp" pandoc --bash-completion > "$DIRECTORY/pandoc" poetry completions bash > "$DIRECTORY/poetry" ln -fvs "$(gem contents travis | grep 'travis.sh$')" "$DIRECTORY/travis" ln -fvs /usr/share/fzf/completion.bash "$DIRECTORY/fzf" unset DIRECTORY ALIASES # }}} # Configure grub {{{ THEME=/boot/grub/themes/Lain git clone https://git.disroot.org/chronobserver/grub2-theme-lain \ /tmp/grub2-theme-lain --depth=1 rm -rf /tmp/grub2-theme-lain/{.git*,README.md} sudo cp -r /tmp/grub2-theme-lain "$THEME" sudo cp /etc/default/grub{,.bak} sudo tee /etc/default/grub >/dev/null </dev/null <<< $'[Theme]\nCurrent=patema' # }}} # Make maven use XDG_CACHE_HOME {{{ sudo sed -i /opt/maven/conf/settings.xml \ -e "\%xsi:schema%a \\ \\ \${env.XDG_CACHE_HOME}/maven/repository\\ " # }}} # Setup neovim {{{ nvim --headless +q >/dev/null nvim --headless +PlugInstall +qa >/dev/null # }}} # Set firefox update hook {{{ sudo tee /etc/pacman.d/hooks/firefox.hook >/dev/null </dev/null </dev/null <<'EOF' KEYMAP=us FONT=ter-v22n FONT_MAP=8859-2 EOF sudo sed -i /etc/mkinitcpio.conf \ -re 's/(^HOOKS="[^"]*)"/\1 consolefont"/' sudo mkinitcpio -p linux-zen # }}} # vim:fdm=marker:fdl=0: