Merge pull request #14 from JaKooLit/development

Migration to new structure completed
This commit is contained in:
Ja.KooLit 2024-01-01 23:24:20 +09:00 committed by GitHub
commit fa1b5cc43a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 447 additions and 602 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 KiB

View File

@ -1,5 +1,12 @@
## Changelogs
## 01 Jan 2024
- Re-coded complete and test
- Added to spice up pacman.conf including adding of ILoveCandy on it :)
## 30 Dec 2023
- Install scripts reconstructed
## 29 December 2023
- Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start

BIN
Installer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -68,7 +68,7 @@ chmod +x install.sh
```
<p align="center">
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Arch-Installer.png" />
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Installer.png" />
#### ✨ for ZSH and OH-MY-ZSH installation
> installer should auto change your default shell to zsh. However, if it does not, do this
@ -94,6 +94,10 @@ source ~/.zshrc
- for the install part, kindly open issue on this repo
- for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues)
#### 🔧 Proper way to re-installing a particular script from install-scripts folder
- CD into Arch-Hyprland Folder and then ran the below command.
- i.e. `./install-scripts/gtk-themes` - For reinstall GTK Themes.
#### 🛣️ Roadmap:
- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE
- [ ] possibly adding gruvbox themes, cursors, icons

View File

@ -20,7 +20,7 @@ source $ZSH/oh-my-zsh.sh
# Display Pokemon-colorscripts
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
pokemon-colorscripts --no-title -s -r
#pokemon-colorscripts --no-title -s -r
### From this line is for pywal-colors

42
install-scripts/00-base.sh Normal file → Executable file
View File

@ -1,50 +1,22 @@
#!/bin/bash
# https://github.com/JaKooLit
# 💫 https://github.com/JaKooLit 💫 #
# base devel #
base=(
base-devel
)
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ######################################
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
RESET=$(tput sgr0)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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)_base.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log"
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
exit 1
fi
fi
}
# Installation of main components
printf "\n%s - Installing base-devel \n" "${NOTE}"
for PKG1 in "${base[@]}"; do
install_package "$PKG1" | tee -a "$LOG"
install_package_pacman "$PKG1" | tee -a "$LOG"
done
# clear
clear

68
install-scripts/00-hypr-pkgs.sh Normal file → Executable file
View File

@ -1,6 +1,6 @@
#!/bin/bash
# https://github.com/JaKooLit
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland Packages #
# edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly.
@ -83,63 +83,19 @@ uninstall=(
mako
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_hypr-pkgs.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Function for uninstalling packages
uninstall_package() {
# Checking if package is installed
if pacman -Qi "$1" &>> /dev/null ; then
# Package is installed
echo -e "${NOTE} Uninstalling $1 ..."
sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is uninstalled
if ! pacman -Qi "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
else
# Something went wrong, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
exit 1
fi
fi
}
# Installation of main components
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
@ -152,8 +108,8 @@ for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${Extra[@
fi
done
# Checking if mako or dunst is installed
printf "\n%s - Checking if mako or dunst are installed and removing for swaync to work properly \n" "${NOTE}"
for PKG in "${uninstall[@]}"; do
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then

View File

@ -0,0 +1,82 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Global Functions for Scripts #
set -e
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Function for installing packages
install_package_pacman() {
# Checking if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
exit 1
fi
fi
}
ISAUR=$(command -v yay || command -v paru)
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Function for uninstalling packages
uninstall_package() {
# Checking if package is installed
if pacman -Qi "$1" &>> /dev/null ; then
# Package is installed
echo -e "${NOTE} Uninstalling $1 ..."
sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is uninstalled
if ! pacman -Qi "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
else
# Something went wrong, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
exit 1
fi
fi
}

23
install-scripts/InputGroup.sh Normal file → Executable file
View File

@ -1,6 +1,9 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Adding users into input group #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -8,18 +11,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
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)_input.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
while true; do
echo "${WARN} This script will add or remove your user from the 'input' group."
@ -36,7 +31,7 @@ while true; do
sudo groupadd input
# Log the creation of the 'input' group
echo "$(date '+%Y-%m-%d %H:%M:%S') - 'input' group created" >> "$LOG"
echo "'input' group created" >> "$LOG"
fi
# Add the user to the input group
@ -44,7 +39,7 @@ while true; do
echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in."
# Log the addition of the user to the 'input' group
echo "$(date '+%Y-%m-%d %H:%M:%S') - User added to 'input' group" >> "$LOG"
echo "User added to 'input' group" >> "$LOG"
break # Break out of the loop if 'yes' is chosen
elif [[ $choice == "n" || $choice == "N" ]]; then
echo "${NOTE} No changes made. Exiting the script."
@ -53,3 +48,5 @@ while true; do
echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no."
fi
done
clear

54
install-scripts/bluetooth.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Bluetooth Stuff #
blue=(
bluez
@ -6,55 +8,27 @@ bluez-utils
blueman
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
# Bluetooth
printf "${NOTE} Installing Bluetooth Packages...\n"
for BLUE in "${blue[@]}"; do
install_package "$BLUE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; }
done
printf " Activating Bluetooth Services...\n"
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
printf " Activating Bluetooth Services...\n"
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
clear
clear

30
install-scripts/dotfiles.sh Normal file → Executable file
View File

@ -1,16 +1,10 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland-Dots to download from Releases #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n"
@ -36,14 +30,14 @@ if [ -f Hyprland-Dots.tar.gz ]; then
echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)."
read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice
if [ "$upgrade_choice" = "y" ]; then
echo -e "${NOTE} Proceeding to download the latest release."
echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
# Delete existing directories starting with JaKooLit-Hyprland-Dots
find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} +
rm -f Hyprland-Dots.tar.gz
printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n"
else
echo -e "${NOTE} User chose not to upgrade. Exiting..."
echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
exit 0
fi
fi
@ -56,7 +50,7 @@ latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/release
# Check if the tag is obtained successfully
if [ -z "$latest_tag" ]; then
echo -e "${ERROR} Unable to fetch the latest tag information."
echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
exit 1
fi
@ -65,7 +59,7 @@ latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots
# Check if the URL is obtained successfully
if [ -z "$latest_tarball_url" ]; then
echo -e "${ERROR} Unable to fetch the tarball URL for the latest release."
echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
exit 1
fi
@ -90,10 +84,12 @@ if curl -L "$latest_tarball_url" -o "$file_name"; then
# Set execute permission for copy.sh and execute it
chmod +x copy.sh
./copy.sh 2>&1 | tee -a "../install-$(date +'%d-%H%M%S')_dots.log"
./copy.sh
echo -e "${OK} Latest source code release downloaded, extracted, and processed successfully."
echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
else
echo -e "${ERROR} Failed to download the latest source code release."
echo -e "${ERROR} Failed to download the latest Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
exit 1
fi
clear

View File

@ -1,11 +1,13 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# GTK Themes & ICONS and Sourcing from a different Repo #
engine=(
unzip
gtk-engine-murrine
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -14,45 +16,12 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
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)_themes_main.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# installing engine needed for gtk themes
for PKG1 in "${engine[@]}"; do
install_package "$PKG1" 2>&1 | tee -a "$LOG"
@ -69,10 +38,10 @@ if [ -d "GTK-themes-icons" ]; then
fi
echo "$NOTE Cloning Tokyo Theme GTK themes and Icons repository..." 2>&1 | tee -a "$LOG"
if git clone https://github.com/JaKooLit/GTK-themes-icons.git 2>&1 | tee -a "$LOG"; then
if git clone https://github.com/JaKooLit/GTK-themes-icons.git ; then
cd GTK-themes-icons
chmod +x auto-extract.sh
./auto-extract.sh 2>&1 | tee -a "$LOG"
./auto-extract.sh
cd ..
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes folders" 2>&1 | tee -a "$LOG"
else

50
install-scripts/hyprland.sh Normal file → Executable file
View File

@ -1,48 +1,24 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Main Hyprland Package #
hypr=(
hyprland
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_hyprland.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Removing other Hyprland to avoid conflict
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
@ -58,6 +34,6 @@ printf "${NOTE} Installing Hyprland .......\n"
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
done
done
clear
clear

52
install-scripts/nvidia.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Nvidia Stuffs #
nvidia_pkg=(
nvidia-dkms
@ -12,45 +14,19 @@ hypr=(
hyprland
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_nvidia.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :("
exit 1
fi
fi
}
# nvidia stuff
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
@ -108,9 +84,9 @@ if [ -f /etc/default/grub ]; then
sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
# Regenerate GRUB configuration
sudo grub-mkconfig -o /boot/grub/grub.cfg
echo "nvidia-drm.modeset=1 added to /etc/default/grub"
echo "nvidia-drm.modeset=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG"
else
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub"
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" 2>&1 | tee -a "$LOG"
fi
else
echo "/etc/default/grub does not exist"
@ -137,7 +113,7 @@ if [[ $response =~ ^[Yy]$ ]]; then
fi
fi
else
printf "${NOTE} Skipping nouveau blacklisting.\n"
printf "${NOTE} Skipping nouveau blacklisting.\n" 2>&1 | tee -a "$LOG"
fi
clear

45
install-scripts/pacman.sh Executable file
View File

@ -0,0 +1,45 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# pacman adding up extra-spices #
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pacman.log"
echo -e "${NOTE} Adding Extra Spice in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG"
pacman_conf="/etc/pacman.conf"
# Remove comments '#' from specific lines
lines_to_edit=(
"Color"
"CheckSpace"
"VerbosePkgLists"
"ParallelDownloads"
)
# Uncomment specified lines if they are commented out
for line in "${lines_to_edit[@]}"; do
if grep -q "^#$line" "$pacman_conf"; then
sudo sed -i "s/^#$line/$line/" "$pacman_conf"
echo -e "${CAT} Uncommented: $line ${RESET}" 2>&1 | tee -a "$LOG"
else
echo -e "${CAT} $line is already uncommented. ${RESET}" 2>&1 | tee -a "$LOG"
fi
done
# Add "ILoveCandy" below ParallelDownloads if it doesn't exist
if grep -q "^ParallelDownloads" "$pacman_conf" && ! grep -q "^ILoveCandy" "$pacman_conf"; then
sudo sed -i "/^ParallelDownloads/a ILoveCandy" "$pacman_conf"
echo -e "${CAT} Added ILoveCandy below ParallelDownloads. ${RESET}" 2>&1 | tee -a "$LOG"
else
echo -e "${CAT} ILoveCandy already exists ${RESET}" 2>&1 | tee -a "$LOG"
fi
echo -e "${CAT} Pacman.conf spicing up completed ${RESET}" 2>&1 | tee -a "$LOG"
# updating pacman.conf
sudo pacman -Sy
clear

26
install-scripts/paru.sh Normal file → Executable file
View File

@ -1,6 +1,12 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Paru AUR Helper #
# NOTE: If yay is already installed, paru will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_paru.log"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
@ -12,20 +18,32 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_paru.log"
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# checking if paru-bin exist and removing if it is
if [ -d paru-bin ]; then
rm -rf paru-bin 2>&1 | tee -a "$LOG"
fi
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper was located, moving on.\n" "${OK}"
printf "\n%s - AUR helper already installed, moving on..\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder
mv install*.log ../Install-Logs/ || true
cd ..
fi
# Update system before proceeding

48
install-scripts/pipewire.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Pipewire and Pipewire Audio Stuff #
pipewire=(
pipewire
@ -10,43 +12,20 @@ pipewire=(
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##############
# Set some colors for output messages
OK=$(tput setaf 2)[OK]$(tput sgr0)
ERROR=$(tput setaf 1)[ERROR]$(tput sgr0)
NOTE=$(tput setaf 3)[NOTE]$(tput sgr0)
WARN=$(tput setaf 166)[WARN]$(tput sgr0)
CAT=$(tput setaf 6)[ACTION]$(tput sgr0)
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if the package is already installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure the package is installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review the log
echo -e "\e[1A\e[K${ERROR} $1 failed to install. Please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Removal of pulseaudio
printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n"
for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
@ -54,7 +33,7 @@ for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
done
# Disabling pulseaudio to avoid conflicts
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>&1 | tee -a "$LOG"
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG"
# Pipewire
printf "${NOTE} Installing Pipewire Packages...\n"
@ -67,4 +46,5 @@ printf "Activating Pipewire Services...\n"
systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service 2>&1 | tee -a "$LOG"
systemctl --user enable --now pipewire.service 2>&1 | tee -a "$LOG"
clear
clear

67
install-scripts/rog.sh Normal file → Executable file
View File

@ -1,8 +1,8 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Asus ROG Laptops #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -10,55 +10,24 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
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"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log"
### Install software for Asus ROG laptops ###
printf " Installing ASUS ROG packages...\n"
for ASUS in asusctl supergfxctl rog-control-center; do
install_package "$ASUS" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log"
exit 1
fi
done
printf " Activating ROG services...\n"
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
printf " Installing ASUS ROG packages...\n"
for ASUS in asusctl supergfxctl rog-control-center; do
install_package "$ASUS" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log"
exit 1
fi
done
printf " Activating ROG services...\n"
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
clear
clear

49
install-scripts/sddm.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# SDDM Log-in Manager #
sddm=(
qt5-graphicaleffects
@ -7,7 +9,7 @@ sddm=(
sddm-git
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -16,43 +18,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
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)_sddm.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
# SDDM
@ -112,7 +81,7 @@ while [ "$valid_input" != true ]; do
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory from the current location." 2>&1 | tee -a "$LOG"
fi
if git clone https://github.com/JaKooLit/simple-sddm.git 2>&1 | tee -a "$LOG"; then
if git clone https://github.com/JaKooLit/simple-sddm.git; then
while [ ! -d "simple-sddm" ]; do
sleep 1
done
@ -125,7 +94,7 @@ while [ "$valid_input" != true ]; do
sudo mv simple-sddm /usr/share/sddm/themes/
echo -e "[Theme]\nCurrent=simple-sddm" | sudo tee "$sddm_conf_dir/10-theme.conf" &>> "$LOG"
else
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection or repository availability." | tee -a "$LOG" >&2
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection" | tee -a "$LOG" >&2
fi
valid_input=true
elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then
@ -136,6 +105,4 @@ while [ "$valid_input" != true ]; do
fi
done
clear
clear

70
install-scripts/thunar.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Thunar #
thunar=(
thunar
@ -8,7 +10,7 @@ ffmpegthumbnailer
thunar-archive-plugin
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -17,65 +19,29 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
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)_thunar.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Bluetooth
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
# Thunar
printf "${NOTE} Installing Thunar Packages...\n"
for THUNAR in "${thunar[@]}"; do
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; }
done
# Check for existing config folders and backup
for DIR1 in Thunar xfce4; do
DIRPATH=~/.config/$DIR1
if [ -d "$DIRPATH" ]; then
echo -e "${NOTE} Config for $DIR1 found, backing up."
mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG"
echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up."
fi
done
# copying from assets
cp -r assets/xfce4 ~/.config/ && echo "Copy xfce4 completed!" || echo "Error: Failed to copy xfce4 config files." 2>&1 | tee -a "$LOG"
cp -r assets/Thunar ~/.config/ && echo "Copy Thunar completed!" || echo "Error: Failed to copy Thunar config files." 2>&1 | tee -a "$LOG"
# Check for existing configs and copy if does not exist
for DIR1 in Thunar xfce4; do
DIRPATH=~/.config/$DIR1
if [ -d "$DIRPATH" ]; then
echo -e "${NOTE} Config for $DIR1 found, no need to copy." 2>&1 | tee -a "$LOG"
else
echo -e "${NOTE} Config for $DIR1 not found, copying from assets." 2>&1 | tee -a "$LOG"
cp -r assets/$DIR1 ~/.config/ && echo "Copy $DIR1 completed!" || echo "Error: Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
fi
done
clear

115
install-scripts/xdph.sh Normal file → Executable file
View File

@ -1,84 +1,69 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# XDG-Desktop-Portals #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
xdg=(
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_xdph.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
# XDG-DESKTOP-PORTAL-HYPRLAND
for xdph in xdg-desktop-portal-hyprland; do
install_package "$xdph" 2>&1 | tee -a "$LOG"
for xdgs in "${xdg[@]}"; do
install_package "$xdgs" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log"
exit 1
fi
done
printf "\n"
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
sleep 1
printf "\n"
printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
echo
sleep 1
printf "${NOTE} XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
while true; do
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
echo
sleep 1
if [[ $XDPH1 =~ ^[Yy]$ ]]; then
# Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present
if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then
echo "Removing xdg-desktop-portal-gnome..."
sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then
echo "Removing xdg-desktop-portal-gtk..."
sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
echo "Removing xdg-desktop-portal-wlr..."
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
echo "Removing xdg-desktop-portal-lxqt..."
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG
fi
fi
case $XDPH1 in
[Yy])
# Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
echo "Removing xdg-desktop-portal-wlr..."
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG"
fi
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
echo "Removing xdg-desktop-portal-lxqt..."
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG"
fi
break
;;
[Nn])
echo "no other XDG-implementations will be removed." >> "$LOG"
break
;;
*)
echo "Invalid input. Please enter 'y' for yes or 'n' for no."
;;
esac
done
clear
clear

25
install-scripts/yay.sh Normal file → Executable file
View File

@ -1,7 +1,12 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Yay AUR Helper #
# NOTE: If paru is already installed, yay will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
@ -13,20 +18,30 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Check Existing yay-bin
if [ -d yay-bin ]; then
rm -rf yay-bin 2>&1 | tee -a "$LOG"
fi
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper yay was located, moving on.\n" "${OK}"
printf "\n%s - AUR helper already installed, moving on.\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder
mv install*.log ../Install-Logs/ || true
cd ..
fi
# Update system before proceeding

107
install-scripts/zsh.sh Normal file → Executable file
View File

@ -1,23 +1,14 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# zsh and oh my zsh including pokemon-color-scripts#
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_zsh.log"
zsh=(
zsh
zsh-completions
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -25,47 +16,33 @@ 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"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Check if the oh-my-zsh directory exists
if [ -d "$HOME/.oh-my-zsh" ]; then
printf "${NOTE} Oh My Zsh found. Creating a backup before uninstalling...${RESET}\n"
# Perform backup using cp -r and create a backup directory with -backup suffix
cp -r "$HOME/.oh-my-zsh" "$HOME/.oh-my-zsh-backup" || true
mv "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
printf "${NOTE} Backup created....${RESET}\n"
fi
# 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"
## Optional Pokemon color scripts
while true; do
read -p "${CAT} OPTIONAL - Do you want to add Pokemon color scripts? (y/n): " choice
case "$choice" in
[Yy]*)
zsh+=('pokemon-colorscripts-git')
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc
break
;;
[Nn]*)
echo "${NOTE}Skipping Pokemon color scripts installation.${RESET}" 2>&1 | tee -a "$LOG"
break
;;
*)
echo "${WARN}Please enter 'y' for yes or 'n' for no.${RESET}"
;;
esac
done
# Installing zsh packages
printf "${NOTE} Installing core zsh packages...${RESET}\n"
for ZSH in zsh zsh-completions pokemon-colorscripts-git; do
for ZSH in "${zsh[@]}"; do
install_package "$ZSH" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log"
@ -79,34 +56,42 @@ if command -v zsh >/dev/null; then
if [ ! -d "$HOME/.oh-my-zsh" ]; then
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
else
echo "Directory .oh-my-zsh already exists. Skipping re-installation."
echo "Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
fi
# Check if the directories exist before cloning the repositories
if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]; then
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true
else
echo "Directory zsh-autosuggestions already exists. Skipping cloning."
echo "Directory zsh-autosuggestions already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
fi
if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]; then
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true
else
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning."
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
fi
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
if [ -f "$HOME/.zshrc" ]; then
cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
fi
if [ -f "$HOME/.zprofile" ]; then
cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true
fi
# Copying the preconfigured zsh themes and profile
cp -r 'assets/.zshrc' ~/
cp -r 'assets/.zprofile' ~/
printf "${NOTE} Changing default shell to zsh...\n"
while ! chsh -s $(which zsh); do
echo "${ERROR} Authentication failed. Please enter the correct password."
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
sleep 1
done
printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG"
fi
printf "\n\n\n\n"
clear
clear

36
install.sh Normal file → Executable file
View File

@ -31,7 +31,10 @@ if [ "$proceed" != "y" ]; then
exit 1
fi
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
@ -43,6 +46,7 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Function to colorize prompts
colorize_prompt() {
local color="$1"
@ -116,7 +120,7 @@ execute_script() {
printf "\n"
ask_custom_option "-Type AUR helper" "paru or yay" aur_helper
printf "\n"
ask_yes_no "-Do you have nvidia gpu?" nvidia
ask_yes_no "-Do you have any nvidia gpu in your system?" nvidia
printf "\n"
ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes
printf "\n"
@ -124,22 +128,25 @@ ask_yes_no "-Do you want to configure Bluetooth?" bluetooth
printf "\n"
ask_yes_no "-Do you want to install Thunar file manager?" thunar
printf "\n"
ask_yes_no "-Installing in Asus ROG Laptops?" rog
printf "\n"
ask_yes_no "-Install and configure SDDM log-in Manager?" sddm
ask_yes_no "-Install & configure SDDM log-in Manager w/ (Optional) SDDM Theme?" sddm
printf "\n"
ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph
printf "\n"
ask_yes_no "-Install zsh, oh-my-zsh & pokemon-colorscripts?" zsh
ask_yes_no "-Install zsh, oh-my-zsh & (Optional) pokemon-colorscripts?" zsh
printf "\n"
ask_yes_no "-Do you want to copy Hyprland dotfiles?" dots
ask_yes_no "-Installing in a Asus ROG Laptops?" rog
printf "\n"
ask_yes_no "-Do you want to download pre-configured Hyprland dotfiles?" dots
printf "\n"
# Ensuring all in the scripts folder are made executable
chmod +x install-scripts/*
# Execute AUR helper script based on user choice
sleep 0.5
# Ensuring base-devel is installed
execute_script "00-base.sh"
sleep 0.5
execute_script "pacman.sh"
# Execute AUR helper script based on user choice
if [ "$aur_helper" == "paru" ]; then
execute_script "paru.sh"
elif [ "$aur_helper" == "yay" ]; then
@ -172,10 +179,6 @@ if [ "$thunar" == "Y" ]; then
execute_script "thunar.sh"
fi
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$sddm" == "Y" ]; then
execute_script "sddm.sh"
fi
@ -190,12 +193,15 @@ fi
execute_script "InputGroup.sh"
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh"
fi
clear
printf "\n${OK} Yey! Installation Completed.\n"
printf "\n"