diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 088bb0d..a04fdb8 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -2,8 +2,14 @@ ## 10 December 2025 -- Updated Hyprland Build to v0.52.2 +- Updated: + - Hyprland Build to v0.52.2 - Thanks entirely to @sdegler +- Fixed: + - `qt5-style-kvantum-themes` failed to install + - Wrong package name it's `qt-style-kvantume-themes` + - `libdisplay-info2` failed to install + - New package name: `libdisplay-info3` ## 10 October 2025 diff --git a/hypr-tags.env b/hypr-tags.env index 9b8fb92..81c0404 100644 --- a/hypr-tags.env +++ b/hypr-tags.env @@ -2,13 +2,14 @@ # You can edit these values or let update-hyprland.sh manage them. # Each module script reads its TAG from these environment variables if set. -HYPRLAND_TAG=v0.51.1 -AQUAMARINE_TAG=v0.9.3 -HYPRUTILS_TAG=v0.8.3 -HYPRLANG_TAG=v0.6.4 -HYPRGRAPHICS_TAG=v0.1.5 +HYPRLAND_TAG=v0.52.2 +AQUAMARINE_TAG=v0.10.0 +HYPRUTILS_TAG=v0.10.4 +HYPRLANG_TAG=v0.6.7 +HYPRGRAPHICS_TAG=v0.4.0 +HYPRTOOLKIT_TAG=v0.4.1 HYPRWAYLAND_SCANNER_TAG=v0.4.5 -HYPRLAND_PROTOCOLS_TAG=v0.6.4 +HYPRLAND_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.4 -WAYLAND_PROTOCOLS_TAG=1.45 +HYPRLAND_GUIUTILS_TAG=v0.2.0 +WAYLAND_PROTOCOLS_TAG=1.46 diff --git a/install-scripts/00-dependencies.sh b/install-scripts/00-dependencies.sh index 35bfe47..6bf8d74 100755 --- a/install-scripts/00-dependencies.sh +++ b/install-scripts/00-dependencies.sh @@ -5,146 +5,150 @@ # packages neeeded dependencies=( - build-essential - cmake - cmake-extras - curl - findutils - gawk - gettext - gir1.2-graphene-1.0 - git - glslang-tools - gobject-introspection - golang - hwdata - jq - libavcodec-dev - libavformat-dev - libavutil-dev - libcairo2-dev - libdeflate-dev - libdisplay-info-dev - libdrm-dev - libegl-dev - libegl1-mesa-dev - libgbm-dev - libgdk-pixbuf-2.0-dev - libgdk-pixbuf2.0-bin - libgirepository1.0-dev - libgl1-mesa-dev - libgraphene-1.0-0 - libgraphene-1.0-dev - libgtk-3-dev - libgulkan-0.15-0t64 - libgulkan-dev - libinih-dev - libinput-dev - libjbig-dev - libjpeg-dev - libjpeg62-turbo-dev - liblerc-dev - libliftoff-dev - liblzma-dev - libnotify-bin - libpam0g-dev - libpango1.0-dev - libpipewire-0.3-dev - libqt6svg6 - libsdbus-c++-dev - libseat-dev - libstartup-notification0-dev - libswresample-dev - libsystemd-dev - libtiff-dev - libtiffxx6 - libtomlplusplus-dev - libudev-dev - libvkfft-dev - libvulkan-dev - libvulkan-volk-dev - libwayland-dev - libwebp-dev - libxcb-composite0-dev - libxcb-cursor-dev - libxcb-dri3-dev - libxcb-ewmh-dev - libxcb-icccm4-dev - libxcb-present-dev - libxcb-render-util0-dev - libxcb-res0-dev - libxcb-util-dev - libxcb-xinerama0-dev - libxcb-xinput-dev - libxcb-xkb-dev - libxkbcommon-dev - libxkbcommon-x11-dev - libxkbregistry-dev - libxml2-dev - libxxhash-dev - meson - ninja-build - openssl - psmisc - python3-mako - python3-markdown - python3-markupsafe - python3-pyquery - python3-yaml - qt6-base-dev - scdoc - seatd - spirv-tools - unzip - vulkan-utility-libraries-dev - vulkan-validationlayers - wayland-protocols - xdg-desktop-portal - xwayland + build-essential + cmake + cmake-extras + curl + findutils + gawk + gettext + gir1.2-graphene-1.0 + git + glslang-tools + gobject-introspection + golang + hwdata + jq + libavcodec-dev + libavformat-dev + libavutil-dev + libcairo2-dev + libdeflate-dev + libdisplay-info-dev + libdrm-dev + libegl-dev + libegl1-mesa-dev + libgbm-dev + libgdk-pixbuf-2.0-dev + libgdk-pixbuf2.0-bin + libgirepository1.0-dev + libgl1-mesa-dev + libgraphene-1.0-0 + libgraphene-1.0-dev + libgtk-3-dev + libgulkan-0.15-0t64 + libgulkan-dev + libinih-dev + libiniparser-dev + libinput-dev + libjbig-dev + libjpeg-dev + libjpeg62-turbo-dev + liblerc-dev + libliftoff-dev + liblzma-dev + libnotify-bin + libpam0g-dev + libpango1.0-dev + libpipewire-0.3-dev + libqt6svg6 + libsdbus-c++-dev + libseat-dev + libstartup-notification0-dev + libswresample-dev + libsystemd-dev + libtiff-dev + libtiffxx6 + libtomlplusplus-dev + libudev-dev + libvkfft-dev + libvulkan-dev + libvulkan-volk-dev + libwayland-dev + libwebp-dev + libxcb-composite0-dev + libxcb-cursor-dev + libxcb-dri3-dev + libxcb-ewmh-dev + libxcb-icccm4-dev + libxcb-present-dev + libxcb-render-util0-dev + libxcb-res0-dev + libxcb-util-dev + libxcb-xinerama0-dev + libxcb-xinput-dev + libxcb-xkb-dev + libxkbcommon-dev + libxkbcommon-x11-dev + libxkbregistry-dev + libxml2-dev + libxxhash-dev + meson + ninja-build + openssl + psmisc + python3-mako + python3-markdown + python3-markupsafe + python3-pyquery + python3-yaml + qt6-base-dev + scdoc + seatd + spirv-tools + unzip + vulkan-utility-libraries-dev + vulkan-validationlayers + wayland-protocols + xdg-desktop-portal + xwayland ) # hyprland dependencies hyprland_dep=( - bc - binutils - libc6 - libcairo2-dev - libdisplay-info2 - libdrm2 - libjpeg-dev - libjxl-dev - libmagic-dev - libpixman-1-dev - libpugixml-dev - libre2-dev - librsvg2-dev - libspng-dev - libtomlplusplus-dev - libwebp-dev - libzip-dev - libpam0g-dev - libxcursor-dev - qt6-declarative-dev - qt6-base-private-dev - qt6-wayland-dev - qt6-wayland-private-dev + bc + binutils + libc6 + libcairo2-dev + libdisplay-info3 + libdrm2 + libjpeg-dev + libjxl-dev + libmagic-dev + libpixman-1-dev + libpugixml-dev + libre2-dev + librsvg2-dev + libspng-dev + libtomlplusplus-dev + libwebp-dev + libzip-dev + libpam0g-dev + libxcursor-dev + qt6-declarative-dev + qt6-base-private-dev + qt6-wayland-dev + qt6-wayland-private-dev ) build_dep=( - wlroots + wlroots ) ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Change the working directory to the parent directory of the script PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; } +cd "$PARENT_DIR" || { + echo "${ERROR} Failed to change directory to $PARENT_DIR" + exit 1 +} # Source the global functions script if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then - echo "Failed to source Global_functions.sh" - exit 1 + echo "Failed to source Global_functions.sh" + exit 1 fi # Set the name of the log file to include the current date and time @@ -154,13 +158,13 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log" printf "\n%s - Installing ${SKY_BLUE}main dependencies....${RESET} \n" "${NOTE}" for PKG1 in "${dependencies[@]}" "${hyprland_dep[@]}"; do - install_package "$PKG1" "$LOG" + install_package "$PKG1" "$LOG" done printf "\n%.0s" {1..1} for PKG1 in "${build_dep[@]}"; do - build_dep "$PKG1" "$LOG" + build_dep "$PKG1" "$LOG" done -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} diff --git a/install-scripts/01-hypr-pkgs.sh b/install-scripts/01-hypr-pkgs.sh index c6a4a57..c3b862d 100755 --- a/install-scripts/01-hypr-pkgs.sh +++ b/install-scripts/01-hypr-pkgs.sh @@ -1,7 +1,7 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # # Hyprland-Dots Packages # -# edit your packages desired here. +# edit your packages desired here. # WARNING! If you remove packages here, dotfiles may not work properly. # and also, ensure that packages are present in Debian Official Repo @@ -12,79 +12,82 @@ Extra=( # packages needed hypr_package=( - cliphist - grim - gvfs - gvfs-backends - inxi - imagemagick - kitty - nano - pavucontrol - playerctl - polkit-kde-agent-1 - python3-requests - python3-pip - qt5ct - qt5-style-kvantum - qt5-style-kvantum-themes - qt6ct - slurp - swappy - sway-notification-center - unzip - waybar - wget - wl-clipboard - wlogout - xdg-user-dirs - xdg-utils - yad + cliphist + grim + gvfs + gvfs-backends + inxi + imagemagick + kitty + nano + pavucontrol + playerctl + polkit-kde-agent-1 + python3-requests + python3-pip + qt5ct + qt5-style-kvantum + qt-style-kvantum-themes + qt6ct + slurp + swappy + sway-notification-center + unzip + waybar + wget + wl-clipboard + wlogout + xdg-user-dirs + xdg-utils + yad ) # the following packages can be deleted. however, dotfiles may not work properly hypr_package_2=( - brightnessctl - btop - cava - fastfetch - loupe - gnome-system-monitor - mousepad - mpv - mpv-mpris - nwg-look - nwg-displays - nvtop - pamixer - qalculate-gtk + brightnessctl + btop + cava + fastfetch + loupe + gnome-system-monitor + mousepad + mpv + mpv-mpris + nwg-look + nwg-displays + nvtop + pamixer + qalculate-gtk ) -# packages to force reinstall +# packages to force reinstall force=( - imagemagick - wayland-protocols + imagemagick + wayland-protocols ) # List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly uninstall=( - dunst - mako - rofi - cargo + dunst + mako + rofi + cargo ) ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Change the working directory to the parent directory of the script PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; } +cd "$PARENT_DIR" || { + echo "${ERROR} Failed to change directory to $PARENT_DIR" + exit 1 +} # Source the global functions script if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then - echo "Failed to source Global_functions.sh" - exit 1 + echo "Failed to source Global_functions.sh" + exit 1 fi # Set the name of the log file to include the current date and time @@ -94,14 +97,14 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log" overall_failed=0 printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}" for PKG in "${uninstall[@]}"; do - uninstall_package "$PKG" 2>&1 | tee -a "$LOG" - if [ $? -ne 0 ]; then - overall_failed=1 - fi + uninstall_package "$PKG" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + overall_failed=1 + fi done if [ $overall_failed -ne 0 ]; then - echo -e "${ERROR} Some packages failed to uninstall. Please check the log." + echo -e "${ERROR} Some packages failed to uninstall. Please check the log." fi printf "\n%.0s" {1..1} @@ -110,24 +113,24 @@ printf "\n%.0s" {1..1} printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}" for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do - install_package "$PKG1" "$LOG" + install_package "$PKG1" "$LOG" done printf "\n%.0s" {1..1} for PKG2 in "${force[@]}"; do - re_install_package "$PKG2" "$LOG" + re_install_package "$PKG2" "$LOG" done printf "\n%.0s" {1..1} # install YAD from assets. NOTE This is downloaded from SID repo and sometimes # Trixie is removing YAD for some strange reasons # Check if yad is installed -if ! command -v yad &> /dev/null; then - echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..." - sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb - sudo apt install -f -y - echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..." +if ! command -v yad &>/dev/null; then + echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..." + sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb + sudo apt install -f -y + echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..." fi printf "\n%.0s" {1..2} @@ -140,4 +143,5 @@ source "$HOME/.cargo/env" ## making brightnessctl work sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} + diff --git a/install-scripts/aquamarine.sh b/install-scripts/aquamarine.sh index 758635b..97a986d 100755 --- a/install-scripts/aquamarine.sh +++ b/install-scripts/aquamarine.sh @@ -5,7 +5,7 @@ #specific branch or release -tag="v0.9.3" +tag="v0.10.0" # Allow environment override if [ -n "${AQUAMARINE_TAG:-}" ]; then tag="$AQUAMARINE_TAG"; fi @@ -45,7 +45,7 @@ fi printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n" if git clone --recursive -b $tag https://github.com/hyprwm/aquamarine.git; then cd aquamarine || exit 1 - cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` if [ $DO_INSTALL -eq 1 ]; then if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then @@ -63,4 +63,4 @@ else echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG" fi -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} diff --git a/install-scripts/hyprgraphics.sh b/install-scripts/hyprgraphics.sh index 9674523..21cb5f4 100755 --- a/install-scripts/hyprgraphics.sh +++ b/install-scripts/hyprgraphics.sh @@ -8,7 +8,7 @@ hyprgraphics=( ) #specific branch or release -tag="v0.1.5" +tag="v0.4.0" # Allow environment override if [ -n "${HYPRGRAPHICS_TAG:-}" ]; then tag="$HYPRGRAPHICS_TAG"; fi @@ -75,4 +75,4 @@ else echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG" fi -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} diff --git a/install-scripts/hyprland-qtutils.sh b/install-scripts/hyprland-guiutils.sh similarity index 68% rename from install-scripts/hyprland-qtutils.sh rename to install-scripts/hyprland-guiutils.sh index caff755..badf48a 100755 --- a/install-scripts/hyprland-qtutils.sh +++ b/install-scripts/hyprland-guiutils.sh @@ -1,9 +1,9 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # # Hypr Ecosystem # -# hypland-qtutils # +# hypland-guiutils # -qtutils=( +guiutils=( libqt6core5compat6 qt6-base-dev qt6-wayland-dev @@ -17,9 +17,9 @@ qtutils=( ) #specific branch or release -tag="v0.1.4" +tag="v0.2.0" # Allow environment override -if [ -n "${HYPRLAND_QTUTILS_TAG:-}" ]; then tag="$HYPRLAND_QTUTILS_TAG"; fi +if [ -n "${HYPRLAND_GUIUTILS_TAG:-}" ]; then tag="$HYPRLAND_GUIUTILS_TAG"; fi # Dry-run support DO_INSTALL=1 @@ -42,13 +42,13 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then fi # Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-qtutils.log" -MLOG="install-$(date +%d-%H%M%S)_hyprland-qtutils2.log" +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-guiutils.log" +MLOG="install-$(date +%d-%H%M%S)_hyprland-guiutils2.log" # Installation of dependencies -printf "\n%s - Installing ${YELLOW}hyprland-qtutils dependencies${RESET} .... \n" "${INFO}" +printf "\n%s - Installing ${YELLOW}hyprland-guiutils dependencies${RESET} .... \n" "${INFO}" -for PKG1 in "${qtutils[@]}"; do +for PKG1 in "${guiutils[@]}"; do re_install_package "$PKG1" 2>&1 | tee -a "$LOG" if [ $? -ne 0 ]; then echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs" @@ -58,31 +58,31 @@ done printf "\n%.0s" {1..1} -# Check if hyprland-qtutils directory exists and remove it -if [ -d "hyprland-qtutils" ]; then - rm -rf "hyprland-qtutils" +# Check if hyprland-guiutils directory exists and remove it +if [ -d "hyprland-guiutils" ]; then + rm -rf "hyprland-guiutils" fi # Clone and build -printf "${INFO} Installing ${YELLOW}hyprland-qtutils $tag${RESET} ...\n" -if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qtutils.git; then - cd hyprland-qtutils || exit 1 +printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n" +if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then + cd hyprland-guiutils || 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 [ $DO_INSTALL -eq 1 ]; then if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then - printf "${OK} ${MAGENTA}hyprland-qtutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" + printf "${OK} ${MAGENTA}hyprland-guiutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" else - echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$MLOG" + echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$MLOG" fi else - echo "${NOTE} DRY RUN: Skipping installation of hyprland-qtutils $tag." + echo "${NOTE} DRY RUN: Skipping installation of hyprland-guiutils $tag." fi #moving the addional logs to Install-Logs directory [ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ cd .. else - echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$LOG" + echo -e "${ERROR} Download failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$LOG" fi -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} diff --git a/install-scripts/hyprland-protocols.sh b/install-scripts/hyprland-protocols.sh index 69b1f9c..ce05bbf 100755 --- a/install-scripts/hyprland-protocols.sh +++ b/install-scripts/hyprland-protocols.sh @@ -5,7 +5,7 @@ #specific branch or release -tag="v0.6.4" +tag="v0.7.0" # Allow environment override if [ -n "${HYPRLAND_PROTOCOLS_TAG:-}" ]; then tag="$HYPRLAND_PROTOCOLS_TAG"; fi @@ -62,4 +62,4 @@ else echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG" fi -printf "\n%.0s" {1..2} \ No newline at end of file +printf "\n%.0s" {1..2} diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index f7147a1..cbd469d 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -3,7 +3,7 @@ # Main Hyprland Package# #specific branch or release -tag="v0.51.1" +tag="v0.52.2" # Allow environment override if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi diff --git a/install-scripts/hyprlang.sh b/install-scripts/hyprlang.sh index 05ec20f..95f3bfe 100755 --- a/install-scripts/hyprlang.sh +++ b/install-scripts/hyprlang.sh @@ -5,7 +5,7 @@ #specific branch or release -tag="v0.6.4" +tag="v0.6.7" # Allow environment override if [ -n "${HYPRLANG_TAG:-}" ]; then tag="$HYPRLANG_TAG"; fi diff --git a/install-scripts/hyprtoolkit.sh b/install-scripts/hyprtoolkit.sh new file mode 100755 index 0000000..f059c01 --- /dev/null +++ b/install-scripts/hyprtoolkit.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# Hypr Ecosystem # +# hyprtoolkit # + +#specific branch or release +tag="v0.4.1" +# Allow environment override +if [ -n "${HYPRTOOLKIT_TAG:-}" ]; then tag="$HYPRTOOLKIT_TAG"; fi + +# Dry-run support +DO_INSTALL=1 +if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then + DO_INSTALL=0 + echo "${NOTE} DRY RUN: install step will be skipped." +fi + +## 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 + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprtoolkit.log" +MLOG="install-$(date +%d-%H%M%S)_hyprtoolkit2.log" + +# Clone, build, and install using Cmake +printf "${NOTE} Cloning hyprtoolkit...\n" + +# Check if hyprtoolkit folder exists and remove it +if [ -d "hyprtoolkit" ]; then + printf "${NOTE} Removing existing hyprtoolkit folder...\n" + rm -rf "hyprtoolkit" 2>&1 | tee -a "$LOG" +fi + +if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git"; then + cd "hyprtoolkit" || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build + cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF` + if [ $DO_INSTALL -eq 1 ]; then + if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then + printf "${OK} hyprtoolkit installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for hyprtoolkit." 2>&1 | tee -a "$MLOG" + fi + else + echo "${NOTE} DRY RUN: Skipping installation of hyprtoolkit $tag." + fi + [ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ + cd .. +else + echo -e "${ERROR} Download failed for hyprtoolkit" 2>&1 | tee -a "$LOG" +fi + +printf "\n%.0s" {1..2} + + diff --git a/install-scripts/hyprutils.sh b/install-scripts/hyprutils.sh index 40425bc..311a1d2 100755 --- a/install-scripts/hyprutils.sh +++ b/install-scripts/hyprutils.sh @@ -4,7 +4,7 @@ # hyprutils # #specific branch or release -tag="v0.8.2" +tag="v0.10.4" # Allow environment override if [ -n "${HYPRUTILS_TAG:-}" ]; then tag="$HYPRUTILS_TAG"; fi diff --git a/install-scripts/xkbcommon.sh b/install-scripts/xkbcommon.sh new file mode 100755 index 0000000..58a60fe --- /dev/null +++ b/install-scripts/xkbcommon.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# Hypr Ecosystem # +# xkbcommon # + +xkbcommon=( +bison +libzip-dev +librsvg2-dev +) + +#specific branch or release +tag="xkbcommon-1.13.1" + +## 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 + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_xkbcommon.log" +MLOG="install-$(date +%d-%H%M%S)_xkbcommon.log" + +# Installation of dependencies +printf "\n%s - Installing xkbcommon dependencies.... \n" "${NOTE}" + +for PKG1 in "${xkbcommon[@]}"; 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 + +# Check if xkbcommon folder exists and remove it +if [ -d "libxkbcommon" ]; then + printf "${NOTE} Removing existing libxkbcommon folder...\n" + rm -rf "libxkbcommon" +fi + +# Clone and build +printf "${NOTE} Installing xkbcommon...\n" +if git clone --recursive -b $tag https://github.com/xkbcommon/libxkbcommon.git; then + cd libxkbcommon || exit 1 + meson setup build --libdir=/usr/local/lib + meson compile -C build + if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then + printf "${OK} xkbcommon installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for xkbcommon." 2>&1 | tee -a "$MLOG" + fi + #moving the addional logs to Install-Logs directory + mv $MLOG ../Install-Logs/ || true + cd .. +else + echo -e "${ERROR} Download failed for xkbcommon." 2>&1 | tee -a "$LOG" +fi + +printf "\n%.0s" {1..2} + + diff --git a/install.sh b/install.sh index a097c9c..0f2c2fc 100755 --- a/install.sh +++ b/install.sh @@ -400,13 +400,17 @@ execute_script "aquamarine.sh" sleep 1 execute_script "hyprland-qt-support.sh" sleep 1 -execute_script "hyprland-qtutils.sh" +execute_script "hyprtoolkit.sh" +sleep 1 +execute_script "hyprland-guiutils.sh" sleep 1 execute_script "hyprland-protocols.sh" sleep 1 # Ensure wayland-protocols (from source) is installed to satisfy Hyprland's >= 1.45 requirement execute_script "wayland-protocols-src.sh" sleep 1 +execute_script "xkbcommon.sh" +sleep 1 execute_script "hyprland.sh" sleep 1 execute_script "hyprpolkitagent.sh" diff --git a/update-hyprland.sh b/update-hyprland.sh index c5a1830..6063082 100755 --- a/update-hyprland.sh +++ b/update-hyprland.sh @@ -33,15 +33,17 @@ SUMMARY_LOG="$LOG_DIR/update-hypr-$TS.log" # Default module order (core first, then Hyprland) DEFAULT_MODULES=( + xkbcommon hyprutils hyprlang + hyprtoolkit wayland-protocols-src aquamarine hyprgraphics hyprwayland-scanner hyprland-protocols hyprland-qt-support - hyprland-qtutils + hyprland-guiutils hyprland )