diff --git a/Arch-Installer.png b/Arch-Installer.png new file mode 100644 index 0000000..32100fb Binary files /dev/null and b/Arch-Installer.png differ diff --git a/Global_functions.sh b/Global_functions.sh deleted file mode 100755 index 133b7ff..0000000 --- a/Global_functions.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Global Functions for Scripts # - -set -e - -# Set some colors for output messages -OK="$(tput setaf 2)[OK]$(tput sgr0)" -ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" -NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 166)[WARN]$(tput sgr0)" -CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) -YELLOW=$(tput setaf 3) -RESET=$(tput sgr0) - - -# Create Directory for Install Logs -if [ ! -d Install-Logs ]; then - mkdir Install-Logs -fi - -# Function for installing packages -install_package_pacman() { - # Checking if package is already installed - if pacman -Q "$1" &>/dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." - else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed - if pacman -Q "$1" &>/dev/null ; then - echo -e "${OK} $1 was installed." - else - # Something is missing, exiting to review log - echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually." - exit 1 - fi - fi -} - - -ISAUR=$(command -v yay || command -v paru) - -# Function for installing packages -install_package() { - # Checking if package is already installed - if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." - else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed - if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} $1 was installed." - else - # Something is missing, exiting to review log - echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" - exit 1 - fi - fi -} - -# Function for uninstalling packages -uninstall_package() { - # Checking if package is installed - if pacman -Qi "$1" &>> /dev/null ; then - # Package is installed - echo -e "${NOTE} Uninstalling $1 ..." - sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is uninstalled - if ! pacman -Qi "$1" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} $1 was uninstalled." - else - # Something went wrong, exiting to review log - echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log." - exit 1 - fi - fi -} \ No newline at end of file diff --git a/Installer.png b/Installer.png deleted file mode 100644 index b47d46f..0000000 Binary files a/Installer.png and /dev/null differ diff --git a/README.md b/README.md index 8420e57..d2cfc93 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ chmod +x install.sh ```

