Merge pull request #184 from JaKooLit/dev-whiptail

Dev whiptail to development
This commit is contained in:
Ja.KooLit 2025-03-07 14:06:46 +09:00 committed by GitHub
commit d9441caa7f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
30 changed files with 525 additions and 340 deletions

View File

@ -1,5 +1,9 @@
## CHANGELOGS ## CHANGELOGS
## 06 March 2025
- Switched to whiptail version for Y & N questions
- switched eza to lsd
## 23 Feb 2025 ## 23 Feb 2025
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12 - added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
- added Fantasque Sans Mono Nerd for Kitty - added Fantasque Sans Mono Nerd for Kitty

View File

@ -22,8 +22,10 @@ source $ZSH/oh-my-zsh.sh
# fastfetch. Will be disabled if above colorscript was chosen to install # fastfetch. Will be disabled if above colorscript was chosen to install
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
# Set-up icons for files/folders in terminal using eza # Set-up icons for files/folders in terminal using lsd
alias ls='eza -a --icons' alias ls='lsd'
alias ll='eza -al --icons' alias l='ls -l'
alias lt='eza -a --tree --level=1 --icons' alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'

View File

@ -65,14 +65,17 @@ build_dep=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log"

View File

@ -76,14 +76,17 @@ force=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"

View File

@ -21,14 +21,17 @@ PACKAGES=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pre-clean-up.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_pre-clean-up.log"

View File

@ -27,14 +27,17 @@ local_pkgs_installed_2=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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" LOG="Install-Logs/00_CHECK-$(date +%d-%H%M%S)_installed.log"

View File

