Compare commits

..

No commits in common. "97decb81ce7174f052751edf633db6e3e05ee9c9" and "d26848d30788a463b5e642d00790876167983d1b" have entirely different histories.

35 changed files with 248 additions and 386 deletions

View File

@ -1,14 +1,5 @@
## CHANGELOG
## 23 January 2026
- New layout for building Hyprland Source
- The `build` directory will hold the source and compiler output
- Now you can just remove the build directory after install
- Updated the default Hyprland version to `v0.53.2`
- Updated the documentation on the new directory layout
- Fixed issue of Fastfetch reading old hyprland version file
## 21 January 2026
### Important Note for Debian `Trixie` users.
@ -28,7 +19,7 @@
## 02 January 2026
### > Note: Support for Hyprland v0.53.2 is now available for Debian Stable (Trixie)
### > Note: Support for Hyprland v0.53.1 is now available for Debian Stable (Trixie)
### > At this time it should be considered BETA, not for production use
@ -37,7 +28,7 @@
### > Only Intel, AMD, and in VMs
- Updated:
- Default Hyprland stack versions now target 0.53.2 (see `hypr-tags.env`)
- Default Hyprland stack versions now target 0.53.1 (see `hypr-tags.env`)
- Added trixie compatibility mode flags:
- `--build-trixie` / `--no-trixie` (auto-detected on Debian 13)
- Added `--force-update` to refresh pinned package versions

View File

@ -128,7 +128,7 @@ Archivo con etiquetas de versión para todos los componentes de Hyprland:
```bash
# Versiones actuales (ejemplo)
HYPRLAND_TAG=v0.53.2
HYPRLAND_TAG=v0.53.1
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8
@ -327,20 +327,6 @@ Notas:
- **Sin cambios en el sistema**: No instala archivos en /usr/local o /usr
## Gestión de Logs
## Artefactos de Build y Limpieza
Todas las fuentes descargadas y salidas de compilación ahora viven en `~/Debian-Hyprland/build/`:
- **Fuentes:** `build/src/<proyecto>`
- **Salida de build:** `build/<proyecto>`
Esto mantiene el repositorio limpio. Para eliminar todos los artefactos de compilación:
```bash
rm -rf ~/Debian-Hyprland/build
```
Nota: Esto solo elimina artefactos de compilación y fuentes descargadas; no desinstala nada del sistema.
### Ubicación de Logs

View File

@ -128,7 +128,7 @@ This file contains version tags for all Hyprland components:
```bash
# Current versions (example)
HYPRLAND_TAG=v0.53.2
HYPRLAND_TAG=v0.53.1
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8
@ -327,20 +327,6 @@ Notes:
- **No system changes**: No files installed to /usr/local or /usr
## Log Management
## Build Artifacts & Cleanup
All source clones and build outputs now live under `~/Debian-Hyprland/build/`:
- **Sources:** `build/src/<project>`
- **Build output:** `build/<project>`
This keeps the repo root clean. To remove all build artifacts:
```bash
rm -rf ~/Debian-Hyprland/build
```
Note: This only removes build artifacts and downloaded sources; it does not uninstall anything from your system.
### Log Location

View File

@ -102,14 +102,14 @@ sudo nano /etc/apt/sources.list
[Debian-Hyprland Changelogs](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CHANGELOGS.md)
- 10 January 2026 Update!
- Debian now builds Hyprland v0.53.2!
- Debian now builds Hyprland v0.53.1!
- This requires the just released `Debian-Hyprland v2.9.4` installer
- Debian 13 (`Trixie`, aka `Stable`)
- While it does now support v0.53.2
- While it does now support v0.53.1
- At this time it should not be used for production
- Testing is on going but NVIDIA GPUs have not been tested
- Intel, AMD, and in VMs only so far
- Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.2 without issue
- Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.1 without issue
- 10 October 2025 Update!
- Hyprland-Debian nows builds 0.51.1 from source!

View File

@ -1,13 +1,18 @@
# Central tag overrides for the Hyprland stack
# 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 0.53.x stack (includes hyprwire)
HYPRLAND_TAG=v0.53.1
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8
HYPRGRAPHICS_TAG=v0.5.0
HYPRLAND_GUIUTILS_TAG=v0.2.1
HYPRTOOLKIT_TAG=v0.4.1
HYPRWAYLAND_SCANNER_TAG=v0.4.5
HYPRLAND_PROTOCOLS_TAG=v0.7.0
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
HYPRLAND_QTUTILS_TAG=v0.1.5
HYPRLAND_TAG=v0.53.2
HYPRLANG_TAG=v0.6.8
HYPRTOOLKIT_TAG=v0.5.3
HYPRUTILS_TAG=v0.11.0
HYPRWAYLAND_SCANNER_TAG=v0.4.5
HYPRLAND_GUIUTILS_TAG=v0.2.0
HYPRWIRE_TAG=v0.2.1
WAYLAND_PROTOCOLS_TAG=1.46

