mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 18:20:13 +01:00
Compare commits
No commits in common. "9a671a4033f3a8ceeedb22ce8b7c85e7fde21b82" and "6b5175c2a337d542b354fb7680fd50c11a4e2c34" have entirely different histories.
9a671a4033
...
6b5175c2a3
@ -1,9 +1,5 @@
|
||||
## CHANGELOGS
|
||||
|
||||
## 06 March 2025
|
||||
- Switched to whiptail version for Y & N questions
|
||||
- switched eza to lsd
|
||||
|
||||
## 23 Feb 2025
|
||||
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
|
||||
- added Fantasque Sans Mono Nerd for Kitty
|
||||
|
||||
23
README.md
23
README.md
@ -124,12 +124,6 @@ sudo nano /etc/apt/sources.list
|
||||
> Another important note for nvidia owners
|
||||
> If you have nvidia, by default debian is installing nouveau or open-source nvidia driver. If you want to keep the default nvidia driver installed by Debian, choose N on the if you have nvidia question. Or else you will encounter same issue as SDDM above.
|
||||
|
||||
## ✨ Auto clone and install
|
||||
- you can use this command to automatically clone the installer and ran the script for you
|
||||
```bash
|
||||
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/auto-install.sh)
|
||||
```
|
||||
|
||||
## ✨ to use this script
|
||||
> clone this repo (latest commit only) by using git. Change directory, make executable and run the script
|
||||
```bash
|
||||
@ -142,6 +136,23 @@ chmod +x install.sh
|
||||
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/Debian-Install.png" />
|
||||
|
||||
|
||||
### 🤟 semi-unattended installation (new for Feb 2025)
|
||||
- edit preset.sh to modify what packages you want. Make sure to change only with Y or N
|
||||
- to use preset instead of usual `./install.sh` you can ran like this
|
||||
|
||||
```bash
|
||||
./install.sh --preset
|
||||
```
|
||||
|
||||
- if you have nvidia you can add --nvidia argument
|
||||
|
||||
```bash
|
||||
./install.sh --preset --nvidia
|
||||
```
|
||||
|
||||
- its called semi-unattended it is because you still have to answer some questions when installing KooL's Hyprland Dots
|
||||
|
||||
|
||||
#### ✨ for ZSH and OH-MY-ZSH installation
|
||||
> installer should auto change your default shell to zsh. However, if it does not, do this
|
||||
```bash
|
||||
|
||||
@ -22,10 +22,8 @@ source $ZSH/oh-my-zsh.sh
|
||||
# fastfetch. Will be disabled if above colorscript was chosen to install
|
||||
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
|
||||
|
||||
# Set-up icons for files/folders in terminal using lsd
|
||||
alias ls='lsd'
|
||||
alias l='ls -l'
|
||||
alias la='ls -a'
|
||||
alias lla='ls -la'
|
||||
alias lt='ls --tree'
|
||||
# Set-up icons for files/folders in terminal using eza
|
||||
alias ls='eza -a --icons'
|
||||
alias ll='eza -al --icons'
|
||||
alias lt='eza -a --tree --level=1 --icons'
|
||||
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
# https://github.com/JaKooLit
|
||||
|
||||
Distro="Debian-Hyprland"
|
||||
Github_URL="https://github.com/JaKooLit/$Distro.git"
|
||||
Distro_DIR="$HOME/$Distro"
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
# Package GIT
|
||||
if ! command -v git &> /dev/null
|
||||
then
|
||||
echo "Git not found! Installing Git..."
|
||||
sudo apt update && sudo apt install -y git
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if the repository already exists
|
||||
if [ -d "$Distro_DIR" ]; then
|
||||
echo "$Distro_DIR exists. Updating the repository..."
|
||||
cd "$Distro_DIR"
|
||||
git stash && git pull
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
else
|
||||
echo "$Distro_DIR does not exist. Cloning the repository..."
|
||||
git clone --depth=1 "$Github_URL" "$Distro_DIR"
|
||||
cd "$Distro_DIR"
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@ -65,17 +65,14 @@ build_dep=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_dependencies.log"
|
||||
|
||||
@ -76,17 +76,14 @@ force=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_hypr-pkgs.log"
|
||||
|
||||
@ -21,17 +21,14 @@ PACKAGES=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_pre-clean-up.log"
|
||||
|
||||
@ -27,17 +27,14 @@ local_pkgs_installed_2=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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"
|
||||
|
||||
@ -77,16 +77,6 @@ build_dep() {
|
||||
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
|
||||
re_install_package() {
|
||||
(
|
||||
|
||||
@ -3,17 +3,14 @@
|
||||
# Adding users into input group #
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_input.log"
|
||||
|
||||
@ -28,17 +28,14 @@ build_dep=(
|
||||
ags_tag="v1.9.0"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_ags.log"
|
||||
|
||||
@ -8,17 +8,14 @@ blue=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_bluetooth.log"
|
||||
|
||||
@ -6,17 +6,8 @@
|
||||
dots_tag="Deb-Untu-Dots"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { 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
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Check if Hyprland-Dots exists
|
||||
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n"
|
||||
|
||||
@ -11,17 +11,14 @@ fonts=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_fonts.log"
|
||||
|
||||
@ -8,17 +8,15 @@ engine=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_themes.log"
|
||||
|
||||
@ -4,8 +4,6 @@
|
||||
|
||||
idle=(
|
||||
libsdbus-c++-dev
|
||||
libsdbus-c++2
|
||||
libsdbus-c++-bin
|
||||
libhyprlang-dev
|
||||
)
|
||||
|
||||
@ -13,17 +11,14 @@ idle=(
|
||||
idle_tag="v0.1.2"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_hypridle.log"
|
||||
|
||||
@ -15,21 +15,19 @@ f_hypr=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { 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
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
# 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"
|
||||
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Hyprland
|
||||
printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n"
|
||||
for HYPR in "${hypr[@]}"; do
|
||||
|
||||
@ -15,17 +15,14 @@ lock=(
|
||||
lock_tag="v0.4.0"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_hyprlock.log"
|
||||
|
||||
@ -14,18 +14,18 @@ nvidia_pkg=(
|
||||
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! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_nvidia.log"
|
||||
|
||||
@ -36,17 +36,14 @@ rofi=(
|
||||
|
||||
rofi_tag="1.7.8+wayland1"
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_rofi_wayland.log"
|
||||
|
||||
@ -7,17 +7,14 @@ asus=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="install-$(date +%d-%H%M%S)_rog.log"
|
||||
|
||||
@ -23,17 +23,14 @@ login=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_sddm.log"
|
||||
|
||||
@ -6,17 +6,14 @@ source_theme="https://codeberg.org/JaKooLit/sddm-sequoia"
|
||||
theme_name="sequoia_2"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_sddm_theme.log"
|
||||
|
||||
@ -22,17 +22,14 @@ swww=(
|
||||
swww_tag="v0.9.5"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_swww.log"
|
||||
|
||||
@ -12,17 +12,15 @@ thunar=(
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_thunar.log"
|
||||
|
||||
@ -4,17 +4,14 @@
|
||||
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
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)_thunar-default.log"
|
||||
|
||||
@ -2,22 +2,15 @@
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# wallust - pywal colors replacement #
|
||||
|
||||
wallust=(
|
||||
wallust
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
# Source external functions, adjust path as necessary
|
||||
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)_wallust.log"
|
||||
@ -41,24 +34,16 @@ fi
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
# Install Wallust using Cargo
|
||||
for WALL in "${wallust[@]}"; do
|
||||
cargo_install "$WALL" "$LOG"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "${OK} ${MAGENTA}Wallust${RESET} installed successfully." | tee -a "$LOG"
|
||||
else
|
||||
echo "${ERROR} Installation of ${MAGENTA}$WALL${RESET} failed. Check the log file $LOG for details." | tee -a "$LOG"
|
||||
exit 1
|
||||
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"
|
||||
echo "${INFO} Installing ${SKY_BLUE}Wallust using Cargo${RESET} ..." | tee -a "$LOG"
|
||||
if cargo install wallust 2>&1 | tee -a "$LOG" ; then
|
||||
echo "${OK} ${MAGENTA}Wallust${RESET} installed successfully." | tee -a "$LOG"
|
||||
|
||||
# Move the newly compiled binary to /usr/local/bin
|
||||
echo "Moving Wallust binary to /usr/local/bin..." | tee -a "$LOG"
|
||||
sudo mv "$HOME/.cargo/bin/wallust" /usr/local/bin 2>&1 | tee -a "$LOG"
|
||||
else
|
||||
echo "${ERROR} Failed to move Wallust binary. Check the log file $LOG for details." | tee -a "$LOG"
|
||||
echo "${ERROR} Wallust installation failed. Check the log file $LOG for details." | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -9,17 +9,10 @@ xdg=(
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { 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
|
||||
cd "$PARENT_DIR" || exit 1
|
||||
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
||||
|
||||
# Check if the file exists and remove it
|
||||
|
||||
@ -3,24 +3,21 @@
|
||||
# Zsh and Oh my Zsh + Optional Pokemon ColorScripts#
|
||||
|
||||
zsh=(
|
||||
lsd
|
||||
eza
|
||||
mercurial
|
||||
zsh
|
||||
zplug
|
||||
)
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log"
|
||||
|
||||
@ -3,17 +3,14 @@
|
||||
# pokemon-color-scripts#
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
# Determine the directory where the script is located
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Change the working directory to the parent directory of the script
|
||||
PARENT_DIR="$SCRIPT_DIR/.."
|
||||
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
cd "$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
|
||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"
|
||||
|
||||
531
install.sh
531
install.sh
@ -20,17 +20,9 @@ SKY_BLUE="$(tput setaf 6)"
|
||||
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
|
||||
if [[ $EUID -eq 0 ]]; then
|
||||
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." | tee -a "$LOG"
|
||||
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......."
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 1
|
||||
fi
|
||||
@ -46,57 +38,126 @@ is_ubuntu() {
|
||||
|
||||
# Check if the system is Ubuntu
|
||||
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}" | tee -a "$LOG"
|
||||
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} "
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# install whiptails if detected not installed. Necessary for this version
|
||||
if ! command -v whiptail >/dev/null; then
|
||||
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
||||
sudo apt install -y whiptail
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
# Check if --preset argument is provided
|
||||
if [[ "$1" == "--preset" ]]; then
|
||||
|
||||
# nvidia
|
||||
if [[ "$2" == "--nvidia" ]]; then
|
||||
sed -i 's/^nvidia=".*"/nvidia="Y"/' preset.sh
|
||||
fi
|
||||
|
||||
source ./preset.sh
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
echo -e "\e[35m
|
||||
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
|
||||
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Debian Trixie / SiD
|
||||
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘
|
||||
\e[0m"
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Welcome message using whiptail (for displaying information)
|
||||
whiptail --title "KooL Debian-Hyprland Trixie-SID (2025) Install Script" \
|
||||
--msgbox "Welcome to KooL Debian-Hyprland Trixie-SID (2025) Install Script!!!\n\n\
|
||||
ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\n\
|
||||
NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland may NOT start!" \
|
||||
15 80
|
||||
# Welcome message
|
||||
echo "${SKY_BLUE}Welcome to JaKooLit's Debian Trixie/SID Hyprland (2025) Install Script!${RESET}"
|
||||
echo
|
||||
echo "${WARNING}ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) ${RESET}"
|
||||
echo
|
||||
echo "${YELLOW}NOTE: You will be required to answer some questions during the installation! ${RESET}"
|
||||
echo
|
||||
echo "${YELLOW}NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! ${RESET}"
|
||||
echo
|
||||
|
||||
# Ask if the user wants to proceed
|
||||
if ! whiptail --title "Proceed with Installation?" \
|
||||
--yesno "Would you like to proceed?" 7 50; then
|
||||
echo -e "\n"
|
||||
echo "❌ ${INFO} You 🫵 chose ${YELLOW}NOT${RESET} to proceed. ${YELLOW}Exiting...${RESET}" | tee -a "$LOG"
|
||||
echo -e "\n"
|
||||
# Prompt user to proceed
|
||||
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
|
||||
|
||||
if [ "$proceed" != "y" ]; then
|
||||
printf "\n%.0s" {1..2}
|
||||
echo "${INFO} Installation aborted. ${SKY_BLUE}No changes in your system.${RESET} ${YELLOW}Goodbye!${RESET}"
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "👌 ${OK} 🇵🇭 ${MAGENTA}KooL..${RESET} ${SKY_BLUE}lets continue with the installation...${RESET}" | tee -a "$LOG"
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
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}
|
||||
|
||||
# install pciutils if detected not installed. Necessary for detecting GPU
|
||||
if ! zypper se -i pciutils > /dev/null; then
|
||||
echo "pciutils is not installed. Installing..." | tee -a "$LOG"
|
||||
if ! dpkg -l | grep -w pciutils > /dev/null; then
|
||||
echo "pciutils is not installed. Installing..."
|
||||
sudo apt install -y pciutils
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
|
||||
# Path to the install-scripts directory
|
||||
# Function to colorize prompts
|
||||
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
|
||||
|
||||
# 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
|
||||
execute_script() {
|
||||
local script="$1"
|
||||
@ -104,314 +165,174 @@ execute_script() {
|
||||
if [ -f "$script_path" ]; then
|
||||
chmod +x "$script_path"
|
||||
if [ -x "$script_path" ]; then
|
||||
env "$script_path"
|
||||
env USE_PRESET=$use_preset "$script_path"
|
||||
else
|
||||
echo "Failed to make script '$script' executable." | tee -a "$LOG"
|
||||
echo "Failed to make script '$script' executable."
|
||||
fi
|
||||
else
|
||||
echo "Script '$script' not found in '$script_directory'." | tee -a "$LOG"
|
||||
echo "Script '$script' not found in '$script_directory'."
|
||||
fi
|
||||
}
|
||||
|
||||
#################
|
||||
## Default values for the options (will be overwritten by preset file if available)
|
||||
gtk_themes="OFF"
|
||||
bluetooth="OFF"
|
||||
thunar="OFF"
|
||||
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"
|
||||
# Collect user responses to all questions
|
||||
# Check if nvidia is present
|
||||
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||
printf "\n"
|
||||
printf "${INFO} ${YELLOW}NVIDIA GPU${RESET} detected in your system \n"
|
||||
ask_yes_no "-Do you want script to configure ${YELLOW}NVIDIA${RESET} for you?" nvidia
|
||||
fi
|
||||
|
||||
# List of services to check for active login managers
|
||||
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}GTK themes${RESET} (required for Dark/Light function)?" gtk_themes
|
||||
|
||||
# Function to check if any login services are active
|
||||
check_services_running() {
|
||||
active_services=() # Array to store active services
|
||||
printf "\n"
|
||||
ask_yes_no "-Do you want to configure ${YELLOW}Bluetooth${RESET}?" bluetooth
|
||||
|
||||
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
|
||||
if systemctl is-active --quiet "$svc"; then
|
||||
active_services+=("$svc")
|
||||
echo "${ERROR} ${MAGENTA}$svc${RESET} is active. stop or disable it first or ${YELLOW}DO NOT choose SDDM${RESET} to install."
|
||||
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
|
||||
done
|
||||
|
||||
if [ ${#active_services[@]} -gt 0 ]; then
|
||||
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
|
||||
if [[ "$sddm" == "Y" ]]; then
|
||||
ask_yes_no "-Download and Install ${YELLOW}SDDM Theme?${RESET} " sddm_theme
|
||||
fi
|
||||
|
||||
# Check if NVIDIA GPU is detected
|
||||
nvidia_detected=false
|
||||
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||
nvidia_detected=true
|
||||
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
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}XDG-DESKTOP-PORTAL-HYPRLAND?${RESET} (For proper Screen Share, e.g., OBS)" xdph
|
||||
|
||||
printf "\n"
|
||||
ask_yes_no "-Install ${YELLOW}zsh${RESET} with ${YELLOW}oh-my-zsh?${RESET}" zsh
|
||||
|
||||
if [[ "$zsh" == "Y" ]]; then
|
||||
ask_yes_no "-Add ${YELLOW}Pokemon color scripts?${RESET} in your terminal?" pokemon_choice
|
||||
fi
|
||||
|
||||
# Initialize the options array for whiptail checklist
|
||||
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"
|
||||
ask_yes_no "-Installing on ${YELLOW}Asus ROG laptops?${RESET}" rog
|
||||
|
||||
# Add NVIDIA options if detected
|
||||
if [ "$nvidia_detected" == "true" ]; then
|
||||
options_command+=(
|
||||
"nvidia" "Do you want script to configure NVIDIA GPU?" "OFF"
|
||||
)
|
||||
fi
|
||||
printf "\n"
|
||||
ask_yes_no "-Do you want to add pre-configured ${YELLOW}KooL's Hyprland dotfiles?${RESET}" dots
|
||||
|
||||
# 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
|
||||
printf "\n"
|
||||
|
||||
# Add 'input_group' option if user is not in input group
|
||||
if [ "$input_group_detected" == "true" ]; then
|
||||
options_command+=(
|
||||
"input_group" "Add your USER to input group for some waybar functionality?" "OFF"
|
||||
)
|
||||
fi
|
||||
# Ensuring all in the scripts folder are made executable
|
||||
chmod +x install-scripts/*
|
||||
sleep 1
|
||||
|
||||
# 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
|
||||
|
||||
sleep 1
|
||||
# execute pre clean up
|
||||
execute_script "02-pre-cleanup.sh"
|
||||
|
||||
echo "${INFO} Installing ${SKY_BLUE}necessary dependencies...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
# Install hyprland packages
|
||||
execute_script "00-dependencies.sh"
|
||||
|
||||
echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "fonts.sh"
|
||||
|
||||
echo "${INFO} Installing ${SKY_BLUE}KooL Hyprland packages...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "01-hypr-pkgs.sh"
|
||||
sleep 1
|
||||
execute_script "hyprland.sh"
|
||||
sleep 1
|
||||
execute_script "fonts.sh"
|
||||
execute_script "wallust.sh"
|
||||
sleep 1
|
||||
execute_script "swww.sh"
|
||||
sleep 1
|
||||
execute_script "rofi-wayland.sh"
|
||||
sleep 1
|
||||
execute_script "hyprlock.sh"
|
||||
sleep 1
|
||||
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 "swww.sh"
|
||||
execute_script "rofi-wayland.sh"
|
||||
|
||||
sleep 1
|
||||
# Clean up the selected options (remove quotes and trim spaces)
|
||||
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
|
||||
execute_script "hyprland.sh"
|
||||
execute_script "hyprlock.sh"
|
||||
execute_script "hypridle.sh"
|
||||
# execute_script "waybar-git.sh" only if waybar on repo is old
|
||||
|
||||
# Convert selected options into an array (splitting by spaces)
|
||||
IFS=' ' read -r -a options <<< "$selected_options"
|
||||
|
||||
# Loop through selected options
|
||||
for option in "${options[@]}"; do
|
||||
case "$option" in
|
||||
sddm)
|
||||
if check_services_running; then
|
||||
active_list=$(printf "%s\n" "${active_services[@]}")
|
||||
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"
|
||||
else
|
||||
echo "${INFO} Installing and configuring ${SKY_BLUE}SDDM...${RESET}" | tee -a "$LOG"
|
||||
execute_script "sddm.sh"
|
||||
fi
|
||||
;;
|
||||
nvidia)
|
||||
echo "${INFO} Configuring ${SKY_BLUE}nvidia stuff${RESET}" | tee -a "$LOG"
|
||||
execute_script "nvidia.sh"
|
||||
;;
|
||||
gtk_themes)
|
||||
echo "${INFO} Installing ${SKY_BLUE}GTK themes...${RESET}" | tee -a "$LOG"
|
||||
execute_script "gtk_themes.sh"
|
||||
;;
|
||||
input_group)
|
||||
echo "${INFO} Adding user into ${SKY_BLUE}input group...${RESET}" | tee -a "$LOG"
|
||||
execute_script "InputGroup.sh"
|
||||
;;
|
||||
ags)
|
||||
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"
|
||||
;;
|
||||
dots)
|
||||
echo "${INFO} Installing pre-configured ${SKY_BLUE}KooL Hyprland dotfiles...${RESET}" | tee -a "$LOG"
|
||||
execute_script "dotfiles-branch.sh"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $option" | tee -a "$LOG"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "$nvidia" == "Y" ]; then
|
||||
execute_script "nvidia.sh"
|
||||
fi
|
||||
|
||||
# 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
|
||||
if [ "$gtk_themes" == "Y" ]; then
|
||||
execute_script "gtk_themes.sh"
|
||||
fi
|
||||
|
||||
if [ "$bluetooth" == "Y" ]; then
|
||||
execute_script "bluetooth.sh"
|
||||
fi
|
||||
|
||||
if [ "$thunar" == "Y" ]; then
|
||||
execute_script "thunar.sh"
|
||||
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"
|
||||
fi
|
||||
if [ "$sddm_theme" == "Y" ]; then
|
||||
execute_script "sddm_theme.sh"
|
||||
fi
|
||||
|
||||
if [ "$xdph" == "Y" ]; then
|
||||
execute_script "xdph.sh"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$zsh" == "Y" ]; then
|
||||
execute_script "zsh.sh"
|
||||
fi
|
||||
if [ "$pokemon_choice" == "Y" ]; then
|
||||
execute_script "zsh_pokemon.sh"
|
||||
fi
|
||||
|
||||
if [ "$input_group" == "Y" ]; then
|
||||
execute_script "InputGroup.sh"
|
||||
fi
|
||||
|
||||
if [ "$rog" == "Y" ]; then
|
||||
execute_script "rog.sh"
|
||||
fi
|
||||
|
||||
if [ "$dots" == "Y" ]; then
|
||||
execute_script "dotfiles-branch.sh"
|
||||
fi
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
39
preset.sh
39
preset.sh
@ -1,46 +1,49 @@
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
|
||||
# Define the options you want to preselect (either ON or OFF)
|
||||
# IMPORTANT: answer should be inside ""
|
||||
## -- Make sure you use the right answer or install script will fail ###
|
||||
# Use only Y for Yes and N for No . If you put other letter, the script will fail
|
||||
|
||||
|
||||
### Script will install nvidia-dkms nvidia-utils & nvidia-settings
|
||||
###-Would you like script to Configure NVIDIA for you?
|
||||
nvidia="OFF"
|
||||
nvidia="N"
|
||||
|
||||
###-Install GTK themes (required for Dark/Light function)?
|
||||
gtk_themes="ON"
|
||||
gtk_themes="Y"
|
||||
|
||||
###-Do you want to configure Bluetooth?
|
||||
bluetooth="ON"
|
||||
bluetooth="Y"
|
||||
|
||||
###-Do you want to install Thunar file manager?
|
||||
thunar="ON"
|
||||
thunar="Y"
|
||||
### 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
|
||||
input_group="ON"
|
||||
input_group="Y"
|
||||
|
||||
### Desktop overview Demo Link in README
|
||||
### Desktop overview Demo Link in README
|
||||
### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?"
|
||||
ags="ON"
|
||||
ags="Y"
|
||||
|
||||
###-Install & configure SDDM log-in Manager
|
||||
sddm="ON"
|
||||
sddm="Y"
|
||||
### install and download SDDM themes
|
||||
sddm_theme="ON"
|
||||
sddm_theme="Y"
|
||||
|
||||
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
|
||||
xdph="ON"
|
||||
xdph="Y"
|
||||
|
||||
### Shell extension. Bash alternative
|
||||
###-Install zsh, oh-my-zsh
|
||||
zsh="ON"
|
||||
zsh="Y"
|
||||
|
||||
### add Pokemon color scripts to terminal
|
||||
pokemon="ON"
|
||||
pokemon_choice="Y"
|
||||
|
||||
### This will install ASUSCTL & SUPERGFXCTL
|
||||
###-Installing on Asus ROG Laptops?
|
||||
rog="OFF"
|
||||
rog="N"
|
||||
|
||||
###-Download and Add pre-configured Hyprland dotfiles?
|
||||
dots="ON"
|
||||
###-Do you want to add pre-configured KooL's Hyprland dotfiles?
|
||||
dots="Y"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user