@ -77,6 +77,16 @@ build_dep() {
show_progress $PID "$1" show_progress $PID "$1"
} }
# Function for cargo install with a progress bar
cargo_install() {
echo -e "${INFO} installing ${MAGENTA}$1${RESET} using cargo..."
(
stdbuf -oL cargo install "$1" 2>&1
) >> "$LOG" 2>&1 &
PID=$!
show_progress $PID "$1"
}
# Function for re-installing packages with a progress bar # Function for re-installing packages with a progress bar
re_install_package() { re_install_package() {
( (

View File

@ -3,14 +3,17 @@
# Adding users into input group # # 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 DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_input.log"

View File

@ -28,14 +28,17 @@ build_dep=(
ags_tag="v1.9.0" ags_tag="v1.9.0"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"

View File

@ -8,14 +8,17 @@ blue=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"

View File

@ -6,8 +6,17 @@
dots_tag="Deb-Untu-Dots" dots_tag="Deb-Untu-Dots"
## 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! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Check if Hyprland-Dots exists # Check if Hyprland-Dots exists
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n" printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n"

View File

@ -11,14 +11,17 @@ fonts=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log"

View File

@ -8,15 +8,17 @@ engine=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_themes.log"

View File

@ -4,6 +4,8 @@
idle=( idle=(
libsdbus-c++-dev libsdbus-c++-dev
libsdbus-c++2
libsdbus-c++-bin
libhyprlang-dev libhyprlang-dev
) )
@ -11,14 +13,17 @@ idle=(
idle_tag="v0.1.2" idle_tag="v0.1.2"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypridle.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypridle.log"

View File

@ -15,19 +15,21 @@ f_hypr=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Hyprland # Hyprland
printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n" printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n"
for HYPR in "${hypr[@]}"; do for HYPR in "${hypr[@]}"; do

View File

@ -15,14 +15,17 @@ lock=(
lock_tag="v0.4.0" lock_tag="v0.4.0"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlock.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlock.log"

View File

@ -14,18 +14,18 @@ nvidia_pkg=(
nvidia-vaapi-driver nvidia-vaapi-driver
) )
# for ubuntu-nvidia owners! just delete #
# sudo ubuntu-drivers install
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_nvidia.log"

View File

@ -36,14 +36,17 @@ rofi=(
rofi_tag="1.7.8+wayland1" rofi_tag="1.7.8+wayland1"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log"

View File

@ -7,14 +7,17 @@ asus=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_rog.log" LOG="install-$(date +%d-%H%M%S)_rog.log"

View File

@ -23,14 +23,17 @@ login=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_sddm.log"

View File

@ -6,14 +6,17 @@ source_theme="https://codeberg.org/JaKooLit/sddm-sequoia"
theme_name="sequoia_2" theme_name="sequoia_2"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm_theme.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm_theme.log"

View File

@ -22,14 +22,17 @@ swww=(
swww_tag="v0.9.5" swww_tag="v0.9.5"
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_swww.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_swww.log"

View File

@ -12,15 +12,17 @@ thunar=(
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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-Logs/install-$(date +%d-%H%M%S)_thunar.log"

View File

@ -4,14 +4,17 @@
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar-default.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar-default.log"

View File

@ -2,15 +2,22 @@
# 💫 https://github.com/JaKooLit 💫 # # 💫 https://github.com/JaKooLit 💫 #
# wallust - pywal colors replacement # # wallust - pywal colors replacement #
# Determine the directory where the script is located wallust=(
wallust
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source external functions, adjust path as necessary # Source the global functions script
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_wallust.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_wallust.log"
@ -34,16 +41,24 @@ fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}
# Install Wallust using Cargo # Install Wallust using Cargo
echo "${INFO} Installing ${SKY_BLUE}Wallust using Cargo${RESET} ..." | tee -a "$LOG" for WALL in "${wallust[@]}"; do
if cargo install wallust 2>&1 | tee -a "$LOG" ; then cargo_install "$WALL" "$LOG"
if [ $? -eq 0 ]; then
echo "${OK} ${MAGENTA}Wallust${RESET} installed successfully." | tee -a "$LOG" echo "${OK} ${MAGENTA}Wallust${RESET} installed successfully." | tee -a "$LOG"
else
# Move the newly compiled binary to /usr/local/bin echo "${ERROR} Installation of ${MAGENTA}$WALL${RESET} failed. Check the log file $LOG for details." | tee -a "$LOG"
echo "Moving Wallust binary to /usr/local/bin..." | tee -a "$LOG" exit 1
sudo mv "$HOME/.cargo/bin/wallust" /usr/local/bin 2>&1 | tee -a "$LOG" fi
done
printf "\n%.0s" {1..1}
# Move the newly compiled binary to /usr/local/bin
echo "Moving Wallust binary to /usr/local/bin..." | tee -a "$LOG"
if sudo mv "$HOME/.cargo/bin/wallust" /usr/local/bin 2>&1 | tee -a "$LOG"; then
echo "${OK} Wallust binary moved successfully to /usr/local/bin." | tee -a "$LOG"
else else
echo "${ERROR} Wallust installation failed. Check the log file $LOG for details." | tee -a "$LOG" echo "${ERROR} Failed to move Wallust binary. Check the log file $LOG for details." | tee -a "$LOG"
exit 1 exit 1
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

View File

@ -9,10 +9,17 @@ xdg=(
## 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! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 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" # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
# Check if the file exists and remove it # Check if the file exists and remove it

View File

@ -3,21 +3,24 @@
# Zsh and Oh my Zsh + Optional Pokemon ColorScripts# # Zsh and Oh my Zsh + Optional Pokemon ColorScripts#
zsh=( zsh=(
eza lsd
mercurial mercurial
zsh zsh
zplug zplug
) )
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # 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" LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log"

View File

@ -3,14 +3,17 @@
# pokemon-color-scripts# # pokemon-color-scripts#
## 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 )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"

View File

@ -20,9 +20,17 @@ SKY_BLUE="$(tput setaf 6)"
RESET="$(tput sgr0)" RESET="$(tput sgr0)"
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/01-Hyprland-Install-Scripts-$(date +%d-%H%M%S).log"
# Check if running as root. If root, script will exit # Check if running as root. If root, script will exit
if [[ $EUID -eq 0 ]]; then if [[ $EUID -eq 0 ]]; then
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." | tee -a "$LOG"
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}
exit 1 exit 1
fi fi
@ -38,126 +46,57 @@ is_ubuntu() {
# Check if the system is Ubuntu # Check if the system is Ubuntu
if is_ubuntu; then if is_ubuntu; then
echo "${WARN}This script is ${WARNING}NOT intended for Ubuntu / Ubuntu Based${RESET}. Refer to ${YELLOW}README for the correct link for Ubuntu-Hyprland project${RESET} " echo "${WARN}This script is ${WARNING}NOT intended for Ubuntu / Ubuntu Based${RESET}. Refer to ${YELLOW}README for the correct link for Ubuntu-Hyprland project${RESET}" | tee -a "$LOG"
exit 1 exit 1
fi fi
# Check if --preset argument is provided # install whiptails if detected not installed. Necessary for this version
if [[ "$1" == "--preset" ]]; then if ! command -v whiptail >/dev/null; then
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
# nvidia sudo apt install -y whiptail
if [[ "$2" == "--nvidia" ]]; then printf "\n%.0s" {1..1}
sed -i 's/^nvidia=".*"/nvidia="Y"/' preset.sh
fi
source ./preset.sh
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}
echo -e "\e[35m echo -e "\e[35m
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐ ╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025 ╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ ╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Debian Trixie / SiD
\e[0m" \e[0m"
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# Welcome message # Welcome message using whiptail (for displaying information)
echo "${SKY_BLUE}Welcome to JaKooLit's Debian Trixie/SID Hyprland (2025) Install Script!${RESET}" whiptail --title "KooL Debian-Hyprland Trixie-SID (2025) Install Script" \
echo --msgbox "Welcome to KooL Debian-Hyprland Trixie-SID (2025) Install Script!!!\n\n\
echo "${WARNING}ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) ${RESET}" ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\n\
echo NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland may NOT start!" \
echo "${YELLOW}NOTE: You will be required to answer some questions during the installation! ${RESET}" 15 80
echo
echo "${YELLOW}NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! ${RESET}"
echo
# Prompt user to proceed # Ask if the user wants to proceed
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed if ! whiptail --title "Proceed with Installation?" \
--yesno "Would you like to proceed?" 7 50; then
if [ "$proceed" != "y" ]; then echo -e "\n"
printf "\n%.0s" {1..2} echo "${INFO} You 🫵 chose ${YELLOW}NOT${RESET} to proceed. ${YELLOW}Exiting...${RESET}" | tee -a "$LOG"
echo "${INFO} Installation aborted. ${SKY_BLUE}No changes in your system.${RESET} ${YELLOW}Goodbye!${RESET}" echo -e "\n"
printf "\n%.0s" {1..2}
exit 1 exit 1
fi fi
printf "\n%.0s" {1..1} echo "👌 ${OK} 🇵🇭 ${MAGENTA}KooL..${RESET} ${SKY_BLUE}lets continue with the installation...${RESET}" | tee -a "$LOG"
echo "${NOTE} Ensure to uncomment the ${YELLOW}deb-src's${RESET} in ${YELLOW}/etc/apt/sources.list${RESET}"
read -p "${CAT} ${YELLOW}Very Important else script will likely fail${RESET}. OK to proceed? (y/n): ${RESET}" proceed2
if [ "$proceed2" != "y" ]; then
printf "\n%.0s" {1..2}
echo "Installation aborted! Kindly edit your ${YELLOW}sources.list${RESET} first. Refer to readme."
printf "\n%.0s" {1..2}
exit 1
fi
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
sleep 1
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# install pciutils if detected not installed. Necessary for detecting GPU # install pciutils if detected not installed. Necessary for detecting GPU
if ! dpkg -l | grep -w pciutils > /dev/null; then if ! zypper se -i pciutils > /dev/null; then
echo "pciutils is not installed. Installing..." echo "pciutils is not installed. Installing..." | tee -a "$LOG"
sudo apt install -y pciutils sudo apt install -y pciutils
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
fi fi
# Function to colorize prompts # Path to the install-scripts directory
colorize_prompt() {
local color="$1"
local message="$2"
echo -n "${color}${message}$(tput sgr0)"
}
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S).log"
# Define the directory where your scripts are located
script_directory=install-scripts script_directory=install-scripts
# Function to ask a yes/no question and set the response in a variable
ask_yes_no() {
if [[ ! -z "${!2}" ]]; then
echo "$(colorize_prompt "$CAT" "$1 (Preset): ${!2}")"
if [[ "${!2}" = [Yy] ]]; then
return 0
else
return 1
fi
else
eval "$2=''"
fi
while true; do
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
case "$choice" in
[Yy]* ) eval "$2='Y'"; return 0;;
[Nn]* ) eval "$2='N'"; return 1;;
* ) echo "Please answer with y or n.";;
esac
done
}
# Function to ask a custom question with specific options and set the response in a variable
ask_custom_option() {
local prompt="$1"
local valid_options="$2"
local response_var="$3"
while true; do
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
if [[ " $valid_options " == *" $choice "* ]]; then
eval "$response_var='$choice'"
return 0
else
echo "Please choose one of the provided options: $valid_options"
fi
done
}
# Function to execute a script if it exists and make it executable # Function to execute a script if it exists and make it executable
execute_script() { execute_script() {
local script="$1" local script="$1"
@ -165,174 +104,314 @@ execute_script() {
if [ -f "$script_path" ]; then if [ -f "$script_path" ]; then
chmod +x "$script_path" chmod +x "$script_path"
if [ -x "$script_path" ]; then if [ -x "$script_path" ]; then
env USE_PRESET=$use_preset "$script_path" env "$script_path"
else else
echo "Failed to make script '$script' executable." echo "Failed to make script '$script' executable." | tee -a "$LOG"
fi fi
else else
echo "Script '$script' not found in '$script_directory'." echo "Script '$script' not found in '$script_directory'." | tee -a "$LOG"
fi fi
} }
# Collect user responses to all questions #################
# Check if nvidia is present ## Default values for the options (will be overwritten by preset file if available)
if lspci | grep -i "nvidia" &> /dev/null; then gtk_themes="OFF"
printf "\n" bluetooth="OFF"
printf "${INFO} ${YELLOW}NVIDIA GPU${RESET} detected in your system \n" thunar="OFF"
ask_yes_no "-Do you want script to configure ${YELLOW}NVIDIA${RESET} for you?" nvidia ags="OFF"
sddm="OFF"
sddm_theme="OFF"
xdph="OFF"
zsh="OFF"
pokemon="OFF"
rog="OFF"
dots="OFF"
input_group="OFF"
nvidia="OFF"
# Function to load preset file
load_preset() {
if [ -f "$1" ]; then
echo "✅ Loading preset: $1"
source "$1"
else
echo "⚠️ Preset file not found: $1. Using default values."
fi
}
# Check if --preset argument is passed
if [[ "$1" == "--preset" && -n "$2" ]]; then
load_preset "$2"
fi fi
printf "\n" # List of services to check for active login managers
ask_yes_no "-Install ${YELLOW}GTK themes${RESET} (required for Dark/Light function)?" gtk_themes services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
printf "\n" # Function to check if any login services are active
ask_yes_no "-Do you want to configure ${YELLOW}Bluetooth${RESET}?" bluetooth check_services_running() {
active_services=() # Array to store active services
printf "\n"
ask_yes_no "-Do you want to install ${YELLOW}Thunar file manager${RESET}?" thunar
if [[ "$thunar" == "Y" ]]; then
ask_yes_no "-Set ${YELLOW}Thunar${RESET} as the default file manager?" thunar_choice
fi
# Input group
printf "\n"
if ! groups "$(whoami)" | grep -q '\binput\b'; then
printf "${NOTE} adding to ${YELLOW}input${RESET} group might be necessary for ${YELLOW}waybar keyboard-state functionality${RESET} \n"
ask_yes_no "-Would you like to be added to the ${YELLOW}input${RESET} group?" input_group
fi
printf "\n"
printf "${NOTE} ${YELLOW}AGS Desktop Overview DEMO link${RESET} on README\n"
ask_yes_no "-Install ${YELLOW}AGS (aylur's GTK shell) v1${RESET} for Desktop-Like Overview?" ags
printf "\n"
ask_yes_no "-Install & configure ${YELLOW}SDDM${RESET} as login manager?" sddm
# check if any known login managers are active when users choose to install sddm
if [ "$sddm" == "y" ] || [ "$sddm" == "Y" ]; then
# List of services to check
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
# Loop through each service
for svc in "${services[@]}"; do for svc in "${services[@]}"; do
if systemctl is-active --quiet "$svc"; then if systemctl is-active --quiet "$svc"; then
echo "${ERROR} ${MAGENTA}$svc${RESET} is active. stop or disable it first or ${YELLOW}DO NOT choose SDDM${RESET} to install." active_services+=("$svc")
echo "${NOTE} If you have GDM, no need to install SDDM. GDM will work fine as Login Manager for Hyprland."
printf "\n%.0s" {1..2}
exit 1
fi fi
done done
fi
if [[ "$sddm" == "Y" ]]; then if [ ${#active_services[@]} -gt 0 ]; then
ask_yes_no "-Download and Install ${YELLOW}SDDM Theme?${RESET} " sddm_theme return 0
else
return 1
fi
}
if check_services_running; then
active_list=$(printf "%s\n" "${active_services[@]}")
# Display the active login manager(s) in the whiptail message box
whiptail --title "Active non-SDDM login manager(s) detected" \
--msgbox "The following login manager(s) are active:\n\n$active_list\n\nIf you want to install SDDM and SDDM theme, stop and disable first the active services above first before running this script\n\nYour option to install SDDM and SDDM theme has now been removed\n\n😎 Ja " 22 80
fi fi
printf "\n" # Check if NVIDIA GPU is detected
ask_yes_no "-Install ${YELLOW}XDG-DESKTOP-PORTAL-HYPRLAND?${RESET} (For proper Screen Share, e.g., OBS)" xdph nvidia_detected=false
if lspci | grep -i "nvidia" &> /dev/null; then
printf "\n" nvidia_detected=true
ask_yes_no "-Install ${YELLOW}zsh${RESET} with ${YELLOW}oh-my-zsh?${RESET}" zsh whiptail --title "NVIDIA GPU Detected" --msgbox "NVIDIA GPU detected in your system.\n\nNOTE: The script will install nvidia-dkms, nvidia-utils, and nvidia-settings if you choose to configure." 12 60
if [[ "$zsh" == "Y" ]]; then
ask_yes_no "-Add ${YELLOW}Pokemon color scripts?${RESET} in your terminal?" pokemon_choice
fi fi
printf "\n" # Initialize the options array for whiptail checklist
ask_yes_no "-Installing on ${YELLOW}Asus ROG laptops?${RESET}" rog options_command=(
whiptail --title "Select Options" --checklist "Choose options to install or configure\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 85 20
)
printf "\n" # Add NVIDIA options if detected
ask_yes_no "-Do you want to add pre-configured ${YELLOW}KooL's Hyprland dotfiles?${RESET}" dots if [ "$nvidia_detected" == "true" ]; then
options_command+=(
"nvidia" "Do you want script to configure NVIDIA GPU?" "OFF"
)
fi
printf "\n" # Check if user is already in the 'input' group
input_group_detected=false
if ! groups "$(whoami)" | grep -q '\binput\b'; then
input_group_detected=true
whiptail --title "Input Group" --msgbox "You are not currently in the input group.\n\nAdding you to the input group might be necessary for the Waybar keyboard-state functionality." 12 60
fi
# Ensuring all in the scripts folder are made executable # Add 'input_group' option if user is not in input group
chmod +x install-scripts/* if [ "$input_group_detected" == "true" ]; then
sleep 1 options_command+=(
"input_group" "Add your USER to input group for some waybar functionality?" "OFF"
)
fi
# Conditionally add SDDM and SDDM theme options if no active login manager is found
if ! check_services_running; then
options_command+=(
"sddm" "Install & configure SDDM login manager?" "OFF"
"sddm_theme" "Download & Install Additional SDDM theme?" "OFF"
)
fi
# Add the remaining static options
options_command+=(
"gtk_themes" "Install GTK themes (required for Dark/Light function)" "OFF"
"bluetooth" "Do you want script to configure Bluetooth?" "OFF"
"thunar" "Do you want Thunar file manager to be installed?" "OFF"
"ags" "Install AGS v1 for Desktop-Like Overview" "OFF"
"xdph" "Install XDG-DESKTOP-PORTAL-HYPRLAND (for screen share)?" "OFF"
"zsh" "Install zsh shell with Oh-My-Zsh?" "OFF"
"pokemon" "Add Pokemon color scripts to your terminal?" "OFF"
"rog" "Are you installing on Asus ROG laptops?" "OFF"
"dots" "Download and install pre-configured KooL Hyprland dotfiles?" "OFF"
)
# Capture the selected options before the while loop starts
while true; do
selected_options=$("${options_command[@]}" 3>&1 1>&2 2>&3)
# Check if the user pressed Cancel (exit status 1)
if [ $? -ne 0 ]; then
echo -e "\n"
echo "${INFO} You 🫵 cancelled the selection. ${YELLOW}Goodbye!${RESET}" | tee -a "$LOG"
exit 0 # Exit the script if Cancel is pressed
fi
# If no option was selected, notify and restart the selection
if [ -z "$selected_options" ]; then
whiptail --title "Warning" --msgbox "No options were selected. Please select at least one option." 10 60
continue # Return to selection if no options selected
fi
# Strip the quotes and trim spaces if necessary (sanitize the input)
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
# Convert selected options into an array (preserving spaces in values)
IFS=' ' read -r -a options <<< "$selected_options"
# Check if the "dots" option was selected
dots_selected="OFF"
for option in "${options[@]}"; do
if [[ "$option" == "dots" ]]; then
dots_selected="ON"
break
fi
done
# If "dots" is not selected, show a note and ask the user to proceed or return to choices
if [[ "$dots_selected" == "OFF" ]]; then
# Show a note about not selecting the "dots" option
if ! whiptail --title "KooL Hyprland Dot Files" --yesno \
"❓ You have not selected to install the pre-configured KooL Hyprland dotfiles.\n\nKindly NOTE that if you proceed without Dots, Hyprland will start with default vanilla Hyprland configuration and I won't be able to give you support.\n\n🔙 Would you like to continue install without KooL Hyprland Dots or return to choices/options?" \
--yes-button "Continue" --no-button "Return" 15 90; then
echo "🔙 Returning to options..." | tee -a "$LOG"
continue
else
# User chose to continue
echo "${INFO} ⚠️ Continuing WITHOUT the dotfiles installation..." | tee -a "$LOG"
printf "\n%.0s" {1..1}
fi
fi
# Prepare the confirmation message
confirm_message="You have selected the following options:\n\n"
for option in "${options[@]}"; do
confirm_message+=" - $option\n"
done
confirm_message+="\n😀 Are you happy with these choices?"
# Confirmation prompt
if ! whiptail --title "Confirm Your Choices" --yesno "$(printf "%s" "$confirm_message")" 25 80; then
echo -e "\n"
echo "${SKY_BLUE}You 🫵 cancelled the confirmation${RESET}. ${YELLOW}Exiting...${RESET}" | tee -a "$LOG"
exit 0
fi
echo "👌 ${OK} You confirmed your choices. Proceeding with ${SKY_BLUE}KooL 🇵🇭 Hyprland Installation...${RESET}" | tee -a "$LOG"
break
done
printf "\n%.0s" {1..1}
echo "${INFO} Running a ${SKY_BLUE}full system update...${RESET}" | tee -a "$LOG"
sudo apt update sudo apt update
sleep 1
# execute pre clean up # execute pre clean up
execute_script "02-pre-cleanup.sh" execute_script "02-pre-cleanup.sh"
# Install hyprland packages echo "${INFO} Installing ${SKY_BLUE}necessary dependencies...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "00-dependencies.sh" execute_script "00-dependencies.sh"
execute_script "01-hypr-pkgs.sh"
echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "fonts.sh" execute_script "fonts.sh"
execute_script "wallust.sh"
#execute_script "imagemagick.sh" #this is for compiling from source. 07 Sep 2024
execute_script "swww.sh"
execute_script "rofi-wayland.sh"
echo "${INFO} Installing ${SKY_BLUE}KooL Hyprland packages...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "01-hypr-pkgs.sh"
sleep 1 sleep 1
execute_script "hyprland.sh" execute_script "hyprland.sh"
sleep 1
execute_script "wallust.sh"
sleep 1
execute_script "swww.sh"
sleep 1
execute_script "rofi-wayland.sh"
sleep 1
execute_script "hyprlock.sh" execute_script "hyprlock.sh"
sleep 1
execute_script "hypridle.sh" execute_script "hypridle.sh"
#execute_script "imagemagick.sh" #this is for compiling from source. 07 Sep 2024
# execute_script "waybar-git.sh" only if waybar on repo is old # execute_script "waybar-git.sh" only if waybar on repo is old
sleep 1
# Clean up the selected options (remove quotes and trim spaces)
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
if [ "$nvidia" == "Y" ]; then # Convert selected options into an array (splitting by spaces)
execute_script "nvidia.sh" IFS=' ' read -r -a options <<< "$selected_options"
fi
if [ "$gtk_themes" == "Y" ]; then # Loop through selected options
execute_script "gtk_themes.sh" for option in "${options[@]}"; do
fi case "$option" in
sddm)
if [ "$bluetooth" == "Y" ]; then if check_services_running; then
execute_script "bluetooth.sh" active_list=$(printf "%s\n" "${active_services[@]}")
fi whiptail --title "Error" --msgbox "One of the following login services is running:\n$active_list\n\nPlease stop & disable it or DO not choose SDDM." 12 60
exec "$0"
if [ "$thunar" == "Y" ]; then else
execute_script "thunar.sh" echo "${INFO} Installing and configuring ${SKY_BLUE}SDDM...${RESET}" | tee -a "$LOG"
fi
if [ "$thunar_choice" == "Y" ]; then
execute_script "thunar_default.sh"
fi
if [ "$ags" == "Y" ]; then
execute_script "ags.sh"
fi
if [ "$sddm" == "Y" ]; then
execute_script "sddm.sh" execute_script "sddm.sh"
fi fi
if [ "$sddm_theme" == "Y" ]; then ;;
execute_script "sddm_theme.sh" nvidia)
fi echo "${INFO} Configuring ${SKY_BLUE}nvidia stuff${RESET}" | tee -a "$LOG"
execute_script "nvidia.sh"
if [ "$xdph" == "Y" ]; then ;;
execute_script "xdph.sh" gtk_themes)
fi echo "${INFO} Installing ${SKY_BLUE}GTK themes...${RESET}" | tee -a "$LOG"
execute_script "gtk_themes.sh"
;;
if [ "$zsh" == "Y" ]; then input_group)
execute_script "zsh.sh" echo "${INFO} Adding user into ${SKY_BLUE}input group...${RESET}" | tee -a "$LOG"
fi
if [ "$pokemon_choice" == "Y" ]; then
execute_script "zsh_pokemon.sh"
fi
if [ "$input_group" == "Y" ]; then
execute_script "InputGroup.sh" execute_script "InputGroup.sh"
fi ;;
ags)
if [ "$rog" == "Y" ]; then echo "${INFO} Installing ${SKY_BLUE}AGS v1 for Desktop Overview...${RESET}" | tee -a "$LOG"
execute_script "ags.sh"
;;
xdph)
echo "${INFO} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland...${RESET}" | tee -a "$LOG"
execute_script "xdph.sh"
;;
bluetooth)
echo "${INFO} Configuring ${SKY_BLUE}Bluetooth...${RESET}" | tee -a "$LOG"
execute_script "bluetooth.sh"
;;
thunar)
echo "${INFO} Installing ${SKY_BLUE}Thunar file manager...${RESET}" | tee -a "$LOG"
execute_script "thunar.sh"
execute_script "thunar_default.sh"
;;
sddm_theme)
echo "${INFO} Downloading & Installing ${SKY_BLUE}Additional SDDM theme...${RESET}" | tee -a "$LOG"
execute_script "sddm_theme.sh"
;;
zsh)
echo "${INFO} Installing ${SKY_BLUE}zsh with Oh-My-Zsh...${RESET}" | tee -a "$LOG"
execute_script "zsh.sh"
;;
pokemon)
echo "${INFO} Adding ${SKY_BLUE}Pokemon color scripts to terminal...${RESET}" | tee -a "$LOG"
execute_script "zsh_pokemon.sh"
;;
rog)
echo "${INFO} Installing ${SKY_BLUE}ROG laptop packages...${RESET}" | tee -a "$LOG"
execute_script "rog.sh" execute_script "rog.sh"
fi ;;
dots)
if [ "$dots" == "Y" ]; then echo "${INFO} Installing pre-configured ${SKY_BLUE}KooL Hyprland dotfiles...${RESET}" | tee -a "$LOG"
execute_script "dotfiles-branch.sh" execute_script "dotfiles-branch.sh"
fi ;;
*)
echo "Unknown option: $option" | tee -a "$LOG"
;;
esac
done
# Perform cleanup
printf "\n${OK} Performing some clean up.\n"
files_to_delete=("JetBrainsMono.tar.xz" "VictorMonoAll.zip" "FantasqueSansMono.zip")
for file in "${files_to_delete[@]}"; do
if [ -e "$file" ]; then
echo "$file found. Deleting..." | tee -a "$LOG"
rm "$file"
echo "$file deleted successfully." | tee -a "$LOG"
fi
done
# Clean up
printf "\n${OK} performing some clean up.\n"
if [ -e "JetBrainsMono.tar.xz" ]; then
echo "JetBrainsMono.tar.xz found. Deleting..."
rm JetBrainsMono.tar.xz
echo "JetBrainsMono.tar.xz deleted successfully."
fi
clear clear

View File

@ -1,49 +1,46 @@
# 💫 https://github.com/JaKooLit 💫 # # 💫 https://github.com/JaKooLit 💫 #
## -- Make sure you use the right answer or install script will fail ### # Define the options you want to preselect (either ON or OFF)
# Use only Y for Yes and N for No . If you put other letter, the script will fail # IMPORTANT: answer should be inside ""
### Script will install nvidia-dkms nvidia-utils & nvidia-settings
###-Would you like script to Configure NVIDIA for you? ###-Would you like script to Configure NVIDIA for you?
nvidia="N" nvidia="OFF"
###-Install GTK themes (required for Dark/Light function)? ###-Install GTK themes (required for Dark/Light function)?
gtk_themes="Y" gtk_themes="ON"
###-Do you want to configure Bluetooth? ###-Do you want to configure Bluetooth?
bluetooth="Y" bluetooth="ON"
###-Do you want to install Thunar file manager? ###-Do you want to install Thunar file manager?
thunar="Y" thunar="ON"
### Do you want to set Thunar as the default file manager?
thunar_choice="Y"
### Adding user to the 'input' group might be necessary for waybar keyboard-state functionality ### Adding user to the 'input' group might be necessary for waybar keyboard-state functionality
input_group="Y" input_group="ON"
### Desktop overview Demo Link in README
### Desktop overview Demo Link in README ### Desktop overview Demo Link in README
### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?" ### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?"
ags="Y" ags="ON"
###-Install & configure SDDM log-in Manager ###-Install & configure SDDM log-in Manager
sddm="Y" sddm="ON"
### install and download SDDM themes ### install and download SDDM themes
sddm_theme="Y" sddm_theme="ON"
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS) ###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
xdph="Y" xdph="ON"
### Shell extension. Bash alternative ### Shell extension. Bash alternative
###-Install zsh, oh-my-zsh ###-Install zsh, oh-my-zsh
zsh="Y" zsh="ON"
### add Pokemon color scripts to terminal ### add Pokemon color scripts to terminal
pokemon_choice="Y" pokemon="ON"
### This will install ASUSCTL & SUPERGFXCTL ### This will install ASUSCTL & SUPERGFXCTL
###-Installing on Asus ROG Laptops? ###-Installing on Asus ROG Laptops?
rog="N" rog="OFF"
###-Do you want to add pre-configured KooL's Hyprland dotfiles? ###-Download and Add pre-configured Hyprland dotfiles?
dots="Y" dots="ON"