- + #### ✨ for ZSH and OH-MY-ZSH installation > installer should auto change your default shell to zsh. However, if it does not, do this @@ -94,10 +94,6 @@ source ~/.zshrc - for the install part, kindly open issue on this repo - for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues) -#### 🔧 Proper way to re-installing a particular script from install-scripts folder -- CD into Arch-Hyprland Folder and then ran the below command. -- i.e. `./install-scripts/gtk-themes` - For reinstall GTK Themes. - #### 🛣️ Roadmap: - ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE - [ ] possibly adding gruvbox themes, cursors, icons diff --git a/assets/.zshrc b/assets/.zshrc index 0cc0d55..167d176 100644 --- a/assets/.zshrc +++ b/assets/.zshrc @@ -20,7 +20,7 @@ source $ZSH/oh-my-zsh.sh # Display Pokemon-colorscripts # Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos -#pokemon-colorscripts --no-title -s -r +pokemon-colorscripts --no-title -s -r ### From this line is for pywal-colors diff --git a/install-scripts/00-base.sh b/install-scripts/00-base.sh old mode 100755 new mode 100644 index 21cf82f..07434d4 --- a/install-scripts/00-base.sh +++ b/install-scripts/00-base.sh @@ -1,30 +1,50 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# base devel # + +# https://github.com/JaKooLit base=( base-devel ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ###################################### -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log" +LOG="install-$(date +%d-%H%M%S)_base.log" +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if pacman -Q "$1" &>/dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if pacman -Q "$1" &>/dev/null ; then + echo -e "${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually." + exit 1 + fi + fi +} # Installation of main components printf "\n%s - Installing base-devel \n" "${NOTE}" for PKG1 in "${base[@]}"; do - install_package_pacman "$PKG1" | tee -a "$LOG" + install_package "$PKG1" | tee -a "$LOG" done -clear \ No newline at end of file + +# clear diff --git a/install-scripts/00-hypr-pkgs.sh b/install-scripts/00-hypr-pkgs.sh old mode 100755 new mode 100644 index a5554f8..3dd4bc4 --- a/install-scripts/00-hypr-pkgs.sh +++ b/install-scripts/00-hypr-pkgs.sh @@ -1,6 +1,6 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Hyprland Packages # + +# https://github.com/JaKooLit # edit your packages desired here. # WARNING! If you remove packages here, dotfiles may not work properly. @@ -83,19 +83,63 @@ uninstall=( mako ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log" +LOG="install-$(date +%d-%H%M%S)_hypr-pkgs.log" +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} + +# Function for uninstalling packages +uninstall_package() { + # Checking if package is installed + if pacman -Qi "$1" &>> /dev/null ; then + # Package is installed + echo -e "${NOTE} Uninstalling $1 ..." + sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is uninstalled + if ! pacman -Qi "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was uninstalled." + else + # Something went wrong, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log." + exit 1 + fi + fi +} # Installation of main components printf "\n%s - Installing hyprland packages.... \n" "${NOTE}" @@ -108,8 +152,8 @@ for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${Extra[@ fi done -# Checking if mako or dunst is installed printf "\n%s - Checking if mako or dunst are installed and removing for swaync to work properly \n" "${NOTE}" + for PKG in "${uninstall[@]}"; do uninstall_package "$PKG" 2>&1 | tee -a "$LOG" if [ $? -ne 0 ]; then diff --git a/install-scripts/Global_functions.sh b/install-scripts/Global_functions.sh deleted file mode 100755 index 133b7ff..0000000 --- a/install-scripts/Global_functions.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Global Functions for Scripts # - -set -e - -# Set some colors for output messages -OK="$(tput setaf 2)[OK]$(tput sgr0)" -ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" -NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 166)[WARN]$(tput sgr0)" -CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) -YELLOW=$(tput setaf 3) -RESET=$(tput sgr0) - - -# Create Directory for Install Logs -if [ ! -d Install-Logs ]; then - mkdir Install-Logs -fi - -# Function for installing packages -install_package_pacman() { - # Checking if package is already installed - if pacman -Q "$1" &>/dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." - else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed - if pacman -Q "$1" &>/dev/null ; then - echo -e "${OK} $1 was installed." - else - # Something is missing, exiting to review log - echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually." - exit 1 - fi - fi -} - - -ISAUR=$(command -v yay || command -v paru) - -# Function for installing packages -install_package() { - # Checking if package is already installed - if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." - else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed - if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} $1 was installed." - else - # Something is missing, exiting to review log - echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" - exit 1 - fi - fi -} - -# Function for uninstalling packages -uninstall_package() { - # Checking if package is installed - if pacman -Qi "$1" &>> /dev/null ; then - # Package is installed - echo -e "${NOTE} Uninstalling $1 ..." - sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG" - # Making sure package is uninstalled - if ! pacman -Qi "$1" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} $1 was uninstalled." - else - # Something went wrong, exiting to review log - echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log." - exit 1 - fi - fi -} \ No newline at end of file diff --git a/install-scripts/InputGroup.sh b/install-scripts/InputGroup.sh old mode 100755 new mode 100644 index b98c995..e82e37b --- a/install-scripts/InputGroup.sh +++ b/install-scripts/InputGroup.sh @@ -1,9 +1,6 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Adding users into input group # - -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -11,10 +8,18 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log" +LOG="install-$(date +%d-%H%M%S)_input.log" while true; do echo "${WARN} This script will add or remove your user from the 'input' group." @@ -31,7 +36,7 @@ while true; do sudo groupadd input # Log the creation of the 'input' group - echo "'input' group created" >> "$LOG" + echo "$(date '+%Y-%m-%d %H:%M:%S') - 'input' group created" >> "$LOG" fi # Add the user to the input group @@ -39,7 +44,7 @@ while true; do echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in." # Log the addition of the user to the 'input' group - echo "User added to 'input' group" >> "$LOG" + echo "$(date '+%Y-%m-%d %H:%M:%S') - User added to 'input' group" >> "$LOG" break # Break out of the loop if 'yes' is chosen elif [[ $choice == "n" || $choice == "N" ]]; then echo "${NOTE} No changes made. Exiting the script." @@ -48,5 +53,3 @@ while true; do echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no." fi done - -clear \ No newline at end of file diff --git a/install-scripts/bluetooth.sh b/install-scripts/bluetooth.sh old mode 100755 new mode 100644 index 4eafee4..d315953 --- a/install-scripts/bluetooth.sh +++ b/install-scripts/bluetooth.sh @@ -1,6 +1,4 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Bluetooth Stuff # blue=( bluez @@ -8,27 +6,55 @@ bluez-utils blueman ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log" +LOG="install-$(date +%d-%H%M%S)_bluetooth.log" + +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} # Bluetooth + printf "${NOTE} Installing Bluetooth Packages...\n" for BLUE in "${blue[@]}"; do install_package "$BLUE" 2>&1 | tee -a "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; } done -printf " Activating Bluetooth Services...\n" -sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG" + printf " Activating Bluetooth Services...\n" + sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG" -clear \ No newline at end of file + clear \ No newline at end of file diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh old mode 100755 new mode 100644 index 75576d6..424b153 --- a/install-scripts/dotfiles.sh +++ b/install-scripts/dotfiles.sh @@ -1,10 +1,16 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Hyprland-Dots to download from Releases # -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n" @@ -30,14 +36,14 @@ if [ -f Hyprland-Dots.tar.gz ]; then echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)." read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice if [ "$upgrade_choice" = "y" ]; then - echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${NOTE} Proceeding to download the latest release." # Delete existing directories starting with JaKooLit-Hyprland-Dots find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} + rm -f Hyprland-Dots.tar.gz printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n" else - echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${NOTE} User chose not to upgrade. Exiting..." exit 0 fi fi @@ -50,7 +56,7 @@ latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/release # Check if the tag is obtained successfully if [ -z "$latest_tag" ]; then - echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Unable to fetch the latest tag information." exit 1 fi @@ -59,7 +65,7 @@ latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots # Check if the URL is obtained successfully if [ -z "$latest_tarball_url" ]; then - echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." exit 1 fi @@ -84,12 +90,10 @@ if curl -L "$latest_tarball_url" -o "$file_name"; then # Set execute permission for copy.sh and execute it chmod +x copy.sh - ./copy.sh + ./copy.sh 2>&1 | tee -a "../install-$(date +'%d-%H%M%S')_dots.log" - echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${OK} Latest source code release downloaded, extracted, and processed successfully." else - echo -e "${ERROR} Failed to download the latest Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Failed to download the latest source code release." exit 1 fi - -clear diff --git a/install-scripts/gtk_themes.sh b/install-scripts/gtk_themes.sh index b384462..ac2f8c7 100755 --- a/install-scripts/gtk_themes.sh +++ b/install-scripts/gtk_themes.sh @@ -1,13 +1,11 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# GTK Themes & ICONS and Sourcing from a different Repo # engine=( unzip gtk-engine-murrine ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -16,12 +14,45 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log" +LOG="install-$(date +%d-%H%M%S)_themes_main.log" +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} + # installing engine needed for gtk themes for PKG1 in "${engine[@]}"; do install_package "$PKG1" 2>&1 | tee -a "$LOG" @@ -38,10 +69,10 @@ if [ -d "GTK-themes-icons" ]; then fi echo "$NOTE Cloning Tokyo Theme GTK themes and Icons repository..." 2>&1 | tee -a "$LOG" -if git clone https://github.com/JaKooLit/GTK-themes-icons.git ; then +if git clone https://github.com/JaKooLit/GTK-themes-icons.git 2>&1 | tee -a "$LOG"; then cd GTK-themes-icons chmod +x auto-extract.sh - ./auto-extract.sh + ./auto-extract.sh 2>&1 | tee -a "$LOG" cd .. echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes folders" 2>&1 | tee -a "$LOG" else diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh old mode 100755 new mode 100644 index 389dccb..ea17544 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -1,24 +1,48 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Main Hyprland Package # hypr=( hyprland ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log" +LOG="install-$(date +%d-%H%M%S)_hyprland.log" -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} # Removing other Hyprland to avoid conflict printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n" @@ -34,6 +58,6 @@ printf "${NOTE} Installing Hyprland .......\n" for HYPR in "${hypr[@]}"; do install_package "$HYPR" 2>&1 | tee -a "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; } -done + done -clear \ No newline at end of file + clear \ No newline at end of file diff --git a/install-scripts/nvidia.sh b/install-scripts/nvidia.sh old mode 100755 new mode 100644 index 413fd7f..a4af9a4 --- a/install-scripts/nvidia.sh +++ b/install-scripts/nvidia.sh @@ -1,6 +1,4 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Nvidia Stuffs # nvidia_pkg=( nvidia-dkms @@ -14,19 +12,45 @@ hypr=( hyprland ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log" +LOG="install-$(date +%d-%H%M%S)_nvidia.log" +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} # nvidia stuff printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n" @@ -84,9 +108,9 @@ if [ -f /etc/default/grub ]; then sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub # Regenerate GRUB configuration sudo grub-mkconfig -o /boot/grub/grub.cfg - echo "nvidia-drm.modeset=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG" + echo "nvidia-drm.modeset=1 added to /etc/default/grub" else - echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" 2>&1 | tee -a "$LOG" + echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" fi else echo "/etc/default/grub does not exist" @@ -113,7 +137,7 @@ if [[ $response =~ ^[Yy]$ ]]; then fi fi else - printf "${NOTE} Skipping nouveau blacklisting.\n" 2>&1 | tee -a "$LOG" + printf "${NOTE} Skipping nouveau blacklisting.\n" fi clear diff --git a/install-scripts/paru.sh b/install-scripts/paru.sh old mode 100755 new mode 100644 index cf9cbc2..78cf3d9 --- a/install-scripts/paru.sh +++ b/install-scripts/paru.sh @@ -1,27 +1,25 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Paru AUR Helper # -# NOTE: If yay is already installed, paru will not be installed # +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_paru.log" +LOG="install-$(date +%d-%H%M%S)_paru.log" # Check for AUR helper and install if not found ISAUR=$(command -v yay || command -v paru) if [ -n "$ISAUR" ]; then - printf "\n%s - AUR helper already installed, moving on..\n" "${OK}" + printf "\n%s - AUR helper was located, moving on.\n" "${OK}" else printf "\n%s - AUR helper was NOT located\n" "$WARN" printf "\n%s - Installing paru from AUR\n" "${NOTE}" diff --git a/install-scripts/pipewire.sh b/install-scripts/pipewire.sh old mode 100755 new mode 100644 index 3ea0232..b938577 --- a/install-scripts/pipewire.sh +++ b/install-scripts/pipewire.sh @@ -1,6 +1,4 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Pipewire and Pipewire Audio Stuff # pipewire=( pipewire @@ -12,20 +10,43 @@ pipewire=( ############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ############## # Set some colors for output messages -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +OK=$(tput setaf 2)[OK]$(tput sgr0) +ERROR=$(tput setaf 1)[ERROR]$(tput sgr0) +NOTE=$(tput setaf 3)[NOTE]$(tput sgr0) +WARN=$(tput setaf 166)[WARN]$(tput sgr0) +CAT=$(tput setaf 6)[ACTION]$(tput sgr0) +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log" +LOG="install-$(date +%d-%H%M%S)_bluetooth.log" ISAUR=$(command -v yay || command -v paru) +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if the package is already installed + if $ISAUR -Q "$1" &>>/dev/null; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure the package is installed + if $ISAUR -Q "$1" &>>/dev/null; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install. Please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} + # Removal of pulseaudio printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n" for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do @@ -33,7 +54,7 @@ for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do done # Disabling pulseaudio to avoid conflicts -systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG" +systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>&1 | tee -a "$LOG" # Pipewire printf "${NOTE} Installing Pipewire Packages...\n" @@ -46,5 +67,4 @@ printf "Activating Pipewire Services...\n" systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service 2>&1 | tee -a "$LOG" systemctl --user enable --now pipewire.service 2>&1 | tee -a "$LOG" - -clear \ No newline at end of file +clear diff --git a/install-scripts/rog.sh b/install-scripts/rog.sh old mode 100755 new mode 100644 index fad133d..5b3b658 --- a/install-scripts/rog.sh +++ b/install-scripts/rog.sh @@ -1,8 +1,8 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Asus ROG Laptops # -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### + + # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -10,24 +10,55 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log" +LOG="install-$(date +%d-%H%M%S)_rog.log" + +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} ### Install software for Asus ROG laptops ### -printf " Installing ASUS ROG packages...\n" -for ASUS in asusctl supergfxctl rog-control-center; do -install_package "$ASUS" 2>&1 | tee -a "$LOG" - if [ $? -ne 0 ]; then - echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log" - exit 1 - fi -done - -printf " Activating ROG services...\n" -sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG" - -clear + printf " Installing ASUS ROG packages...\n" + for ASUS in asusctl supergfxctl rog-control-center; do + install_package "$ASUS" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log" + exit 1 + fi + done + printf " Activating ROG services...\n" + sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG" +clear \ No newline at end of file diff --git a/install-scripts/sddm.sh b/install-scripts/sddm.sh old mode 100755 new mode 100644 index a72e95e..a68891f --- a/install-scripts/sddm.sh +++ b/install-scripts/sddm.sh @@ -1,6 +1,4 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# SDDM Log-in Manager # sddm=( qt5-graphicaleffects @@ -9,7 +7,7 @@ sddm=( sddm-git ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -18,10 +16,43 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log" +LOG="install-$(date +%d-%H%M%S)_sddm.log" + +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} # SDDM @@ -81,7 +112,7 @@ while [ "$valid_input" != true ]; do echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory from the current location." 2>&1 | tee -a "$LOG" fi - if git clone https://github.com/JaKooLit/simple-sddm.git; then + if git clone https://github.com/JaKooLit/simple-sddm.git 2>&1 | tee -a "$LOG"; then while [ ! -d "simple-sddm" ]; do sleep 1 done @@ -94,7 +125,7 @@ while [ "$valid_input" != true ]; do sudo mv simple-sddm /usr/share/sddm/themes/ echo -e "[Theme]\nCurrent=simple-sddm" | sudo tee "$sddm_conf_dir/10-theme.conf" &>> "$LOG" else - echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection" | tee -a "$LOG" >&2 + echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection or repository availability." | tee -a "$LOG" >&2 fi valid_input=true elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then @@ -105,4 +136,6 @@ while [ "$valid_input" != true ]; do fi done -clear + + +clear \ No newline at end of file diff --git a/install-scripts/thunar.sh b/install-scripts/thunar.sh old mode 100755 new mode 100644 index 04f9524..293fb16 --- a/install-scripts/thunar.sh +++ b/install-scripts/thunar.sh @@ -1,6 +1,4 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Thunar # thunar=( thunar @@ -10,7 +8,7 @@ ffmpegthumbnailer thunar-archive-plugin ) -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -19,29 +17,65 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log" +LOG="install-$(date +%d-%H%M%S)_thunar.log" + + +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} + +# Bluetooth -# Thunar printf "${NOTE} Installing Thunar Packages...\n" for THUNAR in "${thunar[@]}"; do install_package "$THUNAR" 2>&1 | tee -a "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; } done - # Check for existing configs and copy if does not exist -for DIR1 in Thunar xfce4; do - DIRPATH=~/.config/$DIR1 - if [ -d "$DIRPATH" ]; then - echo -e "${NOTE} Config for $DIR1 found, no need to copy." 2>&1 | tee -a "$LOG" - else - echo -e "${NOTE} Config for $DIR1 not found, copying from assets." 2>&1 | tee -a "$LOG" - cp -r assets/$DIR1 ~/.config/ && echo "Copy $DIR1 completed!" || echo "Error: Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG" - fi -done + # Check for existing config folders and backup + for DIR1 in Thunar xfce4; do + DIRPATH=~/.config/$DIR1 + if [ -d "$DIRPATH" ]; then + echo -e "${NOTE} Config for $DIR1 found, backing up." + mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG" + echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up." + fi + done + +# copying from assets +cp -r assets/xfce4 ~/.config/ && echo "Copy xfce4 completed!" || echo "Error: Failed to copy xfce4 config files." 2>&1 | tee -a "$LOG" +cp -r assets/Thunar ~/.config/ && echo "Copy Thunar completed!" || echo "Error: Failed to copy Thunar config files." 2>&1 | tee -a "$LOG" clear - - diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh old mode 100755 new mode 100644 index 3a2ee1a..80b8a9e --- a/install-scripts/xdph.sh +++ b/install-scripts/xdph.sh @@ -1,69 +1,84 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# XDG-Desktop-Portals # -xdg=( -xdg-desktop-portal-hyprland -xdg-desktop-portal-gtk -) +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log" +LOG="install-$(date +%d-%H%M%S)_xdph.log" + +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} # XDG-DESKTOP-PORTAL-HYPRLAND -for xdgs in "${xdg[@]}"; do - install_package "$xdgs" 2>&1 | tee -a "$LOG" + +for xdph in xdg-desktop-portal-hyprland; do + install_package "$xdph" 2>&1 | tee -a "$LOG" if [ $? -ne 0 ]; then echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log" exit 1 fi done - -printf "\n" printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n" sleep 1 printf "\n" -printf "${NOTE} XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! I can't remove it... sorry...\n" -while true; do - read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1 - echo - sleep 1 +printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\n" +read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1 +echo +sleep 1 - case $XDPH1 in - [Yy]) - # Clean out other portals - printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n" - # Check if packages are installed and uninstall if present - if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then - echo "Removing xdg-desktop-portal-wlr..." - sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG" - fi - if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then - echo "Removing xdg-desktop-portal-lxqt..." - sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG" - fi - break - ;; - [Nn]) - echo "no other XDG-implementations will be removed." >> "$LOG" - break - ;; - *) - echo "Invalid input. Please enter 'y' for yes or 'n' for no." - ;; - esac -done +if [[ $XDPH1 =~ ^[Yy]$ ]]; then + # Clean out other portals + printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n" + # Check if packages are installed and uninstall if present + if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then + echo "Removing xdg-desktop-portal-gnome..." + sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG + fi + if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then + echo "Removing xdg-desktop-portal-gtk..." + sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG + fi + if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then + echo "Removing xdg-desktop-portal-wlr..." + sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG + fi + if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then + echo "Removing xdg-desktop-portal-lxqt..." + sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG + fi +fi -clear +clear \ No newline at end of file diff --git a/install-scripts/yay.sh b/install-scripts/yay.sh old mode 100755 new mode 100644 index fb1f910..0083a06 --- a/install-scripts/yay.sh +++ b/install-scripts/yay.sh @@ -1,27 +1,26 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Yay AUR Helper # -# NOTE: If paru is already installed, yay will not be installed # + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_yay.log" +LOG="install-$(date +%d-%H%M%S)_yay.log" # Check for AUR helper and install if not found ISAUR=$(command -v yay || command -v paru) if [ -n "$ISAUR" ]; then - printf "\n%s - AUR helper already installed, moving on.\n" "${OK}" + printf "\n%s - AUR helper yay was located, moving on.\n" "${OK}" else printf "\n%s - AUR helper was NOT located\n" "$WARN" printf "\n%s - Installing yay from AUR\n" "${NOTE}" diff --git a/install-scripts/zsh.sh b/install-scripts/zsh.sh old mode 100755 new mode 100644 index cbbf853..cbc6f4c --- a/install-scripts/zsh.sh +++ b/install-scripts/zsh.sh @@ -1,14 +1,23 @@ #!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# zsh and oh my zsh including pokemon-color-scripts# -zsh=( -zsh -zsh-completions -) +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### + +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) + +# Set the name of the log file to include the current date and time +LOG="install-$(date +%d-%H%M%S)_zsh.log" -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### + # Determine the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -16,33 +25,47 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$SCRIPT_DIR/.." cd "$PARENT_DIR" || exit 1 -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" -# Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log" +ISAUR=$(command -v yay || command -v paru) + +# Set the script to exit on error +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + $ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG" + # Making sure package is installed + if $ISAUR -Q "$1" &>> /dev/null ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :(" + exit 1 + fi + fi +} + + +# Check if the oh-my-zsh directory exists +if [ -d "$HOME/.oh-my-zsh" ]; then + printf "${NOTE} Oh My Zsh found. Creating a backup before uninstalling...${RESET}\n" + # Perform backup using cp -r and create a backup directory with -backup suffix + cp -r "$HOME/.oh-my-zsh" "$HOME/.oh-my-zsh-backup" || true + mv "$HOME/.zshrc" "$HOME/.zshrc-backup" || true + + printf "${NOTE} Backup created....${RESET}\n" +fi -## Optional Pokemon color scripts -while true; do - read -p "${CAT} OPTIONAL - Do you want to add Pokemon color scripts? (y/n): " choice - case "$choice" in - [Yy]*) - zsh+=('pokemon-colorscripts-git') - sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc - break - ;; - [Nn]*) - echo "${NOTE}Skipping Pokemon color scripts installation.${RESET}" 2>&1 | tee -a "$LOG" - break - ;; - *) - echo "${WARN}Please enter 'y' for yes or 'n' for no.${RESET}" - ;; - esac -done # Installing zsh packages printf "${NOTE} Installing core zsh packages...${RESET}\n" -for ZSH in "${zsh[@]}"; do +for ZSH in zsh zsh-completions pokemon-colorscripts-git; do install_package "$ZSH" 2>&1 | tee -a "$LOG" if [ $? -ne 0 ]; then echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log" @@ -56,42 +79,34 @@ if command -v zsh >/dev/null; then if [ ! -d "$HOME/.oh-my-zsh" ]; then sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true else - echo "Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG" + echo "Directory .oh-my-zsh already exists. Skipping re-installation." fi # Check if the directories exist before cloning the repositories - if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then + if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]; then git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true else - echo "Directory zsh-autosuggestions already exists. Skipping cloning." 2>&1 | tee -a "$LOG" + echo "Directory zsh-autosuggestions already exists. Skipping cloning." fi - if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then + if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]; then git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true else - echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." 2>&1 | tee -a "$LOG" - fi - - # Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration - if [ -f "$HOME/.zshrc" ]; then - cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true + echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." fi - if [ -f "$HOME/.zprofile" ]; then - cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true - fi - - # Copying the preconfigured zsh themes and profile cp -r 'assets/.zshrc' ~/ cp -r 'assets/.zprofile' ~/ printf "${NOTE} Changing default shell to zsh...\n" while ! chsh -s $(which zsh); do - echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG" + echo "${ERROR} Authentication failed. Please enter the correct password." sleep 1 done printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG" fi + printf "\n\n\n\n" + -clear +clear \ No newline at end of file diff --git a/install.sh b/install.sh old mode 100755 new mode 100644 index 26c95e4..7203f41 --- a/install.sh +++ b/install.sh @@ -32,10 +32,6 @@ if [ "$proceed" != "y" ]; then fi -# Create Directory for Install Logs -if [ ! -d Install-Logs ]; then - mkdir Install-Logs -fi # Set some colors for output messages OK="$(tput setaf 2)[OK]$(tput sgr0)" @@ -47,7 +43,6 @@ ORANGE=$(tput setaf 166) YELLOW=$(tput setaf 3) RESET=$(tput sgr0) - # Function to colorize prompts colorize_prompt() { local color="$1" @@ -121,7 +116,7 @@ execute_script() { printf "\n" ask_custom_option "-Type AUR helper" "paru or yay" aur_helper printf "\n" -ask_yes_no "-Do you have any nvidia gpu in your system?" nvidia +ask_yes_no "-Do you have nvidia gpu?" nvidia printf "\n" ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes printf "\n" @@ -129,24 +124,22 @@ ask_yes_no "-Do you want to configure Bluetooth?" bluetooth printf "\n" ask_yes_no "-Do you want to install Thunar file manager?" thunar printf "\n" -ask_yes_no "-Install & configure SDDM log-in Manager w/ (Optional) SDDM Theme?" sddm +ask_yes_no "-Installing in Asus ROG Laptops?" rog +printf "\n" +ask_yes_no "-Install and configure SDDM log-in Manager?" sddm printf "\n" ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph printf "\n" -ask_yes_no "-Install zsh, oh-my-zsh & (Optional) pokemon-colorscripts?" zsh +ask_yes_no "-Install zsh, oh-my-zsh & pokemon-colorscripts?" zsh printf "\n" -ask_yes_no "-Installing in a Asus ROG Laptops?" rog +ask_yes_no "-Do you want to copy Hyprland dotfiles?" dots printf "\n" -ask_yes_no "-Do you want to download pre-configured Hyprland dotfiles?" dots -printf "\n" - # Ensuring all in the scripts folder are made executable chmod +x install-scripts/* -# Ensuring base-devel is installed +# Execute AUR helper script based on user choice execute_script "00-base.sh" -# Execute AUR helper script based on user choice if [ "$aur_helper" == "paru" ]; then execute_script "paru.sh" elif [ "$aur_helper" == "yay" ]; then @@ -179,6 +172,10 @@ if [ "$thunar" == "Y" ]; then execute_script "thunar.sh" fi +if [ "$rog" == "Y" ]; then + execute_script "rog.sh" +fi + if [ "$sddm" == "Y" ]; then execute_script "sddm.sh" fi @@ -193,15 +190,12 @@ fi execute_script "InputGroup.sh" -if [ "$rog" == "Y" ]; then - execute_script "rog.sh" -fi - if [ "$dots" == "Y" ]; then execute_script "dotfiles.sh" fi +clear printf "\n${OK} Yey! Installation Completed.\n" printf "\n"