mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 01:30:13 +01:00
Compare commits
7 Commits
d26848d307
...
97decb81ce
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97decb81ce | ||
|
|
9f18774008 | ||
|
|
b7e405a300 | ||
|
|
6b66e62fd0 | ||
|
|
29e8044170 | ||
|
|
48e4f067d9 | ||
|
|
6d8fe7f359 |
13
CHANGELOG.md
13
CHANGELOG.md
@ -1,5 +1,14 @@
|
||||
## 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.
|
||||
@ -19,7 +28,7 @@
|
||||
|
||||
## 02 January 2026
|
||||
|
||||
### > Note: Support for Hyprland v0.53.1 is now available for Debian Stable (Trixie)
|
||||
### > Note: Support for Hyprland v0.53.2 is now available for Debian Stable (Trixie)
|
||||
|
||||
### > At this time it should be considered BETA, not for production use
|
||||
|
||||
@ -28,7 +37,7 @@
|
||||
### > Only Intel, AMD, and in VMs
|
||||
|
||||
- Updated:
|
||||
- Default Hyprland stack versions now target 0.53.1 (see `hypr-tags.env`)
|
||||
- Default Hyprland stack versions now target 0.53.2 (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
|
||||
|
||||
@ -128,7 +128,7 @@ Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
||||
|
||||
```bash
|
||||
# Versiones actuales (ejemplo)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
@ -327,6 +327,20 @@ 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
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ This file contains version tags for all Hyprland components:
|
||||
|
||||
```bash
|
||||
# Current versions (example)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
@ -327,6 +327,20 @@ 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
|
||||
|
||||
|
||||
@ -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.1!
|
||||
- Debian now builds Hyprland v0.53.2!
|
||||
- This requires the just released `Debian-Hyprland v2.9.4` installer
|
||||
- Debian 13 (`Trixie`, aka `Stable`)
|
||||
- While it does now support v0.53.1
|
||||
- While it does now support v0.53.2
|
||||
- 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.1 without issue
|
||||
- Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.2 without issue
|
||||
|
||||
- 10 October 2025 Update!
|
||||
- Hyprland-Debian nows builds 0.51.1 from source!
|
||||
|
||||
@ -1,18 +1,13 @@
|
||||
# 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
|
||||
HYPRTOOLKIT_TAG=v0.4.1
|
||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||
HYPRLAND_GUIUTILS_TAG=v0.2.1
|
||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||||
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
|
||||
HYPRWIRE_TAG=v0.2.1
|
||||
WAYLAND_PROTOCOLS_TAG=1.46
|
||||
|
||||
@ -25,6 +25,12 @@ 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
|
||||
|
||||
@ -95,8 +95,9 @@ 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")
|
||||
for SRC_DIR in "ags" "ags_v1.9.0"; do
|
||||
# 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"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing %s directory...\\n" "$SRC_DIR"
|
||||
rm -rf "$SRC_DIR"
|
||||
@ -107,11 +108,14 @@ 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
|
||||
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
|
||||
cd ags_v1.9.0 || exit 1
|
||||
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"
|
||||
npm install
|
||||
meson setup build
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||
meson setup "$BUILD_DIR"
|
||||
if sudo meson install -C "$BUILD_DIR" 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
|
||||
@ -203,11 +207,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" ../Install-Logs/ || true
|
||||
mv "$MLOG" "$PARENT_DIR/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" ../Install-Logs/ || true
|
||||
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@ -41,19 +41,22 @@ 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
|
||||
if [ -d "aquamarine" ]; then
|
||||
rm -rf "aquamarine"
|
||||
# Check if aquamarinedirectory exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/aquamarine"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
rm -rf "$SRC_DIR"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
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/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -62,7 +65,7 @@ if git clone --recursive -b "$tag" https://github.com/hyprwm/aquamarine.git; the
|
||||
echo "${NOTE} DRY RUN: Skipping installation of aquamarine $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -24,15 +24,16 @@ 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
|
||||
if [ -d Hyprland-Dots-Debian ]; then
|
||||
cd Hyprland-Dots-Debian
|
||||
# Check if Hyprland-Dots exists (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/Hyprland-Dots-Debian"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
cd "$SRC_DIR"
|
||||
git stash && git pull
|
||||
chmod +x copy.sh
|
||||
./copy.sh
|
||||
else
|
||||
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
|
||||
cd Hyprland-Dots-Debian || exit 1
|
||||
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots "$SRC_DIR"; then
|
||||
cd "$SRC_DIR" || exit 1
|
||||
chmod +x copy.sh
|
||||
./copy.sh
|
||||
else
|
||||
|
||||
@ -29,18 +29,19 @@ for PKG1 in "${engine[@]}"; do
|
||||
install_package "$PKG1" "$LOG"
|
||||
done
|
||||
|
||||
# Check if the directory exists and delete it if present
|
||||
if [ -d "GTK-themes-icons" ]; then
|
||||
# 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
|
||||
echo "$NOTE GTK themes and Icons directory exist..deleting..." 2>&1 | tee -a "$LOG"
|
||||
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 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 ; then
|
||||
cd GTK-themes-icons
|
||||
if git clone --depth=1 https://github.com/JaKooLit/GTK-themes-icons.git "$SRC_DIR"; then
|
||||
cd "$SRC_DIR"
|
||||
chmod +x auto-extract.sh
|
||||
./auto-extract.sh
|
||||
cd ..
|
||||
cd "$PARENT_DIR"
|
||||
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"
|
||||
|
||||
@ -45,25 +45,28 @@ for PKG1 in "${cursor[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if hyprcursor folder exists and remove it
|
||||
if [ -d "hyprcursor" ]; then
|
||||
# Check if hyprcursor folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprcursor"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprcursor folder...\n"
|
||||
rm -rf "hyprcursor"
|
||||
rm -rf "$SRC_DIR"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${NOTE} Installing hyprcursor...\n"
|
||||
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
|
||||
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
|
||||
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 ../Install-Logs/ || true
|
||||
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprcursor." 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -53,19 +53,22 @@ for PKG1 in "${hyprgraphics[@]}"; do
|
||||
done
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprgraphics directory exists and remove it
|
||||
if [ -d "hyprgraphics" ]; then
|
||||
rm -rf "hyprgraphics"
|
||||
# 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"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hyprgraphics $tag${RESET} ...\n"
|
||||
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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -74,7 +77,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git; the
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprgraphics $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -37,24 +37,27 @@ for PKG1 in "${idle[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if hypridle directory exists and remove it
|
||||
if [ -d "hypridle" ]; then
|
||||
rm -rf "hypridle"
|
||||
# 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"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hypridle $tag${RESET} ...\n"
|
||||
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
|
||||
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
|
||||
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 ../Install-Logs/ || true
|
||||
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -63,15 +63,16 @@ done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprland-guiutils directory exists and remove it
|
||||
if [ -d "hyprland-guiutils" ]; then
|
||||
rm -rf "hyprland-guiutils"
|
||||
# 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"
|
||||
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; then
|
||||
cd hyprland-guiutils || exit 1
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git "$SRC_DIR"; then
|
||||
cd "$SRC_DIR" || 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:-}"
|
||||
@ -79,10 +80,12 @@ 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:-}"
|
||||
|
||||
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`
|
||||
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`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -91,7 +94,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" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -41,18 +41,21 @@ 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
|
||||
if [ -d "hyprland-protocols" ]; then
|
||||
rm -rf "hyprland-protocols"
|
||||
# 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"
|
||||
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; then
|
||||
cd hyprland-protocols || exit 1
|
||||
meson setup build
|
||||
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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo meson install -C "$BUILD_DIR" 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"
|
||||
@ -61,7 +64,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" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -61,19 +61,22 @@ done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprland-qt-support directory exists and remove it
|
||||
if [ -d "hyprland-qt-support" ]; then
|
||||
rm -rf "hyprland-qt-support"
|
||||
# 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"
|
||||
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; 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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -82,7 +85,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" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# Main Hyprland Package#
|
||||
|
||||
#specific branch or release
|
||||
tag="v0.53.0"
|
||||
tag="v0.53.2"
|
||||
# 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,14 +73,17 @@ 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
|
||||
if [ -d "Hyprland" ]; then
|
||||
# Check if Hyprland folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/Hyprland"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing Hyprland folder...\n"
|
||||
rm -rf "Hyprland" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
if git clone --recursive -b $tag "https://github.com/hyprwm/Hyprland"; then
|
||||
cd "Hyprland" || exit 1
|
||||
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"
|
||||
|
||||
# Compatibility shim for toolchains without std::vector::{insert_range,append_range}
|
||||
RANGE_HDR="$(pwd)/hypr_range_compat.hpp"
|
||||
@ -129,9 +132,9 @@ EOF
|
||||
fi
|
||||
|
||||
# Apply patch only if it applies cleanly; otherwise skip
|
||||
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
|
||||
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"
|
||||
else
|
||||
echo "${NOTE} Hyprland compile patch does not apply on $tag; skipping."
|
||||
fi
|
||||
@ -179,17 +182,27 @@ EOF
|
||||
-DCMAKE_CXX_FLAGS="-Wno-unknown-warning-option -include ${RANGE_HDR}"
|
||||
"${SYSTEM_FLAGS[@]}"
|
||||
)
|
||||
cmake -S . -B build "${CONFIG_FLAGS[@]}"
|
||||
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
cmake -S . -B "$BUILD_DIR" "${CONFIG_FLAGS[@]}"
|
||||
cmake --build "$BUILD_DIR" -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
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
if [ -f ./build/hyprland ]; then
|
||||
VER_OUTPUT=$(./build/hyprland --version)
|
||||
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
|
||||
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)
|
||||
@ -247,13 +260,35 @@ 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
|
||||
|
||||
if sudo mv /tmp/version_header.h.tmp /usr/include/hyprland/src/version.h 2>&1 | tee -a "$MLOG"; then
|
||||
|
||||
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
|
||||
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"
|
||||
@ -261,7 +296,7 @@ EOF
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of Hyprland $tag."
|
||||
fi
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -41,19 +41,22 @@ 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
|
||||
if [ -d "hyprlang" ]; then
|
||||
rm -rf "hyprlang"
|
||||
# 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"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hyprlang $tag${RESET} ...\n"
|
||||
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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -62,7 +65,7 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git; then
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprlang $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -46,24 +46,27 @@ for PKG1 in "${build_dep[@]}"; do
|
||||
build_dep "$PKG1" "$LOG"
|
||||
done
|
||||
|
||||
# Check if hyprlock directory exists and remove it
|
||||
if [ -d "hyprlock" ]; then
|
||||
rm -rf "hyprlock"
|
||||
# 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"
|
||||
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; 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
|
||||
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
|
||||
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 ../Install-Logs/ || true
|
||||
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -43,25 +43,28 @@ for PKG1 in "${polkitagent[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if hyprpolkitagent folder exists and remove it
|
||||
if [ -d "hyprpolkitagent" ]; then
|
||||
# Check if hyprpolkitagent folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprpolkitagent"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprpolkitagent folder...\n"
|
||||
rm -rf "hyprpolkitagent"
|
||||
rm -rf "$SRC_DIR"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${NOTE} Installing hyprpolkitagent...\n"
|
||||
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
|
||||
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
|
||||
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 ../Install-Logs/ || true
|
||||
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprpolkitagent." 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -40,18 +40,20 @@ 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
|
||||
# Check if hyprtoolkit folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprtoolkit"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprtoolkit folder...\n"
|
||||
rm -rf "hyprtoolkit" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -59,7 +61,7 @@ if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git"; then
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprtoolkit $tag."
|
||||
fi
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprtoolkit" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -43,18 +43,20 @@ 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
|
||||
# Check if hyprutils folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprutils"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprutils folder...\n"
|
||||
rm -rf "hyprutils" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -62,7 +64,7 @@ if git clone -b $tag "https://github.com/hyprwm/hyprutils.git"; then
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprutils $tag."
|
||||
fi
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprutils" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -55,20 +55,23 @@ done
|
||||
|
||||
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||
|
||||
# Check if hyprwayland-scanner folder exists and remove it
|
||||
if [ -d "hyprwayland-scanner" ]; then
|
||||
# Check if hyprwayland-scanner folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprwayland-scanner"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprwayland-scanner folder...\n"
|
||||
rm -rf "hyprwayland-scanner"
|
||||
rm -rf "$SRC_DIR"
|
||||
fi
|
||||
|
||||
# Clone and build hyprlang
|
||||
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||
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 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -77,7 +80,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" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprwayland-scanner. Please check log." 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -61,15 +61,18 @@ MLOG="install-$(date +%d-%H%M%S)_hyprwire2.log"
|
||||
|
||||
printf "${NOTE} Installing hyprwire $tag...\n"
|
||||
|
||||
# Remove existing tree if present
|
||||
if [ -d "hyprwire" ]; then
|
||||
# Remove existing tree if present (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/hyprwire"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing hyprwire folder...\n"
|
||||
rm -rf "hyprwire" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then
|
||||
cd hyprwire || exit 1
|
||||
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"
|
||||
|
||||
# Decide whether we need the append_range compatibility shim.
|
||||
# On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch.
|
||||
@ -131,14 +134,14 @@ EOF
|
||||
# Absolute path for forced include
|
||||
APPEND_HDR="$(pwd)/append_range_compat.hpp"
|
||||
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
|
||||
cmake -S . -B "$BUILD_DIR" -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 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
|
||||
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
|
||||
fi
|
||||
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
cmake --build "$BUILD_DIR" -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
|
||||
if sudo cmake --install "$BUILD_DIR" 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"
|
||||
@ -146,7 +149,7 @@ EOF
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprwire $tag."
|
||||
fi
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprwire $tag" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -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="$PARENT_DIR/.thirdparty/breakpad"
|
||||
BP_DIR="$SRC_ROOT/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="quickshell-src"
|
||||
SRC_DIR="$SRC_ROOT/quickshell-src"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
note "Removing existing $SRC_DIR"
|
||||
rm -rf "$SRC_DIR"
|
||||
@ -183,32 +183,33 @@ 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
|
||||
if ! cmake -S . -B build "${CMAKE_FLAGS[@]}" 2>&1 | tee -a "$MLOG"; then
|
||||
BUILD_DIR="$BUILD_ROOT/quickshell"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
if ! cmake -S . -B "$BUILD_DIR" "${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/build.ninja ]; then
|
||||
if [ ! -f "$BUILD_DIR/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 2>&1 | tee -a "$MLOG"; then
|
||||
if ! cmake --build "$BUILD_DIR" 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 2>&1 | tee -a "$MLOG"; then
|
||||
if ! sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
echo "${ERROR} Installation failed. See log: $MLOG" | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -68,25 +68,29 @@ 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
|
||||
if [ -d "rofi-$rofi_tag" ]; then
|
||||
rm -rf "rofi-$rofi_tag"
|
||||
# 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"
|
||||
fi
|
||||
|
||||
# cloning rofi-wayland
|
||||
printf "${NOTE} Downloading ${YELLOW}rofi-wayland $rofi_tag${RESET} from releases...\n"
|
||||
wget $release_url
|
||||
wget -O "$TAR_PATH" $release_url
|
||||
|
||||
if [ -f "rofi-$rofi_tag.tar.gz" ]; then
|
||||
if [ -f "$TAR_PATH" ]; then
|
||||
printf "${OK} ${YELLOW}rofi-wayland $rofi_tag${RESET} downloaded successfully.\n" 2>&1 | tee -a "$LOG"
|
||||
tar xf rofi-$rofi_tag.tar.gz
|
||||
tar -C "$SRC_ROOT" -xf "$TAR_PATH"
|
||||
fi
|
||||
|
||||
cd rofi-$rofi_tag || exit 1
|
||||
cd "$SRC_DIR" || exit 1
|
||||
|
||||
# Proceed with the installation steps
|
||||
if meson setup build && ninja -C build ; then
|
||||
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
||||
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
|
||||
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"
|
||||
@ -96,10 +100,10 @@ else
|
||||
fi
|
||||
|
||||
# Move logs to Install-Logs directory
|
||||
mv "$MLOG" ../Install-Logs/ || true
|
||||
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
|
||||
cd .. || exit 1
|
||||
|
||||
# clean up
|
||||
rm -rf rofi-$rofi_tag.tar.gz
|
||||
rm -rf "$TAR_PATH"
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -38,11 +38,13 @@ 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"
|
||||
|
||||
if git clone "$git_url" "$project_name"; then
|
||||
cd "$project_name" || exit 1
|
||||
rm -rf "$src_dir"
|
||||
if git clone "$git_url" "$src_dir"; then
|
||||
cd "$src_dir" || exit 1
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 2>&1 | tee -a "$LOG"
|
||||
source "$HOME/.cargo/env"
|
||||
make
|
||||
@ -58,7 +60,7 @@ install_and_log() {
|
||||
fi
|
||||
|
||||
#moving logs into main install-logs
|
||||
mv $LOG ../Install-Logs/ || true
|
||||
mv $LOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd - || exit 1
|
||||
else
|
||||
echo -e "${ERROR} Cloning $project_name from $git_url failed."
|
||||
|
||||
@ -31,15 +31,16 @@ 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 the current directory and remove if it does
|
||||
if [ -d "$theme_name" ]; then
|
||||
rm -rf "$theme_name"
|
||||
# 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"
|
||||
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" "$theme_name"; then
|
||||
if [ ! -d "$theme_name" ]; then
|
||||
if git clone --depth=1 "$source_theme" "$SRC_DIR"; then
|
||||
if [ ! -d "$SRC_DIR" ]; then
|
||||
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
@ -50,7 +51,7 @@ if git clone --depth=1 "$source_theme" "$theme_name"; then
|
||||
fi
|
||||
|
||||
# Move cloned theme to the themes directory
|
||||
sudo mv "$theme_name" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
|
||||
sudo mv "$SRC_DIR" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
|
||||
|
||||
# setting up SDDM theme
|
||||
sddm_conf="/etc/sddm.conf"
|
||||
|
||||
@ -49,13 +49,14 @@ done
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
# Check if swww directory exists
|
||||
if [ -d "swww" ]; then
|
||||
cd swww || exit 1
|
||||
# Check if swww directory exists (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/swww"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
cd "$SRC_DIR" || 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; then
|
||||
cd swww || exit 1
|
||||
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git "$SRC_DIR"; then
|
||||
cd "$SRC_DIR" || exit 1
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}swww $swww_tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
exit 1
|
||||
@ -94,7 +95,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" ../Install-Logs/ || true
|
||||
mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
|
||||
cd - || exit 1
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -39,17 +39,18 @@ 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
|
||||
if [ -d "wayland-protocols" ]; then
|
||||
rm -rf "wayland-protocols"
|
||||
# Clean previous clone (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/wayland-protocols"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
rm -rf "$SRC_DIR"
|
||||
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" wayland-protocols; then
|
||||
cd wayland-protocols || exit 1
|
||||
if git clone --depth=1 --filter=blob:none "$repo_url" "$SRC_DIR"; then
|
||||
cd "$SRC_DIR" || 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
|
||||
@ -67,10 +68,12 @@ if git clone --depth=1 --filter=blob:none "$repo_url" wayland-protocols; then
|
||||
exit 1
|
||||
fi
|
||||
# Install to /usr/local so pkg-config can prefer it over distro /usr
|
||||
meson setup build --prefix=/usr/local
|
||||
meson compile -C build -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
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)"
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo meson install -C "$BUILD_DIR" 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"
|
||||
@ -79,7 +82,7 @@ if git clone --depth=1 --filter=blob:none "$repo_url" wayland-protocols; 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" ../Install-Logs/ || true
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}wayland-protocols $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -48,23 +48,26 @@ 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
|
||||
if [ -d "xdg-desktop-portal-hyprland" ]; then
|
||||
# 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
|
||||
printf "${NOTE} Removing existing xdg-desktop-portal-hyprland folder...\n"
|
||||
rm -rf "xdg-desktop-portal-hyprland" 2>&1 | tee -a "$LOG"
|
||||
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
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
|
||||
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
|
||||
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" ../Install-Logs/ || true
|
||||
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -40,25 +40,28 @@ for PKG1 in "${xkbcommon[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if xkbcommon folder exists and remove it
|
||||
if [ -d "libxkbcommon" ]; then
|
||||
# Check if xkbcommon folder exists and remove it (under build/src)
|
||||
SRC_DIR="$SRC_ROOT/libxkbcommon"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
printf "${NOTE} Removing existing libxkbcommon folder...\n"
|
||||
rm -rf "libxkbcommon"
|
||||
rm -rf "$SRC_DIR"
|
||||
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
|
||||
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
|
||||
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
|
||||
mv $MLOG "$PARENT_DIR/Install-Logs/" || true
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for xkbcommon." 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -20,11 +20,12 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"
|
||||
|
||||
printf "${INFO} Installing ${SKY_BLUE}Pokemon color scripts${RESET} ..."
|
||||
|
||||
if [ -d "pokemon-colorscripts" ]; then
|
||||
cd pokemon-colorscripts && git pull && sudo ./install.sh && cd ..
|
||||
SRC_DIR="$SRC_ROOT/pokemon-colorscripts"
|
||||
if [ -d "$SRC_DIR" ]; then
|
||||
cd "$SRC_DIR" && git pull && sudo ./install.sh && cd ..
|
||||
else
|
||||
git clone --depth=1 https://gitlab.com/phoneybadger/pokemon-colorscripts.git &&
|
||||
cd pokemon-colorscripts && sudo ./install.sh && cd ..
|
||||
git clone --depth=1 https://gitlab.com/phoneybadger/pokemon-colorscripts.git "$SRC_DIR" &&
|
||||
cd "$SRC_DIR" && sudo ./install.sh && cd ..
|
||||
fi
|
||||
|
||||
# Check if ~/.zshrc exists
|
||||
|
||||
@ -53,7 +53,7 @@ done
|
||||
if [[ ! -f "$TAGS_FILE" ]]; then
|
||||
cat > "$TAGS_FILE" <<'EOF'
|
||||
# Default Hyprland stack versions
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
@ -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.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user