From 6abc879468e05f33e26e0bc910e143f9bda0522a Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Sun, 2 Feb 2025 22:54:58 +0900 Subject: [PATCH] some tweaking on install-scripts except the compiling part. It will not show progress for much cleaner work. --- CHANGELOGS.md | 3 + README.md | 3 +- install-scripts/00-base.sh | 6 +- install-scripts/01-hypr-pkgs.sh | 6 +- install-scripts/02-Final-Check.sh | 19 +++--- install-scripts/Global_functions.sh | 100 +++++++++++++++------------- install-scripts/InputGroup.sh | 15 ++--- install-scripts/ags.sh | 37 ++++++---- install-scripts/bluetooth.sh | 7 +- install-scripts/dotfiles-main.sh | 4 +- install-scripts/dotfiles.sh | 2 +- install-scripts/fonts.sh | 8 +-- install-scripts/gtk_themes.sh | 5 +- install-scripts/hyprland.sh | 5 +- install-scripts/nvidia.sh | 7 +- install-scripts/pacman.sh | 10 +-- install-scripts/paru.sh | 20 +++--- install-scripts/pipewire.sh | 17 +++-- install-scripts/rog.sh | 17 +++-- install-scripts/sddm.sh | 6 +- install-scripts/thunar.sh | 11 ++- install-scripts/xdph.sh | 44 ++---------- install-scripts/yay.sh | 20 +++--- install-scripts/zsh.sh | 93 +++++++++++++------------- install.sh | 28 +++++--- 25 files changed, 244 insertions(+), 249 deletions(-) mode change 100644 => 100755 install-scripts/dotfiles-main.sh diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 781d054..3bb52a8 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,5 +1,8 @@ ## Changelogs +## 02 Feb 2025 +- some tweaking on install-scripts except the compiling part. It will not show progress for much cleaner work. + ## 29 Jan 2025 - enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia diff --git a/README.md b/README.md index b9ef770..4df3753 100644 --- a/README.md +++ b/README.md @@ -175,8 +175,7 @@ source ~/.zshrc > DO NOT cd into install-scripts directory as script will most likely to fail #### 🛣️ Roadmap: -- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE -- [ ] possibly adding gruvbox themes, cursors, icons +- [ ] show a progress bar in downloading and compiling part #### ❗ some known issues for nvidia - reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was diff --git a/install-scripts/00-base.sh b/install-scripts/00-base.sh index fb50bee..c4939f7 100755 --- a/install-scripts/00-base.sh +++ b/install-scripts/00-base.sh @@ -14,10 +14,10 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log" # Installation of main components -printf "\n%s - Installing base-devel \n" "${NOTE}" +printf "\n%s - Installing ${BLUE}base-devel${RESET} \n" "${NOTE}" for PKG1 in "${base[@]}"; do - sudo pacman -S --noconfirm "$PKG1" | tee -a "$LOG" + install_package_pacman "$PKG1" | tee -a "$LOG" done -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/01-hypr-pkgs.sh b/install-scripts/01-hypr-pkgs.sh index 2e655e2..c0776fe 100755 --- a/install-scripts/01-hypr-pkgs.sh +++ b/install-scripts/01-hypr-pkgs.sh @@ -114,12 +114,10 @@ fi printf "\n%s - Installing hyprland packages.... \n" "${NOTE}" for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do - install_package "$PKG1" 2>&1 | tee -a "$LOG" + install_package "$PKG1" "$LOG" if [ $? -ne 0 ]; then - echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs" exit 1 fi done -clear - +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/02-Final-Check.sh b/install-scripts/02-Final-Check.sh index dc3a354..301cf8d 100755 --- a/install-scripts/02-Final-Check.sh +++ b/install-scripts/02-Final-Check.sh @@ -23,7 +23,7 @@ packages=( # Local packages that should be in /usr/local/bin/ local_pkgs_installed=( - ags + ) ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## @@ -40,19 +40,19 @@ 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/00_CHECK-$(date +%d-%H%M%S)_installed.log" -printf "\n%s - Final Check if Essential packages were installed \n" "${NOTE}" +printf "\n%s - Final Check if all ${BLUE}Essential packages${RESET} were installed \n" "${NOTE}" # Initialize an empty array to hold missing packages missing=() local_missing=() -# Function to check if a package is installed using pacman +# Function to check if a packages are installed using pacman is_installed_pacman() { pacman -Qi "$1" &>/dev/null } # Loop through each package for pkg in "${packages[@]}"; do - # Check if the package is installed via pacman + # Check if the packages are installed if ! is_installed_pacman "$pkg"; then missing+=("$pkg") fi @@ -67,25 +67,24 @@ done # Log missing packages if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ]; then - echo "${OK} All essential packages are installed." | tee -a "$LOG" + echo "${OK} GREAT! It seems All ${YELLOW}essential packages${RESET} are installed." | tee -a "$LOG" else if [ ${#missing[@]} -ne 0 ]; then echo "${WARN} The following packages are not installed and will be logged:" for pkg in "${missing[@]}"; do - echo "$pkg" - echo "$pkg" >> "$LOG" # Log the missing package to the file + echo "${WARNING}$pkg${RESET}" + echo "$pkg" >> "$LOG" done fi if [ ${#local_missing[@]} -ne 0 ]; then echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:" for pkg1 in "${local_missing[@]}"; do - echo "$pkg1 is not installed. Can't find it in /usr/local/bin/" - echo "$pkg1" >> "$LOG" # Log the missing local package to the file + echo "${WARNING}$pkg1${REST} is not installed. Can't find it in /usr/local/bin/" + echo "$pkg1" >> "$LOG" done fi - # Add a timestamp when the missing packages were logged echo "${NOTE} Missing packages logged at $(date)" >> "$LOG" fi diff --git a/install-scripts/Global_functions.sh b/install-scripts/Global_functions.sh index 7b4edf4..938859e 100755 --- a/install-scripts/Global_functions.sh +++ b/install-scripts/Global_functions.sh @@ -8,79 +8,87 @@ set -e OK="$(tput setaf 2)[OK]$(tput sgr0)" ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 5)[WARN]$(tput sgr0)" +INFO="$(tput setaf 4)[INFO]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) -YELLOW=$(tput setaf 3) -RESET=$(tput sgr0) - +MAGENTA="$(tput setaf 5)" +ORANGE="$(tput setaf 214)" +WARNING="$(tput setaf 1)" +YELLOW="$(tput setaf 3)" +BLUE="$(tput setaf 4)" +RESET="$(tput sgr0)" # Create Directory for Install Logs if [ ! -d Install-Logs ]; then mkdir Install-Logs fi -# Function for installing packages +# Function that would show a progress bar to the user on one line +show_progress() { + local pid=$1 + local package_name=$2 + local dots="" + + # Print initial message only once + echo -n "${NOTE} Installing ${YELLOW}$package_name${RESET} ..." + + # Loop until the process is running + while ps -p $pid &> /dev/null; do + dots+="." + echo -ne "\r${NOTE} Installing ${YELLOW}$package_name${RESET} ...$dots" # Update the same line with dots + sleep 1 + done + + # After the process finishes, show "Done!" on the same line + echo -ne "\r${NOTE} Installing ${YELLOW}$package_name${RESET} ...$dots Done!" # Replace dots with Done! +} + + +# Function to install packages with pacman install_package_pacman() { - # Checking if package is already installed + # Check if package is already installed if pacman -Q "$1" &>/dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." + echo -e "${OK} ${MAGENTA}$1${RESET} is already installed. Skipping..." else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - sudo pacman -S --noconfirm --needed "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed + # Run pacman and redirect all output to a log file + ( + stdbuf -oL sudo pacman -S --noconfirm --needed "$1" 2>&1 + ) >> "$LOG" 2>&1 & + PID=$! + show_progress $PID "$1" # Show progress bar while the process runs + + # Double check if package is installed if pacman -Q "$1" &>/dev/null ; then - echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!" + echo -e "\n${OK} Package ${YELLOW}$1${RESET} has been successfully 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." + echo -e "\n${ERROR} ${YELLOW}$1${RESET} 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 +# Function to install packages with either yay or paru install_package() { # Checking if package is already installed if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "${OK} $1 is already installed. Skipping..." + echo -e "${OK} ${MAGENTA}$1${RESET} is already installed. Skipping..." else - # Package not installed - echo -e "${NOTE} Installing $1 ..." - $ISAUR -S --noconfirm --needed "$1" 2>&1 | tee -a "$LOG" - # Making sure package is installed + # Run yay/paru and redirect all output to a log file + ( + stdbuf -oL $ISAUR -S --noconfirm --needed "$1" 2>&1 + ) >> "$LOG" 2>&1 & + PID=$! + show_progress $PID "$1" # Show progress bar while the process runs + + # Double check if package is installed if $ISAUR -Q "$1" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!" + echo -e "\n${OK} Package ${YELLOW}$1${RESET} has been successfully 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 :(" + echo -e "\n${ERROR} ${YELLOW}$1${RESET} 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() { - local pkg="$1" - - # Checking if package is installed - if pacman -Qi "$pkg" &>> /dev/null ; then - # Package is installed - echo -e "${NOTE} Uninstalling $pkg ..." - sudo pacman -R --noconfirm "$pkg" 2>&1 | tee -a "$LOG" | grep -v "error: target not found" - # Check if the package was uninstalled - if ! pacman -Qi "$pkg" &>> /dev/null ; then - echo -e "\e[1A\e[K${OK} $pkg was uninstalled." - else - echo -e "\e[1A\e[K${ERROR} $pkg failed to uninstall. Please check the log." - return 1 - fi - else - echo -e "${NOTE} $pkg is not installed, skipping uninstallation." - fi - return 0 -} diff --git a/install-scripts/InputGroup.sh b/install-scripts/InputGroup.sh index 0aba454..f140c12 100755 --- a/install-scripts/InputGroup.sh +++ b/install-scripts/InputGroup.sh @@ -20,8 +20,8 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log" while true; do - echo "${WARN} This script will add your user to the 'input' group." - echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality." + echo "${WARN} This script will add your ${YELLOW}user${RESET} to the ${MAGENTA}input${RESET} group." + echo "${NOTE} Please note that adding yourself to the ${MAGENTA}input${RESET} group might be necessary for waybar keyboard-state functionality." printf "\n%.0s" {1..1} @@ -32,18 +32,17 @@ while true; do if [[ $input_group_choid == "y" || $input_group_choid == "Y" ]]; then # Check if the 'input' group exists if grep -q '^input:' /etc/group; then - echo "${OK} 'input' group exists." + echo "${OK} ${MAGENTA}input${RESET} group exists." else - echo "${NOTE} 'input' group doesn't exist. Creating 'input' group..." + echo "${NOTE} ${MAGENTA}input${RESET} group doesn't exist. Creating ${MAGENTA}input${RESET} group..." sudo groupadd input - # Log the creation of the 'input' group - echo "'input' group created" >> "$LOG" + echo "${MAGENTA}input${RESET} group created" >> "$LOG" fi # Add the user to the input group sudo usermod -aG input "$(whoami)" - echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in." + echo "${OK} ${YELLOW}user${RESET} added to the ${MAGENTA}input${RESET} 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" @@ -56,4 +55,4 @@ while true; do fi done -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/ags.sh b/install-scripts/ags.sh index 1cc66a2..e4382e5 100755 --- a/install-scripts/ags.sh +++ b/install-scripts/ags.sh @@ -1,6 +1,11 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# Aylur's GTK Shell v 1.8.2# +# Aylur's GTK Shell v 1.9.0 # +# for desktop overview + +if [[ $USE_PRESET = [Yy] ]]; then + source ./preset.sh +fi ags=( typescript @@ -10,7 +15,8 @@ ags=( gjs gtk3 gtk-layer-shell - upower networkmanager + upower + networkmanager gobject-introspection libdbusmenu-gtk3 libsoup3 @@ -40,7 +46,7 @@ printf "\n%s - Installing AGS Dependencies \n" "${NOTE}" # Installing ags Dependencies for PKG1 in "${ags[@]}"; do - install_package "$PKG1" 2>&1 | tee -a "$LOG" + install_package "$PKG1" "$LOG" if [ $? -ne 0 ]; then echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs" exit 1 @@ -48,8 +54,9 @@ for PKG1 in "${ags[@]}"; do done printf "\n%.0s" {1..1} -# ags -printf "${NOTE} Install and Compiling Aylurs GTK shell $ags_tag..\n" + +# ags v1 +printf "${NOTE} Install and Compiling ${BLUE}Aylur's GTK shell $ags_tag${RESET}..\n" # Check if folder exists and remove it if [ -d "ags" ]; then @@ -57,24 +64,26 @@ if [ -d "ags" ]; then rm -rf "ags" fi -# Clone nwg-look repository with the specified tag +printf "\n%.0s" {1..1} +printf "${INFO} Kindly Standby...cloning and compiling ${BLUE}Aylur's GTK shell $ags_tag${RESET}...\n" +printf "\n%.0s" {1..1} +# Clone repository with the specified tag and capture git output into MLOG if git clone --recursive -b "$ags_tag" --depth 1 https://github.com/Aylur/ags.git; then cd ags || exit 1 - # Build and install ags npm install meson setup build - if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then - printf "${OK} ags installed successfully.\n" 2>&1 | tee -a "$MLOG" - else - echo -e "${ERROR} Installation failed for ags" 2>&1 | tee -a "$MLOG" - fi - + if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then + printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG" + fi # Move logs to Install-Logs directory mv "$MLOG" ../Install-Logs/ || true cd .. else - echo -e "${ERROR} Failed to download ags Please check your connection" 2>&1 | tee -a "$LOG" + echo -e "\n${ERROR} Failed to download ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Please check your connection\n" 2>&1 | tee -a "$LOG" mv "$MLOG" ../Install-Logs/ || true exit 1 fi +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/bluetooth.sh b/install-scripts/bluetooth.sh index a16ce67..4dda529 100755 --- a/install-scripts/bluetooth.sh +++ b/install-scripts/bluetooth.sh @@ -22,13 +22,12 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log" # Bluetooth -printf "${NOTE} Installing Bluetooth Packages...\n" +printf "${NOTE} Installing ${BLUE}Bluetooth${RESET} 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 Package installation failed, Please check the installation logs"; exit 1; } + install_package "$BLUE" "$LOG" done printf " Activating Bluetooth Services...\n" sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG" -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/dotfiles-main.sh b/install-scripts/dotfiles-main.sh old mode 100644 new mode 100755 index 8c61643..09807b6 --- a/install-scripts/dotfiles-main.sh +++ b/install-scripts/dotfiles-main.sh @@ -7,7 +7,7 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Check if Hyprland-Dots exists -printf "${NOTE} Downloading KooL's Hyprland Dots....\n" +printf "${NOTE} Downloading ${BLUE}KooL's Hyprland Dots${RESET}....\n" if [ -d Hyprland-Dots ]; then cd Hyprland-Dots @@ -26,4 +26,4 @@ else fi fi -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh index bf492fb..353c6f1 100755 --- a/install-scripts/dotfiles.sh +++ b/install-scripts/dotfiles.sh @@ -97,4 +97,4 @@ else exit 1 fi -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/fonts.sh b/install-scripts/fonts.sh index 9de24f6..0ce6d05 100755 --- a/install-scripts/fonts.sh +++ b/install-scripts/fonts.sh @@ -32,15 +32,13 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log" # Installation of main components -printf "\n%s - Installing necessary fonts.... \n" "${NOTE}" +printf "\n%s - Installing necessary ${BLUE}fonts${RESET}.... \n" "${NOTE}" for PKG1 in "${fonts[@]}"; do - install_package "$PKG1" 2>&1 | tee -a "$LOG" + install_package "$PKG1" "$LOG" if [ $? -ne 0 ]; then - echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs" exit 1 fi done -clear - +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/gtk_themes.sh b/install-scripts/gtk_themes.sh index 4710698..ec5f64d 100755 --- a/install-scripts/gtk_themes.sh +++ b/install-scripts/gtk_themes.sh @@ -24,9 +24,8 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log" # installing engine needed for gtk themes for PKG1 in "${engine[@]}"; do - install_package "$PKG1" 2>&1 | tee -a "$LOG" + install_package "$PKG1" "$LOG" if [ $? -ne 0 ]; then - echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs" exit 1 fi done @@ -48,4 +47,4 @@ else echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG" fi -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 31d07d8..3c541af 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -36,11 +36,10 @@ fi # Hyprland printf "${NOTE} Installing Hyprland .......\n" for HYPR in "${hypr[@]}"; do - install_package "$HYPR" 2>&1 | tee -a "$LOG" + install_package "$HYPR" "$LOG" [ $? -ne 0 ] && { - echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs" exit 1 } done -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/nvidia.sh b/install-scripts/nvidia.sh index 22ce293..dfa4f16 100755 --- a/install-scripts/nvidia.sh +++ b/install-scripts/nvidia.sh @@ -38,10 +38,10 @@ if pacman -Qs hyprland > /dev/null; then fi # Install additional Nvidia packages -printf "${YELLOW} Installing Nvidia Packages and Linux headers...\n" +printf "${YELLOW} Installing ${BLUE}Nvidia Packages and Linux headers${RESET}...\n" for krnl in $(cat /usr/lib/modules/*/pkgbase); do for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do - install_package "$NVIDIA" 2>&1 | tee -a "$LOG" + install_package "$NVIDIA" "$LOG" done done @@ -118,6 +118,7 @@ if [ -f /boot/loader/loader.conf ]; then fi fi +printf "\n%.0s" {1..2} # Blacklist nouveau if [[ -z $blacklist_nouveau ]]; then @@ -144,4 +145,4 @@ else printf "${NOTE} Skipping nouveau blacklisting..." 2>&1 | tee -a "$LOG" fi -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/pacman.sh b/install-scripts/pacman.sh index 125fa4d..55e52bf 100755 --- a/install-scripts/pacman.sh +++ b/install-scripts/pacman.sh @@ -8,7 +8,7 @@ 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)_pacman.log" -echo -e "${NOTE} Adding Extra Spice in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG" +echo -e "${NOTE} Adding ${MAGENTA}Extra Spice${RESET} in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG" pacman_conf="/etc/pacman.conf" # Remove comments '#' from specific lines @@ -32,14 +32,14 @@ done # Add "ILoveCandy" below ParallelDownloads if it doesn't exist if grep -q "^ParallelDownloads" "$pacman_conf" && ! grep -q "^ILoveCandy" "$pacman_conf"; then sudo sed -i "/^ParallelDownloads/a ILoveCandy" "$pacman_conf" - echo -e "${CAT} Added ILoveCandy below ParallelDownloads. ${RESET}" 2>&1 | tee -a "$LOG" + echo -e "${CAT} Added ${MAGENTA}ILoveCandy${RESET} after ${MAGENTA}ParallelDownloads${RESET}. ${RESET}" 2>&1 | tee -a "$LOG" else - echo -e "${CAT} ILoveCandy already exists ${RESET}" 2>&1 | tee -a "$LOG" + echo -e "${CAT} It seems ${YELLOW}ILoveCandy${RESET} already exists ${RESET} moving on.." 2>&1 | tee -a "$LOG" fi -echo -e "${CAT} Pacman.conf spicing up completed ${RESET}" 2>&1 | tee -a "$LOG" +echo -e "${CAT} ${MAGENTA}Pacman.conf${RESET} spicing up completed ${RESET}" 2>&1 | tee -a "$LOG" # updating pacman.conf sudo pacman -Sy -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/paru.sh b/install-scripts/paru.sh index c48ae9b..ab175d3 100755 --- a/install-scripts/paru.sh +++ b/install-scripts/paru.sh @@ -12,11 +12,15 @@ LOG="install-$(date +%d-%H%M%S)_paru.log" OK="$(tput setaf 2)[OK]$(tput sgr0)" ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 5)[WARN]$(tput sgr0)" +INFO="$(tput setaf 4)[INFO]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) -YELLOW=$(tput setaf 3) -RESET=$(tput sgr0) +MAGENTA="$(tput setaf 5)" +ORANGE="$(tput setaf 214)" +WARNING="$(tput setaf 1)" +YELLOW="$(tput setaf 3)" +BLUE="$(tput setaf 4)" +RESET="$(tput sgr0)" # Create Directory for Install Logs @@ -36,10 +40,10 @@ if [ -n "$ISAUR" ]; then printf "\n%s - AUR helper already installed, moving on..\n" "${OK}" else printf "\n%s - AUR helper was NOT located\n" "$WARN" - printf "\n%s - Installing paru-bin from AUR\n" "${NOTE}" - git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru-bin from AUR\n" "${ERROR}"; exit 1; } + printf "\n%s - Installing ${YELLOW}paru-bin${RESET} from AUR\n" "${NOTE}" + git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone ${YELLOW}paru-bin${RESET} from AUR\n" "${ERROR}"; exit 1; } cd paru-bin || { printf "%s - Failed to enter paru directory\n" "${ERROR}"; exit 1; } - makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru-bin from AUR\n" "${ERROR}"; exit 1; } + makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}paru-bin${RESET} from AUR\n" "${ERROR}"; exit 1; } # moving install logs in to Install-Logs folder mv install*.log ../Install-Logs/ || true @@ -52,4 +56,4 @@ ISAUR=$(command -v yay || command -v paru) $ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; } -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/pipewire.sh b/install-scripts/pipewire.sh index 0c02a41..d3c7322 100755 --- a/install-scripts/pipewire.sh +++ b/install-scripts/pipewire.sh @@ -25,21 +25,20 @@ 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)_pipewire.log" -ISAUR=$(command -v yay || command -v paru) - -# Disabling pulseaudio to avoid conflicts -systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG" +# Disabling pulseaudio to avoid conflicts and logging output +echo -e "${NOTE} Disabling pulseaudio to avoid conflicts..." +systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>&1 | tee -a "$LOG" # Pipewire -printf "${NOTE} Installing Pipewire Packages...\n" +echo -e "${NOTE} Installing Pipewire Packages..." for PIPEWIRE in "${pipewire[@]}"; do - install_package "$PIPEWIRE" 2>&1 | tee -a "$LOG" + install_package "$PIPEWIRE" "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $PIPEWIRE Package installation failed, Please check the installation logs"; exit 1; } done -printf "Activating Pipewire Services...\n" +echo -e "${NOTE} Activating Pipewire Services..." +# Redirect systemctl output to log file 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 +echo -e "\n${OK} Pipewire Installation and services setup complete!" 2>&1 | tee -a "$LOG" diff --git a/install-scripts/rog.sh b/install-scripts/rog.sh index ea97328..b32a742 100755 --- a/install-scripts/rog.sh +++ b/install-scripts/rog.sh @@ -2,6 +2,13 @@ # 💫 https://github.com/JaKooLit 💫 # # Asus ROG Laptops # +rog=( + power-profiles-daemon + asusctl + supergfxctl + rog-control-center +) + ## 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 )" @@ -17,11 +24,10 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log" ### Install software for Asus ROG laptops ### -printf " Installing ASUS ROG packages...\n" -for ASUS in power-profiles-daemon asusctl supergfxctl rog-control-center; do -install_package "$ASUS" 2>&1 | tee -a "$LOG" +printf " Installing ${BLUE}ASUS ROG packages${RESET}...\n" +for ASUS in "${rog[@]}"; do +install_package "$ASUS" "$LOG" if [ $? -ne 0 ]; then - echo -e "\e[1A\e[K${ERROR} - $ASUS Package installation failed, Please check the installation logs" exit 1 fi done @@ -32,5 +38,4 @@ sudo systemctl enable supergfxd 2>&1 | tee -a "$LOG" printf " enabling power-profiles-daemon...\n" sudo systemctl enable power-profiles-daemon 2>&1 | tee -a "$LOG" -clear - +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/sddm.sh b/install-scripts/sddm.sh index 84441af..24c6d03 100755 --- a/install-scripts/sddm.sh +++ b/install-scripts/sddm.sh @@ -30,7 +30,7 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log" # Install SDDM and SDDM theme printf "${NOTE} Installing sddm and dependencies........\n" for package in "${sddm[@]}"; do - install_package "$package" 2>&1 | tee -a "$LOG" + install_package "$package" "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package Package installation failed, Please check the installation logs"; exit 1; } done @@ -59,7 +59,7 @@ printf "\n%.0s" {1..2} valid_input=false while [ "$valid_input" != true ]; do if [[ -z $install_sddm_theme ]]; then - read -n 1 -r -p "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme + read -n 1 -r -p "${CAT} OPTIONAL - Would you like to install additional SDDM themes? (y/n)" install_sddm_theme fi if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}" @@ -101,4 +101,4 @@ while [ "$valid_input" != true ]; do fi done -clear +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/thunar.sh b/install-scripts/thunar.sh index 898609a..af557cc 100755 --- a/install-scripts/thunar.sh +++ b/install-scripts/thunar.sh @@ -30,19 +30,18 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log" # Thunar -printf "${NOTE} Installing Thunar Packages...\n" +printf "${NOTE} Installing ${BLUE}Thunar${RESET} Packages...\n\n" for THUNAR in "${thunar[@]}"; do - install_package "$THUNAR" 2>&1 | tee -a "$LOG" + install_package "$THUNAR" "$LOG" [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR Package installation failed, Please check the installation logs"; exit 1; } done printf "\n%.0s" {1..2} -# Ask the user if they want to use Thunar as the default file manager +# confirm if wanted to set as default read -p "${CAT} Do you want to set Thunar as the default file manager? (y/n): " thunar_default if [[ "$thunar_default" == [Yy] ]]; then - # Setting Thunar as the default file manager xdg-mime default thunar.desktop inode/directory xdg-mime default thunar.desktop application/x-wayland-gnome-saved-search echo "${OK} Thunar has been set as the default file manager." 2>&1 | tee -a "$LOG" @@ -63,6 +62,4 @@ for DIR1 in gtk-3.0 Thunar xfce4; do fi done -clear - - +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh index 226c774..b021b91 100755 --- a/install-scripts/xdph.sh +++ b/install-scripts/xdph.sh @@ -1,6 +1,7 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# XDG-Desktop-Portals # +# XDG-Desktop-Portals hyprland # + if [[ $USE_PRESET = [Yy] ]]; then source ./preset.sh fi @@ -27,48 +28,11 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log" # XDG-DESKTOP-PORTAL-HYPRLAND for xdgs in "${xdg[@]}"; do - install_package "$xdgs" 2>&1 | tee -a "$LOG" + install_package "$xdgs" "$LOG" if [ $? -ne 0 ]; then echo -e "\e[1A\e[K${ERROR} - $xdph Package installation failed, Please check the installation logs" exit 1 fi done -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 - printf "\n%.0s" {1..2} - if [[ -z $XDPH1 ]]; then - read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1 - fi - 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 - -clear +printf "\n%.0s" {1..2} diff --git a/install-scripts/yay.sh b/install-scripts/yay.sh index d2c1e4f..53b8d22 100755 --- a/install-scripts/yay.sh +++ b/install-scripts/yay.sh @@ -12,11 +12,15 @@ LOG="install-$(date +%d-%H%M%S)_yay.log" OK="$(tput setaf 2)[OK]$(tput sgr0)" ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 5)[WARN]$(tput sgr0)" +INFO="$(tput setaf 4)[INFO]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) -YELLOW=$(tput setaf 3) -RESET=$(tput sgr0) +MAGENTA="$(tput setaf 5)" +ORANGE="$(tput setaf 214)" +WARNING="$(tput setaf 1)" +YELLOW="$(tput setaf 3)" +BLUE="$(tput setaf 4)" +RESET="$(tput sgr0)" # Create Directory for Install Logs if [ ! -d Install-Logs ]; then @@ -34,10 +38,10 @@ if [ -n "$ISAUR" ]; then printf "\n%s - AUR helper already installed, moving on.\n" "${OK}" else printf "\n%s - AUR helper was NOT located\n" "$WARN" - printf "\n%s - Installing yay from AUR\n" "${NOTE}" - git clone https://aur.archlinux.org/yay.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; } + printf "\n%s - Installing ${YELLOW}yay${RESET} from AUR\n" "${NOTE}" + git clone https://aur.archlinux.org/yay.git || { printf "%s - Failed to clone ${YELLOW}yay${RESET} from AUR\n" "${ERROR}"; exit 1; } cd yay || { printf "%s - Failed to enter yay directory\n" "${ERROR}"; exit 1; } - makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; } + makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}yay${RESET} from AUR\n" "${ERROR}"; exit 1; } # moving install logs in to Install-Logs folder mv install*.log ../Install-Logs/ || true @@ -50,4 +54,4 @@ ISAUR=$(command -v yay || command -v paru) $ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; } -clear \ No newline at end of file +printf "\n%.0s" {1..2} \ No newline at end of file diff --git a/install-scripts/zsh.sh b/install-scripts/zsh.sh index 56e24d8..bc6b2db 100755 --- a/install-scripts/zsh.sh +++ b/install-scripts/zsh.sh @@ -1,18 +1,18 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # # zsh and oh my zsh including pokemon-color-scripts# + if [[ $USE_PRESET = [Yy] ]]; then source ./preset.sh fi zsh=( - eza - zsh - zsh-completions - fzf + eza + zsh + zsh-completions + fzf ) - ## 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 )" @@ -54,55 +54,58 @@ done # Installing zsh packages printf "${NOTE} Installing core zsh packages...${RESET}\n" for ZSH in "${zsh[@]}"; do - install_package "$ZSH" 2>&1 | tee -a "$LOG" - if [ $? -ne 0 ]; then - echo -e "\e[1A\e[K${ERROR} - $ZSH Package installation failed, Please check the installation logs" - fi + ( + # Call the global install_package function and redirect its output to the log + install_package "$ZSH" "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $ZSH Package installation failed, Please check the installation logs" + fi + ) & done - +wait # Ensure all background processes finish before continuing # Install Oh My Zsh, plugins, and set zsh as default shell if command -v zsh >/dev/null; then printf "${NOTE} Installing Oh My Zsh and plugins...\n" - 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" - fi - # Check if the directories exist before cloning the repositories - 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" - fi + 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" + fi + # Check if the directories exist before cloning the repositories + 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" + fi - 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 - fi + 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 + 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' ~/ + 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" + 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" - sleep 1 - done - printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG" + while ! chsh -s $(which zsh); do + echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG" + sleep 1 + done + printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG" fi -clear +printf "\n%.0s" {1..2} diff --git a/install.sh b/install.sh index a27d859..451c386 100755 --- a/install.sh +++ b/install.sh @@ -5,9 +5,10 @@ OK="$(tput setaf 2)[OK]$(tput sgr0)" ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" -WARN="$(tput setaf 5)[WARN]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" -ORANGE=$(tput setaf 166) +MAGENTA=$(tput setaf 5) +WARNING=$(tput setaf 1) YELLOW=$(tput setaf 3) RESET=$(tput sgr0) @@ -182,6 +183,8 @@ 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 AGS (aylur's gtk shell) v1 for Desktop Like Overview?" ags +printf "\n" ask_yes_no "-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?" sddm printf "\n" ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph @@ -220,9 +223,6 @@ execute_script "fonts.sh" # Install hyprland execute_script "hyprland.sh" -# Install AGS from source (older version) -execute_script "ags.sh" - if [ "$nvidia" == "Y" ]; then execute_script "nvidia.sh" fi @@ -238,6 +238,9 @@ fi if [ "$thunar" == "Y" ]; then execute_script "thunar.sh" fi +if [ "$ags" == "Y" ]; then + execute_script "ags.sh" +fi if [ "$sddm" == "Y" ]; then execute_script "sddm.sh" @@ -276,11 +279,11 @@ printf "\n%.0s" {1..1} # Check if hyprland or hyprland-git is installed if pacman -Q hyprland &> /dev/null || pacman -Q hyprland-git &> /dev/null; then - printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed Please see above!" - printf "\n${CAT} Ignore this message if it states 'All essential packages are installed.'\n" + printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed. Please see above!" + printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n" sleep 2 - printf "\n${NOTE} You can start Hyprland by typing 'Hyprland' (IF SDDM is not installed) (note the capital H!).\n" - printf "\n${NOTE} However, it is highly recommended to reboot your system.\n\n" + printf "\n${NOTE} You can start Hyprland by typing ${MAGENTA}Hyprland${RESET} (IF SDDM is not installed) (note the capital H!).\n" + printf "\n${NOTE} However, it is ${YELLOW}highly recommended to reboot${RESET} your system.\n\n" # Prompt user to reboot read -rp "${CAT} Would you like to reboot now? (y/n): " HYP @@ -291,10 +294,15 @@ if pacman -Q hyprland &> /dev/null || pacman -Q hyprland-git &> /dev/null; then echo "${NOTE} NVIDIA GPU detected. Rebooting the system..." fi systemctl reboot + else + echo -e "\n${CAT} Thanks for using ${MAGENTA}KooL's Hyprland Dots${RESET}. Enjoy and Have a good day!" + printf "\n%.0s" {1..1} + exit 0 fi else # Print error message if neither package is installed - printf "\n${WARN} Hyprland failed to install. Please check 00_CHECK-time_installed.log and other files Install-Logs/ directory...\n\n" + printf "\n${WARN} Hyprland failed to install. Please check 00_CHECK-time_installed.log and other files in the Install-Logs/ directory...\n\n" exit 1 fi +