View File

@ -25,12 +25,6 @@ if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Shared build output root (override with BUILD_ROOT env)
BUILD_ROOT="${BUILD_ROOT:-$PWD/build}"
mkdir -p "$BUILD_ROOT"
SRC_ROOT="${SRC_ROOT:-$BUILD_ROOT/src}"
mkdir -p "$SRC_ROOT"
# Show progress function
show_progress() {
local pid=$1

View File

@ -95,9 +95,8 @@ sudo npm install --global typescript 2>&1 | tee -a "$LOG"
# ags v1
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
# Remove previous sources (both legacy "ags" and tagged "ags_v1.9.0") under build/src
for OLD in "ags" "ags_v1.9.0"; do
SRC_DIR="$SRC_ROOT/$OLD"
# Remove previous sources (both legacy "ags" and tagged "ags_v1.9.0")
for SRC_DIR in "ags" "ags_v1.9.0"; do
if [ -d "$SRC_DIR" ]; then
printf "${NOTE} Removing existing %s directory...\\n" "$SRC_DIR"
rm -rf "$SRC_DIR"
@ -108,14 +107,11 @@ printf "\n%.0s" {1..1}
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
printf "\n%.0s" {1..1}
# Clone repository with the specified tag and capture git output into MLOG
SRC_DIR="$SRC_ROOT/ags_v1.9.0"
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/ags_v1.9.0"
mkdir -p "$BUILD_DIR"
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
cd ags_v1.9.0 || exit 1
npm install
meson setup "$BUILD_DIR"
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
meson setup build
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
# Patch installed AGS launchers to ensure GI typelibs in /usr/local/lib are discoverable in GJS ESM
@ -207,11 +203,11 @@ WRAP
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
fi
# Move logs to Install-Logs directory
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
mv "$MLOG" ../Install-Logs/ || true
cd ..
else
echo -e "\n${ERROR} Failed to download ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Please check your connection\n" 2>&1 | tee -a "$LOG"
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
mv "$MLOG" ../Install-Logs/ || true
exit 1
fi

View File

@ -41,22 +41,19 @@ MLOG="install-$(date +%d-%H%M%S)_aquamarine.log"
# Installation of dependencies
printf "\n%s - Installing ${YELLOW}aquamarine dependencies${RESET} .... \n" "${INFO}"
# Check if aquamarinedirectory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/aquamarine"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if aquamarinedirectory exists and remove it
if [ -d "aquamarine" ]; then
rm -rf "aquamarine"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n"
if git clone --recursive -b "$tag" https://github.com/hyprwm/aquamarine.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/aquamarine"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
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/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_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}aquamarine $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -65,7 +62,7 @@ if git clone --recursive -b "$tag" https://github.com/hyprwm/aquamarine.git "$SR
echo "${NOTE} DRY RUN: Skipping installation of aquamarine $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -24,16 +24,15 @@ fi
# Check if Hyprland-Dots exists
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n"
# Check if Hyprland-Dots exists (under build/src)
SRC_DIR="$SRC_ROOT/Hyprland-Dots-Debian"
if [ -d "$SRC_DIR" ]; then
cd "$SRC_DIR"
# Check if Hyprland-Dots exists
if [ -d Hyprland-Dots-Debian ]; then
cd Hyprland-Dots-Debian
git stash && git pull
chmod +x copy.sh
./copy.sh
else
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
cd Hyprland-Dots-Debian || exit 1
chmod +x copy.sh
./copy.sh
else

View File

@ -29,19 +29,18 @@ for PKG1 in "${engine[@]}"; do
install_package "$PKG1" "$LOG"
done
# Check if the directory exists and delete it if present (under build/src)
SRC_DIR="$SRC_ROOT/GTK-themes-icons"
if [ -d "$SRC_DIR" ]; then
# Check if the directory exists and delete it if present
if [ -d "GTK-themes-icons" ]; then
echo "$NOTE GTK themes and Icons directory exist..deleting..." 2>&1 | tee -a "$LOG"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
fi
echo "$NOTE Cloning ${SKY_BLUE}GTK themes and Icons${RESET} repository..." 2>&1 | tee -a "$LOG"
if git clone --depth=1 https://github.com/JaKooLit/GTK-themes-icons.git "$SRC_DIR"; then
cd "$SRC_DIR"
if git clone --depth=1 https://github.com/JaKooLit/GTK-themes-icons.git ; then
cd GTK-themes-icons
chmod +x auto-extract.sh
./auto-extract.sh
cd "$PARENT_DIR"
cd ..
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes directories" 2>&1 | tee -a "$LOG"
else
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"

View File

