#!/bin/bash # ___ _____ ___ _ _____ # / _ \_ _|_ _| | | ____| # | | | || | | || | | _| # | |_| || | | || |___| |___ # \__\_\|_| |___|_____|_____| # # by Stephan Raabe (2023) # ------------------------------------------------------ # Install Script for Qtile # ------------------------------------------------------ # ------------------------------------------------------ # Confirm Start # ------------------------------------------------------ clear echo " ___ _____ ___ _ _____ " echo " / _ \_ _|_ _| | | ____| " echo "| | | || | | || | | _| " echo "| |_| || | | || |___| |___ " echo " \__\_\|_| |___|_____|_____| " echo " " echo "by Stephan Raabe (2023)" echo "------------------------------------------------------" echo "" while true; do read -p "DO YOU WANT TO START THE INSTALLATION NOW? (Yy/Nn): " yn case $yn in [Yy]* ) echo "Installation started." break;; [Nn]* ) exit; break;; * ) echo "Please answer yes or no.";; esac done echo "" # ------------------------------------------------------ # Install required packages # ------------------------------------------------------ echo "" echo "-> Install main packages" packagesPacman=("qtile" "picom" "rofi" "dunst" "polybar" "rofi-calc"); # packagesYay=("brave-bin" "pfetch" "bibata-cursor-theme"); # pywal installation below # ------------------------------------------------------ # Function: Is package installed # ------------------------------------------------------ _isInstalledPacman() { package="$1"; check="$(sudo pacman -Qs --color always "${package}" | grep "local" | grep "${package} ")"; if [ -n "${check}" ] ; then echo 0; #'0' means 'true' in Bash return; #true fi; echo 1; #'1' means 'false' in Bash return; #false } _isInstalledYay() { package="$1"; check="$(yay -Qs --color always "${package}" | grep "local" | grep "${package} ")"; if [ -n "${check}" ] ; then echo 0; #'0' means 'true' in Bash return; #true fi; echo 1; #'1' means 'false' in Bash return; #false } # ------------------------------------------------------ # Function Install all package if not installed # ------------------------------------------------------ _installPackagesPacman() { toInstall=(); for pkg; do if [[ $(_isInstalledPacman "${pkg}") == 0 ]]; then echo "${pkg} is already installed."; continue; fi; toInstall+=("${pkg}"); done; if [[ "${toInstall[@]}" == "" ]] ; then # echo "All pacman packages are already installed."; return; fi; printf "Packages not installed:\n%s\n" "${toInstall[@]}"; sudo pacman --noconfirm -S "${toInstall[@]}"; } _installPackagesYay() { toInstall=(); for pkg; do if [[ $(_isInstalledYay "${pkg}") == 0 ]]; then echo "${pkg} is already installed."; continue; fi; toInstall+=("${pkg}"); done; if [[ "${toInstall[@]}" == "" ]] ; then # echo "All packages are already installed."; return; fi; printf "AUR ackages not installed:\n%s\n" "${toInstall[@]}"; yay --noconfirm -S "${toInstall[@]}"; } # ------------------------------------------------------ # Install required packages # ------------------------------------------------------ _installPackagesPacman "${packagesPacman[@]}"; # _installPackagesYay "${packagesYay[@]}"; # ------------------------------------------------------ # Create symbolic links # ------------------------------------------------------ echo "-> Create symbolic link for startx" rm ~/.xinitrc ln -s ~/dotfiles/qtile/.xinitrc ~/.xinitrc echo "DONE!"