diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 846d1b8..46fdfe9 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,5 +1,8 @@ ## Changelogs +## 06 July 2024 +- Version bumps for Debian (Hyprland v0.41.2) + ## 04 June 2024 - switched over to source install for imagemagick - removal of fzf for Debian and Ubuntu (headache) diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh index bf492fb..f558c37 100755 --- a/install-scripts/dotfiles.sh +++ b/install-scripts/dotfiles.sh @@ -1,86 +1,51 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# Hyprland-Dots to download from Releases # -if [[ $USE_PRESET = [Yy] ]]; then - source ./preset.sh -fi +# Hyprland-Dots to download a specific release # + +# Define the specific release version to download +specific_version="v2.3" ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" -printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n" +printf "${NOTE} Downloading / Checking for existing Hyprland-Dots-${specific_version}.tar.gz...\n" -# Check if Hyprland-Dots.tar.gz exists -if [ -f Hyprland-Dots.tar.gz ]; then - printf "${NOTE} Hyprland-Dots.tar.gz found.\n" - - # Get the version from the existing tarball filename - existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//') - - # Fetch the tag_name for the latest release using the GitHub API - latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//') - - # Check if versions match - if [ "$existing_version" = "$latest_version" ]; then - echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)." - - # Sleep for 10 seconds before exiting - printf "${NOTE} No update found. Sleeping for 10 seconds...\n" - sleep 10 - exit 0 - else - echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)." - if [[ -z $upgrade_choice ]]; then - read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice - fi - if [ "$upgrade_choice" = "y" ]; then - echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" - - # Delete existing directories starting with JaKooLit-Hyprland-Dots - find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} + - rm -f Hyprland-Dots.tar.gz - printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n" - else - echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" - exit 0 - fi - fi +# Check if the specific release tarball exists +if [ -f "Hyprland-Dots-${specific_version}.tar.gz" ]; then + printf "${NOTE} Hyprland-Dots-${specific_version}.tar.gz found.\n" + echo -e "${OK} Hyprland-Dots-${specific_version}.tar.gz is already downloaded." + exit 0 fi -printf "${NOTE} Downloading the latest Hyprland source code release...\n" +printf "${NOTE} Downloading the Hyprland-Dots-${specific_version} source code release...\n" -# Fetch the tag name for the latest release using the GitHub API -latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4) - -# Check if the tag is obtained successfully -if [ -z "$latest_tag" ]; then - echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +# Fetch the tag name for the specific release using the GitHub API +release_info=$(curl -s "https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/tags/${specific_version}") +if [ -z "$release_info" ]; then + echo -e "${ERROR} Unable to fetch information for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Fetch the tarball URL for the latest release using the GitHub API -latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4) +# Get the tarball URL for the specific release +tarball_url=$(echo "$release_info" | grep "tarball_url" | cut -d '"' -f 4) # Check if the URL is obtained successfully -if [ -z "$latest_tarball_url" ]; then - echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +if [ -z "$tarball_url" ]; then + echo -e "${ERROR} Unable to fetch the tarball URL for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Get the filename from the URL and include the tag name in the file name -file_name="Hyprland-Dots-${latest_tag}.tar.gz" - -# Download the latest release source code tarball to the current directory -if curl -L "$latest_tarball_url" -o "$file_name"; then +# Download the specific release source code tarball to the current directory +if curl -L "$tarball_url" -o "Hyprland-Dots-${specific_version}.tar.gz"; then # Extract the contents of the tarball - tar -xzf "$file_name" || exit 1 + tar -xzf "Hyprland-Dots-${specific_version}.tar.gz" || exit 1 - # delete existing Hyprland-Dots + # Delete existing Hyprland-Dots rm -rf JaKooLit-Hyprland-Dots # Identify the extracted directory - extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq) + extracted_directory=$(tar -tf "Hyprland-Dots-${specific_version}.tar.gz" | grep -o '^[^/]\+' | uniq) # Rename the extracted directory to JaKooLit-Hyprland-Dots mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1 @@ -91,9 +56,9 @@ if curl -L "$latest_tarball_url" -o "$file_name"; then chmod +x copy.sh ./copy.sh - echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${OK} Hyprland-Dots-${specific_version} 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 Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Failed to download Hyprland-Dots-${specific_version} release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi diff --git a/install-scripts/hyprcursor.sh b/install-scripts/hyprcursor.sh index eb88508..e9423be 100755 --- a/install-scripts/hyprcursor.sh +++ b/install-scripts/hyprcursor.sh @@ -8,7 +8,7 @@ librsvg2-dev ) #specific branch or release -cursor_tag="v0.1.8" +cursor_tag="v0.1.9" ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## # Determine the directory where the script is located @@ -45,8 +45,8 @@ fi printf "${NOTE} Installing hyprcursor...\n" if git clone --recursive -b $cursor_tag https://github.com/hyprwm/hyprcursor.git; then cd hyprcursor || exit 1 - cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build - cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then printf "${OK} hyprcursor installed successfully.\n" 2>&1 | tee -a "$MLOG" else diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 768b657..351773f 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -2,9 +2,12 @@ # 💫 https://github.com/JaKooLit 💫 # # Main Hyprland Package# - #specific branch or release -hyprland_tag="v0.39.1" +hyprland_tag="v0.41.2" + +hyprland=( + libxcb-errors-dev +) ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## # Determine the directory where the script is located @@ -20,6 +23,17 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log" MLOG="install-$(date +%d-%H%M%S)_hyprland2.log" +# Installation of dependencies +printf "\n%s - Installing hyprland additional dependencies.... \n" "${NOTE}" + +for PKG1 in "${hyprland[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs" + exit 1 + fi +done + # Clone, build, and install Hyprland using Cmake printf "${NOTE} Cloning Hyprland...\n" @@ -29,7 +43,7 @@ if [ -d "Hyprland" ]; then rm -rf "Hyprland" 2>&1 | tee -a "$LOG" fi -if git clone --recursive -b $hyprland_tag "https://github.com/hyprwm/Hyprland"; then +if git clone --recursive "https://github.com/hyprwm/Hyprland"; then cd "Hyprland" || exit 1 make all if sudo make install 2>&1 | tee -a "$MLOG"; then diff --git a/install-scripts/hyprlang.sh b/install-scripts/hyprlang.sh index 95a19ee..ef26dc9 100755 --- a/install-scripts/hyprlang.sh +++ b/install-scripts/hyprlang.sh @@ -3,7 +3,7 @@ # hyprlang - hyprland and xdg-desktop-portal- dependencies # #specific branch or release -lang_tag="v0.5.1" +lang_tag="v0.5.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 diff --git a/install-scripts/hyprlock.sh b/install-scripts/hyprlock.sh index a42c912..e369103 100755 --- a/install-scripts/hyprlock.sh +++ b/install-scripts/hyprlock.sh @@ -7,7 +7,7 @@ libmagic-dev ) #specific branch or release -lock_tag="v0.3.0" +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 @@ -45,8 +45,8 @@ printf "${NOTE} Installing hyprlock...\n" if git clone --recursive -b $lock_tag https://github.com/hyprwm/hyprlock.git; then cd hyprlock || exit 1 cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build - cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` - if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then + cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF` + if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then printf "${OK} hyprlock installed successfully.\n" 2>&1 | tee -a "$MLOG" else echo -e "${ERROR} Installation failed for hyprlock." 2>&1 | tee -a "$MLOG" @@ -58,5 +58,5 @@ else echo -e "${ERROR} Download failed for hyprlock." 2>&1 | tee -a "$LOG" fi -clear + diff --git a/install-scripts/hyprutils.sh b/install-scripts/hyprutils.sh new file mode 100755 index 0000000..d0871e6 --- /dev/null +++ b/install-scripts/hyprutils.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# Hypr Ecosystem # +# hyprutils # + +#specific branch or release +hyprutils_tag="v0.1.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" || exit 1 + +source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprutils.log" +MLOG="install-$(date +%d-%H%M%S)_hyprutils2.log" + +# Clone, build, and install using Cmake +printf "${NOTE} Cloning hyprutils...\n" + +# Check if hyprutils folder exists and remove it +if [ -d "hyprutils" ]; then + printf "${NOTE} Removing existing hyprutils folder...\n" + rm -rf "hyprutils" 2>&1 | tee -a "$LOG" +fi + +if git clone -b $hyprutils_tag "https://github.com/hyprwm/hyprutils.git"; then + cd "hyprutils" || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF` + if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then + printf "${OK} hyprutils installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for hyprutils." 2>&1 | tee -a "$MLOG" + fi + mv $MLOG ../Install-Logs/ || true + cd .. +else + echo -e "${ERROR} Download failed for hyprutils" 2>&1 | tee -a "$LOG" +fi + + + diff --git a/install-scripts/hyprwayland-scanner.sh b/install-scripts/hyprwayland-scanner.sh index 1dfa70c..aed0673 100755 --- a/install-scripts/hyprwayland-scanner.sh +++ b/install-scripts/hyprwayland-scanner.sh @@ -3,10 +3,10 @@ # hyprwayland-scanner - One depency from Hyprland v0.40.0# scan_depend=( -libpugixml-dev + libpugixml-dev ) #specific branch or release -scan_tag="v0.3.9" +scan_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 @@ -19,8 +19,8 @@ cd "$PARENT_DIR" || exit 1 source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlang.log" -MLOG="install-$(date +%d-%H%M%S)_hyprwayland-scanner.log" +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprwayland-scanner.log" +MLOG="install-$(date +%d-%H%M%S)_hyprwayland-scanner2.log" ## # Installation of dependencies @@ -60,6 +60,5 @@ else echo -e "${ERROR} Download failed for hyprwayland-scanner. Please check log." 2>&1 | tee -a "$LOG" fi - clear diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh index 54ae298..b87422d 100755 --- a/install-scripts/xdph.sh +++ b/install-scripts/xdph.sh @@ -1,11 +1,14 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# XDG-Desktop-Portals # +# XDG-Desktop-Portals for hyprland # xdg=( -xdg-desktop-portal-gtk + xdg-desktop-portal-gtk ) +#specific branch or release +xdph_tag="v1.3.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 )" @@ -35,10 +38,11 @@ fi # Clone and build xdg-desktop-portal-hyprland printf "${NOTE} Installing xdg-desktop-portal-hyprland...\n" -if git clone --branch v1.3.0 --recursive https://github.com/hyprwm/xdg-desktop-portal-hyprland; then +if git clone -b $xdph_tag --recursive https://github.com/hyprwm/xdg-desktop-portal-hyprland; then cd xdg-desktop-portal-hyprland || exit 1 - make all - if sudo make install 2>&1 | tee -a "$MLOG" ; then + cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build + cmake --build build + if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then printf "${OK} xdg-desktop-portal-hyprland installed successfully.\n" 2>&1 | tee -a "$MLOG" else echo -e "${ERROR} Installation failed for xdg-desktop-portal-hyprland." 2>&1 | tee -a "$MLOG" diff --git a/install.sh b/install.sh index 5444494..258ebb0 100755 --- a/install.sh +++ b/install.sh @@ -169,6 +169,7 @@ execute_script "hyprlock.sh" execute_script "hyprcursor.sh" execute_script "hypridle.sh" execute_script "hyprwayland-scanner.sh" +execute_script "hyprutils.sh" execute_script "hyprland.sh" execute_script "hypr-eco.sh" # execute_script "waybar-git.sh" only if waybar on repo is old