@ -45,28 +45,25 @@ for PKG1 in "${cursor[@]}"; do
fi
done
# Check if hyprcursor folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprcursor"
if [ -d "$SRC_DIR" ]; then
# Check if hyprcursor folder exists and remove it
if [ -d "hyprcursor" ]; then
printf "${NOTE} Removing existing hyprcursor folder...\n"
rm -rf "$SRC_DIR"
rm -rf "hyprcursor"
fi
# Clone and build
printf "${NOTE} Installing hyprcursor...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprcursor.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprcursor"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if git clone --recursive -b $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`
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} hyprcursor installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for hyprcursor." 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for hyprcursor." 2>&1 | tee -a "$LOG"

View File

@ -53,22 +53,19 @@ for PKG1 in "${hyprgraphics[@]}"; do
done
printf "\n%.0s" {1..1}
# Check if hyprgraphics directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprgraphics"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hyprgraphics directory exists and remove it
if [ -d "hyprgraphics" ]; then
rm -rf "hyprgraphics"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}hyprgraphics $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprgraphics"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git; then
cd hyprgraphics || 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 hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprgraphics $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$MLOG"
@ -77,7 +74,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git "$SR
echo "${NOTE} DRY RUN: Skipping installation of hyprgraphics $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -37,27 +37,24 @@ for PKG1 in "${idle[@]}"; do
fi
done
# Check if hypridle directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hypridle"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hypridle directory exists and remove it
if [ -d "hypridle" ]; then
rm -rf "hypridle"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}hypridle $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hypridle.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hypridle"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if git clone --recursive -b $tag https://github.com/hyprwm/hypridle.git; then
cd hypridle || exit 1
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hypridle $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -63,16 +63,15 @@ done
printf "\n%.0s" {1..1}
# Check if hyprland-guiutils directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprland-guiutils"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# 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-guiutils $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then
cd hyprland-guiutils || exit 1
# Prefer /usr/local Hypr* libs so we don't accidentally link against copies in /lib.
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}"
@ -80,12 +79,10 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git
export LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,-rpath-link,/usr/local/lib ${LDFLAGS:-}"
export CPPFLAGS="-I/usr/local/include ${CPPFLAGS:-}"
BUILD_DIR="$BUILD_ROOT/hyprland-guiutils"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --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/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_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprland-guiutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -94,7 +91,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git
echo "${NOTE} DRY RUN: Skipping installation of hyprland-guiutils $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -41,21 +41,18 @@ MLOG="install-$(date +%d-%H%M%S)_protocols2.log"
# Installation of dependencies
printf "\n%s - Installing ${YELLOW}hyprland-protocols dependencies${RESET} .... \n" "${INFO}"
# Check if hyprland-protocols directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprland-protocols"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hyprland-protocols directory exists and remove it
if [ -d "hyprland-protocols" ]; then
rm -rf "hyprland-protocols"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}hyprland-protocols $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-protocols.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprland-protocols"
mkdir -p "$BUILD_DIR"
meson setup "$BUILD_DIR"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-protocols.git; then
cd hyprland-protocols || exit 1
meson setup build
if [ $DO_INSTALL -eq 1 ]; then
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprland-protocols $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-protocols $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -64,7 +61,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-protocols.gi
echo "${NOTE} DRY RUN: Skipping installation of hyprland-protocols $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -61,22 +61,19 @@ done
printf "\n%.0s" {1..1}
# Check if hyprland-qt-support directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprland-qt-support"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hyprland-qt-support directory exists and remove it
if [ -d "hyprland-qt-support" ]; then
rm -rf "hyprland-qt-support"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}hyprland-qt-support $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qt-support.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprland-qt-support"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qt-support.git; then
cd hyprland-qt-support || 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_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprland-qt-support $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -85,7 +82,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qt-support.g
echo "${NOTE} DRY RUN: Skipping installation of hyprland-qt-support $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -3,7 +3,7 @@
# Main Hyprland Package#
#specific branch or release
tag="v0.53.2"
tag="v0.53.0"
# Auto-source centralized tags if env is unset
if [ -z "${HYPRLAND_TAG:-}" ]; then
TAGS_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/hypr-tags.env"
@ -73,17 +73,14 @@ printf "\n%.0s" {1..1}
# Clone, build, and install Hyprland using Cmake
printf "${NOTE} Cloning and Installing ${YELLOW}Hyprland $tag${RESET} ...\n"
# Check if Hyprland folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/Hyprland"
if [ -d "$SRC_DIR" ]; then
# Check if Hyprland folder exists and remove it
if [ -d "Hyprland" ]; then
printf "${NOTE} Removing existing Hyprland folder...\n"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "Hyprland" 2>&1 | tee -a "$LOG"
fi
if git clone --recursive -b $tag "https://github.com/hyprwm/Hyprland" "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprland"
mkdir -p "$BUILD_DIR"
if git clone --recursive -b $tag "https://github.com/hyprwm/Hyprland"; then
cd "Hyprland" || exit 1
# Compatibility shim for toolchains without std::vector::{insert_range,append_range}
RANGE_HDR="$(pwd)/hypr_range_compat.hpp"
@ -132,9 +129,9 @@ EOF
fi
# Apply patch only if it applies cleanly; otherwise skip
if [ -f "$PARENT_DIR/assets/0001-fix-hyprland-compile-issue.patch" ]; then
if patch -p1 --dry-run <"$PARENT_DIR/assets/0001-fix-hyprland-compile-issue.patch" >/dev/null 2>&1; then
patch -p1 <"$PARENT_DIR/assets/0001-fix-hyprland-compile-issue.patch"
if [ -f ../assets/0001-fix-hyprland-compile-issue.patch ]; then
if patch -p1 --dry-run <../assets/0001-fix-hyprland-compile-issue.patch >/dev/null 2>&1; then
patch -p1 <../assets/0001-fix-hyprland-compile-issue.patch
else
echo "${NOTE} Hyprland compile patch does not apply on $tag; skipping."
fi
@ -182,27 +179,17 @@ EOF
-DCMAKE_CXX_FLAGS="-Wno-unknown-warning-option -include ${RANGE_HDR}"
"${SYSTEM_FLAGS[@]}"
)
cmake -S . -B "$BUILD_DIR" "${CONFIG_FLAGS[@]}"
cmake --build "$BUILD_DIR" -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
cmake -S . -B build "${CONFIG_FLAGS[@]}"
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
printf "${OK} ${MAGENTA}Hyprland tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
# Update version header file for tools like fastfetch that read it at runtime
printf "${NOTE} Updating system version header for Hyprland...\n"
VER_OUTPUT=""
if [ -x "$BUILD_DIR/Hyprland" ]; then
VER_OUTPUT=$("$BUILD_DIR/Hyprland" --version)
elif [ -x "$BUILD_DIR/hyprland" ]; then
VER_OUTPUT=$("$BUILD_DIR/hyprland" --version)
elif command -v Hyprland >/dev/null 2>&1; then
VER_OUTPUT=$(Hyprland --version)
elif command -v hyprctl >/dev/null 2>&1; then
VER_OUTPUT=$(hyprctl version)
fi
if [ -n "$VER_OUTPUT" ]; then
if [ -f ./build/hyprland ]; then
VER_OUTPUT=$(./build/hyprland --version)
VERSION=$(printf '%s' "$VER_OUTPUT" | head -n1 | awk '{print $2}')
COMMIT=$(printf '%s' "$VER_OUTPUT" | grep -oP 'commit \K[a-f0-9]+' | head -1)
TAG=$(printf '%s' "$VER_OUTPUT" | grep -oP 'Tag: \K[^,]+' | head -1)
@ -260,35 +247,13 @@ EOF
printf '%s\n' "#define HYPRUTILS_VERSION \"$HYPRUTILS_VER\"" >> /tmp/version_header.h.tmp
printf '%s\n' "#define HYPRCURSOR_VERSION \"$HYPRCURSOR_VER\"" >> /tmp/version_header.h.tmp
printf '%s\n' "#define HYPRGRAPHICS_VERSION \"$HYPRGRAPHICS_VER\"" >> /tmp/version_header.h.tmp
TARGETS=()
if [ -f /usr/local/include/hyprland/src/version.h ]; then
TARGETS+=(/usr/local/include/hyprland/src/version.h)
fi
if [ -f /usr/include/hyprland/src/version.h ]; then
# If both exist, keep /usr/include in sync to avoid fastfetch mismatch.
TARGETS+=(/usr/include/hyprland/src/version.h)
fi
if [ ${#TARGETS[@]} -eq 0 ]; then
# Default to /usr/local if neither header exists yet.
TARGETS+=(/usr/local/include/hyprland/src/version.h)
fi
UPDATED=0
for tgt in "${TARGETS[@]}"; do
if sudo install -d "$(dirname "$tgt")" && sudo cp /tmp/version_header.h.tmp "$tgt" 2>&1 | tee -a "$MLOG"; then
UPDATED=1
fi
done
if [ $UPDATED -eq 1 ]; then
if sudo mv /tmp/version_header.h.tmp /usr/include/hyprland/src/version.h 2>&1 | tee -a "$MLOG"; then
printf "${OK} System version header updated to $VERSION\n" 2>&1 | tee -a "$MLOG"
else
printf "${NOTE} Could not update system version header (non-critical)\n" 2>&1 | tee -a "$MLOG"
fi
rm -f /tmp/version_header.h.tmp
else
printf "${NOTE} Could not determine Hyprland version output for header update (non-critical)\n" 2>&1 | tee -a "$MLOG"
fi
else
echo -e "${ERROR} Installation failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -296,7 +261,7 @@ EOF
else
echo "${NOTE} DRY RUN: Skipping installation of Hyprland $tag."
fi
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -41,22 +41,19 @@ MLOG="install-$(date +%d-%H%M%S)_hyprlang2.log"
# Installation of dependencies
printf "\n%s - Installing ${YELLOW}hyprlang dependencies${RESET} .... \n" "${INFO}"
# Check if hyprlang directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprlang"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hyprlang directory exists and remove it
if [ -d "hyprlang" ]; then
rm -rf "hyprlang"
fi
# Clone and build
printf "${INFO} Installing ${YELLOW}hyprlang $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprlang"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git; then
cd hyprlang || 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 hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprlang tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -65,7 +62,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git "$SRC_DI
echo "${NOTE} DRY RUN: Skipping installation of hyprlang $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -46,27 +46,24 @@ for PKG1 in "${build_dep[@]}"; do
build_dep "$PKG1" "$LOG"
done
# Check if hyprlock directory exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprlock"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if hyprlock directory exists and remove it
if [ -d "hyprlock" ]; then
rm -rf "hyprlock"
fi
# Clone and build hyprlock
printf "${INFO} Installing ${YELLOW}hyprlock $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlock.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprlock"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if git clone --recursive -b $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
printf "${OK} ${YELLOW}hyprlock $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -43,28 +43,25 @@ for PKG1 in "${polkitagent[@]}"; do
fi
done
# Check if hyprpolkitagent folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprpolkitagent"
if [ -d "$SRC_DIR" ]; then
# Check if hyprpolkitagent folder exists and remove it
if [ -d "hyprpolkitagent" ]; then
printf "${NOTE} Removing existing hyprpolkitagent folder...\n"
rm -rf "$SRC_DIR"
rm -rf "hyprpolkitagent"
fi
# Clone and build
printf "${NOTE} Installing hyprpolkitagent...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprpolkitagent.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprpolkitagent"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if git clone --recursive -b $tag https://github.com/hyprwm/hyprpolkitagent.git; then
cd hyprpolkitagent || 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} hyprpolkitagent installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for hyprpolkitagent." 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for hyprpolkitagent." 2>&1 | tee -a "$LOG"

View File

@ -40,20 +40,18 @@ 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 (under build/src)
SRC_DIR="$SRC_ROOT/hyprtoolkit"
if [ -d "$SRC_DIR" ]; then
# Check if hyprtoolkit folder exists and remove it
if [ -d "hyprtoolkit" ]; then
printf "${NOTE} Removing existing hyprtoolkit folder...\n"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "hyprtoolkit" 2>&1 | tee -a "$LOG"
fi
if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git" "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprtoolkit"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
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_DIR" 2>&1 | tee -a "$MLOG"; 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"
@ -61,7 +59,7 @@ if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git" "$SRC_DIR"; the
else
echo "${NOTE} DRY RUN: Skipping installation of hyprtoolkit $tag."
fi
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for hyprtoolkit" 2>&1 | tee -a "$LOG"

View File

@ -43,20 +43,18 @@ 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 (under build/src)
SRC_DIR="$SRC_ROOT/hyprutils"
if [ -d "$SRC_DIR" ]; then
# Check if hyprutils folder exists and remove it
if [ -d "hyprutils" ]; then
printf "${NOTE} Removing existing hyprutils folder...\n"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "hyprutils" 2>&1 | tee -a "$LOG"
fi
if git clone -b $tag "https://github.com/hyprwm/hyprutils.git" "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprutils"
mkdir -p "$BUILD_DIR"
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" --config Release --target all -j$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)
if git clone -b $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/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_DIR" 2>&1 | tee -a "$MLOG"; then
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"
@ -64,7 +62,7 @@ if git clone -b $tag "https://github.com/hyprwm/hyprutils.git" "$SRC_DIR"; then
else
echo "${NOTE} DRY RUN: Skipping installation of hyprutils $tag."
fi
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for hyprutils" 2>&1 | tee -a "$LOG"

View File

@ -55,23 +55,20 @@ done
printf "${NOTE} Installing hyprwayland-scanner...\n"
# Check if hyprwayland-scanner folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/hyprwayland-scanner"
if [ -d "$SRC_DIR" ]; then
# Check if hyprwayland-scanner folder exists and remove it
if [ -d "hyprwayland-scanner" ]; then
printf "${NOTE} Removing existing hyprwayland-scanner folder...\n"
rm -rf "$SRC_DIR"
rm -rf "hyprwayland-scanner"
fi
# Clone and build hyprlang
printf "${NOTE} Installing hyprwayland-scanner...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprwayland-scanner"
mkdir -p "$BUILD_DIR"
cmake -DCMAKE_INSTALL_PREFIX=/usr -B "$BUILD_DIR"
cmake --build "$BUILD_DIR" -j `nproc`
if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.git; then
cd hyprwayland-scanner || exit 1
cmake -DCMAKE_INSTALL_PREFIX=/usr -B build
cmake --build build -j `nproc`
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} hyprwayland-scanner installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for hyprwayland-scanner." 2>&1 | tee -a "$MLOG"
@ -80,7 +77,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.g
echo "${NOTE} DRY RUN: Skipping installation of hyprwayland-scanner $tag."
fi
#moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for hyprwayland-scanner. Please check log." 2>&1 | tee -a "$LOG"

View File

@ -61,18 +61,15 @@ MLOG="install-$(date +%d-%H%M%S)_hyprwire2.log"
printf "${NOTE} Installing hyprwire $tag...\n"
# Remove existing tree if present (under build/src)
SRC_DIR="$SRC_ROOT/hyprwire"
if [ -d "$SRC_DIR" ]; then
# Remove existing tree if present
if [ -d "hyprwire" ]; then
printf "${NOTE} Removing existing hyprwire folder...\n"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "hyprwire" 2>&1 | tee -a "$LOG"
fi
# Clone and build
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/hyprwire"
mkdir -p "$BUILD_DIR"
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then
cd hyprwire || exit 1
# Decide whether we need the append_range compatibility shim.
# On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch.
@ -134,14 +131,14 @@ EOF
# Absolute path for forced include
APPEND_HDR="$(pwd)/append_range_compat.hpp"
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
else
echo "${NOTE} Toolchain supports std::vector::append_range; building hyprwire without shim."
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
fi
cmake --build "$BUILD_DIR" -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} hyprwire $tag installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for hyprwire $tag" 2>&1 | tee -a "$MLOG"
@ -149,7 +146,7 @@ EOF
else
echo "${NOTE} DRY RUN: Skipping installation of hyprwire $tag."
fi
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for hyprwire $tag" 2>&1 | tee -a "$LOG"

View File

@ -117,7 +117,7 @@ done
# Build Google Breakpad from source if pkg-config 'breakpad' is missing
if ! pkg-config --exists breakpad; then
note "Building Google Breakpad from source..."
BP_DIR="$SRC_ROOT/breakpad"
BP_DIR="$PARENT_DIR/.thirdparty/breakpad"
rm -rf "$BP_DIR"
mkdir -p "$BP_DIR"
(
@ -166,7 +166,7 @@ PCEOF
fi
# Clone source (prefer upstream forgejo; mirror available at github:quickshell-mirror/quickshell)
SRC_DIR="$SRC_ROOT/quickshell-src"
SRC_DIR="quickshell-src"
if [ -d "$SRC_DIR" ]; then
note "Removing existing $SRC_DIR"
rm -rf "$SRC_DIR"
@ -183,33 +183,32 @@ fi
# Configure with Ninja; enable RelWithDebInfo, leave features ON (deps installed above)
CMAKE_FLAGS=(
-GNinja
-B build
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DDISTRIBUTOR="Debian-Hyprland installer"
)
note "Configuring Quickshell (CMake)..."
# Use explicit source/build dirs and preserve cmake exit code with pipefail
BUILD_DIR="$BUILD_ROOT/quickshell"
mkdir -p "$BUILD_DIR"
if ! cmake -S . -B "$BUILD_DIR" "${CMAKE_FLAGS[@]}" 2>&1 | tee -a "$MLOG"; then
if ! cmake -S . -B build "${CMAKE_FLAGS[@]}" 2>&1 | tee -a "$MLOG"; then
echo "${ERROR} CMake configure failed. See log: $MLOG" | tee -a "$LOG"
exit 1
fi
# Ensure build files exist before invoking ninja
if [ ! -f "$BUILD_DIR/build.ninja" ]; then
if [ ! -f build/build.ninja ]; then
echo "${ERROR} build/build.ninja not generated; aborting build." | tee -a "$LOG"
exit 1
fi
note "Building Quickshell (Ninja)..."
if ! cmake --build "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
if ! cmake --build build 2>&1 | tee -a "$MLOG"; then
echo "${ERROR} Build failed. See log: $MLOG" | tee -a "$LOG"
exit 1
fi
note "Installing Quickshell..."
if ! sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
if ! sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
echo "${ERROR} Installation failed. See log: $MLOG" | tee -a "$LOG"
exit 1
fi

View File

@ -68,29 +68,25 @@ printf "\n%.0s" {1..2}
# Clone and build rofi - wayland
printf "${NOTE} Building and Installing ${SKY_BLUE}rofi-wayland${RESET} $rofi_tag ...\n"
# Check if rofi directory exists (under build/src)
SRC_DIR="$SRC_ROOT/rofi-$rofi_tag"
TAR_PATH="$SRC_ROOT/rofi-$rofi_tag.tar.gz"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if rofi directory exists
if [ -d "rofi-$rofi_tag" ]; then
rm -rf "rofi-$rofi_tag"
fi
# cloning rofi-wayland
printf "${NOTE} Downloading ${YELLOW}rofi-wayland $rofi_tag${RESET} from releases...\n"
wget -O "$TAR_PATH" $release_url
wget $release_url
if [ -f "$TAR_PATH" ]; then
if [ -f "rofi-$rofi_tag.tar.gz" ]; then
printf "${OK} ${YELLOW}rofi-wayland $rofi_tag${RESET} downloaded successfully.\n" 2>&1 | tee -a "$LOG"
tar -C "$SRC_ROOT" -xf "$TAR_PATH"
tar xf rofi-$rofi_tag.tar.gz
fi
cd "$SRC_DIR" || exit 1
cd rofi-$rofi_tag || exit 1
# Proceed with the installation steps
BUILD_DIR="$BUILD_ROOT/rofi-$rofi_tag"
mkdir -p "$BUILD_DIR"
if meson setup "$BUILD_DIR" && ninja -C "$BUILD_DIR" ; then
if sudo ninja -C "$BUILD_DIR" install 2>&1 | tee -a "$MLOG"; then
if meson setup build && ninja -C build ; then
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -100,10 +96,10 @@ else
fi
# Move logs to Install-Logs directory
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
mv "$MLOG" ../Install-Logs/ || true
cd .. || exit 1
# clean up
rm -rf "$TAR_PATH"
rm -rf rofi-$rofi_tag.tar.gz
printf "\n%.0s" {1..2}

View File

@ -38,13 +38,11 @@ sudo systemctl enable power-profiles-daemon 2>&1 | tee -a "$LOG"
install_and_log() {
local project_name="$1"
local git_url="$2"
local src_dir="$SRC_ROOT/$project_name"
printf "${NOTE} Installing $project_name\n"
rm -rf "$src_dir"
if git clone "$git_url" "$src_dir"; then
cd "$src_dir" || exit 1
if git clone "$git_url" "$project_name"; then
cd "$project_name" || exit 1
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 2>&1 | tee -a "$LOG"
source "$HOME/.cargo/env"
make
@ -60,7 +58,7 @@ install_and_log() {
fi
#moving logs into main install-logs
mv $LOG "$PARENT_DIR/Install-Logs/" || true
mv $LOG ../Install-Logs/ || true
cd - || exit 1
else
echo -e "${ERROR} Cloning $project_name from $git_url failed."

View File

@ -31,16 +31,15 @@ if [ -d "/usr/share/sddm/themes/$theme_name" ]; then
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory." 2>&1 | tee -a "$LOG"
fi
# Check if $theme_name directory exists in build/src and remove if it does
SRC_DIR="$SRC_ROOT/$theme_name"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Check if $theme_name directory exists in the current directory and remove if it does
if [ -d "$theme_name" ]; then
rm -rf "$theme_name"
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory from the current location." 2>&1 | tee -a "$LOG"
fi
# Clone the repository
if git clone --depth=1 "$source_theme" "$SRC_DIR"; then
if [ ! -d "$SRC_DIR" ]; then
if git clone --depth=1 "$source_theme" "$theme_name"; then
if [ ! -d "$theme_name" ]; then
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
fi
@ -51,7 +50,7 @@ if git clone --depth=1 "$source_theme" "$SRC_DIR"; then
fi
# Move cloned theme to the themes directory
sudo mv "$SRC_DIR" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
sudo mv "$theme_name" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
# setting up SDDM theme
sddm_conf="/etc/sddm.conf"

View File

@ -49,14 +49,13 @@ done
printf "\n%.0s" {1..2}
# Check if swww directory exists (under build/src)
SRC_DIR="$SRC_ROOT/swww"
if [ -d "$SRC_DIR" ]; then
cd "$SRC_DIR" || exit 1
# Check if swww directory exists
if [ -d "swww" ]; then
cd swww || exit 1
git pull origin main 2>&1 | tee -a "$MLOG"
else
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git; then
cd swww || exit 1
else
echo -e "${ERROR} Download failed for ${YELLOW}swww $swww_tag${RESET}" 2>&1 | tee -a "$LOG"
exit 1
@ -95,7 +94,7 @@ sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG"
sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG"
# Moving logs into main Install-Logs
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
mv "$MLOG" ../Install-Logs/ || true
cd - || exit 1
printf "\n%.0s" {1..2}

View File

@ -39,18 +39,17 @@ MLOG="install-$(date +%d-%H%M%S)_wayland-protocols2.log"
printf "\n%s - Installing ${YELLOW}wayland-protocols (from source)${RESET} .... \n" "${INFO}"
# Clean previous clone (under build/src)
SRC_DIR="$SRC_ROOT/wayland-protocols"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
# Clean previous clone
if [ -d "wayland-protocols" ]; then
rm -rf "wayland-protocols"
fi
# Clone and build (meson)
# Upstream: https://gitlab.freedesktop.org/wayland/wayland-protocols.git
printf "${INFO} Installing ${YELLOW}wayland-protocols $tag${RESET} ...\n"
repo_url="https://gitlab.freedesktop.org/wayland/wayland-protocols.git"
if git clone --depth=1 --filter=blob:none "$repo_url" "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
if git clone --depth=1 --filter=blob:none "$repo_url" wayland-protocols; then
cd wayland-protocols || exit 1
# Fetch tags and attempt to checkout the requested tag, trying both raw and v-prefixed
git fetch --tags --depth=1 >/dev/null 2>&1 || true
checked_out=0
@ -68,12 +67,10 @@ if git clone --depth=1 --filter=blob:none "$repo_url" "$SRC_DIR"; then
exit 1
fi
# Install to /usr/local so pkg-config can prefer it over distro /usr
BUILD_DIR="$BUILD_ROOT/wayland-protocols"
mkdir -p "$BUILD_DIR"
meson setup "$BUILD_DIR" --prefix=/usr/local
meson compile -C "$BUILD_DIR" -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
meson setup build --prefix=/usr/local
meson compile -C build -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
if [ $DO_INSTALL -eq 1 ]; then
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}wayland-protocols $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}wayland-protocols $tag${RESET}" 2>&1 | tee -a "$MLOG"
@ -82,7 +79,7 @@ if git clone --depth=1 --filter=blob:none "$repo_url" "$SRC_DIR"; then
echo "${NOTE} DRY RUN: Skipping installation of wayland-protocols $tag."
fi
# Move additional logs to Install-Logs directory if they exist
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}wayland-protocols $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -48,26 +48,23 @@ done
# Clone, build, and install XDPH
printf "${NOTE} Cloning and Installing ${YELLOW}XDG Desktop Portal Hyprland $tag${RESET} ...\n"
# Check if xdg-desktop-portal-hyprland folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/xdg-desktop-portal-hyprland"
if [ -d "$SRC_DIR" ]; then
# Check if xdg-desktop-portal-hyprland folder exists and remove it
if [ -d "xdg-desktop-portal-hyprland" ]; then
printf "${NOTE} Removing existing xdg-desktop-portal-hyprland folder...\n"
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
rm -rf "xdg-desktop-portal-hyprland" 2>&1 | tee -a "$LOG"
fi
if git clone --recursive -b $tag "https://github.com/hyprwm/xdg-desktop-portal-hyprland.git" "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/xdg-desktop-portal-hyprland"
mkdir -p "$BUILD_DIR"
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B "$BUILD_DIR"
cmake --build "$BUILD_DIR"
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
if git clone --recursive -b $tag "https://github.com/hyprwm/xdg-desktop-portal-hyprland.git"; then
cd "xdg-desktop-portal-hyprland" || exit 1
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} ${MAGENTA}xdph $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$MLOG"
fi
# Move the additional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$LOG"

View File

@ -40,28 +40,25 @@ for PKG1 in "${xkbcommon[@]}"; do
fi
done
# Check if xkbcommon folder exists and remove it (under build/src)
SRC_DIR="$SRC_ROOT/libxkbcommon"
if [ -d "$SRC_DIR" ]; then
# Check if xkbcommon folder exists and remove it
if [ -d "libxkbcommon" ]; then
printf "${NOTE} Removing existing libxkbcommon folder...\n"
rm -rf "$SRC_DIR"
rm -rf "libxkbcommon"
fi
# Clone and build
printf "${NOTE} Installing xkbcommon...\n"
if git clone --recursive -b $tag https://github.com/xkbcommon/libxkbcommon.git "$SRC_DIR"; then
cd "$SRC_DIR" || exit 1
BUILD_DIR="$BUILD_ROOT/libxkbcommon"
mkdir -p "$BUILD_DIR"
meson setup "$BUILD_DIR" --libdir=/usr/local/lib
meson compile -C "$BUILD_DIR"
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
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 "$PARENT_DIR/Install-Logs/" || true
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for xkbcommon." 2>&1 | tee -a "$LOG"

View File

@ -20,12 +20,11 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"
printf "${INFO} Installing ${SKY_BLUE}Pokemon color scripts${RESET} ..."
SRC_DIR="$SRC_ROOT/pokemon-colorscripts"
if [ -d "$SRC_DIR" ]; then
cd "$SRC_DIR" && git pull && sudo ./install.sh && cd ..
if [ -d "pokemon-colorscripts" ]; then
cd pokemon-colorscripts && git pull && sudo ./install.sh && cd ..
else
git clone --depth=1 https://gitlab.com/phoneybadger/pokemon-colorscripts.git "$SRC_DIR" &&
cd "$SRC_DIR" && sudo ./install.sh && cd ..
git clone --depth=1 https://gitlab.com/phoneybadger/pokemon-colorscripts.git &&
cd pokemon-colorscripts && sudo ./install.sh && cd ..
fi
# Check if ~/.zshrc exists

View File

@ -53,7 +53,7 @@ done
if [[ ! -f "$TAGS_FILE" ]]; then
cat > "$TAGS_FILE" <<'EOF'
# Default Hyprland stack versions
HYPRLAND_TAG=v0.53.2
HYPRLAND_TAG=v0.53.1
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8

View File

@ -103,7 +103,7 @@ ensure_tags_file() {
cat >"$TAGS_FILE" <<'EOF'
# Default Hyprland stack versions
# (You can override any of these via --set or by editing hypr-tags.env.)
HYPRLAND_TAG=v0.53.2
HYPRLAND_TAG=v0.53.1
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8