Compare commits

..

7 Commits

Author SHA1 Message Date
Donald Williams
97decb81ce
Merge branch 'main' into development 2026-01-23 20:40:12 -05:00
Don Williams
9f18774008 Updated CHANGELOG with build dir change and fixes
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOG.md
2026-01-23 20:35:11 -05:00
Don Williams
b7e405a300 Updated docs for new build dir layout and how to clean up after
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   Debian-Hyprland-Install-Upgrade.es.md
	modified:   Debian-Hyprland-Install-Upgrade.md
2026-01-23 20:29:58 -05:00
Don Williams
6b66e62fd0 Fixed build error with hyprtoolkit 2026-01-23 19:38:08 -05:00
Don Williams
29e8044170 Moved source and builds to build dir
Cleanup is now just removing the build directory and install-logs

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/Global_functions.sh
	modified:   install-scripts/ags.sh
	modified:   install-scripts/aquamarine.sh
	modified:   install-scripts/dotfiles-branch.sh
	modified:   install-scripts/gtk_themes.sh
	modified:   install-scripts/hyprcursor.sh
	modified:   install-scripts/hyprgraphics.sh
	modified:   install-scripts/hypridle.sh
	modified:   install-scripts/hyprland-guiutils.sh
	modified:   install-scripts/hyprland-protocols.sh
	modified:   install-scripts/hyprland-qt-support.sh
	modified:   install-scripts/hyprland.sh
	modified:   install-scripts/hyprlang.sh
	modified:   install-scripts/hyprlock.sh
	modified:   install-scripts/hyprpolkitagent.sh
	modified:   install-scripts/hyprtoolkit.sh
	modified:   install-scripts/hyprutils.sh
	modified:   install-scripts/hyprwayland-scanner.sh
	modified:   install-scripts/hyprwire.sh
	modified:   install-scripts/quickshell.sh
	modified:   install-scripts/rofi-wayland.sh
	modified:   install-scripts/rog.sh
	modified:   install-scripts/sddm_theme.sh
	modified:   install-scripts/swww.sh
	modified:   install-scripts/wayland-protocols-src.sh
	modified:   install-scripts/xdph.sh
	modified:   install-scripts/xkbcommon.sh
	modified:   install-scripts/zsh_pokemon.sh
2026-01-23 19:18:26 -05:00
Don Williams
48e4f067d9 Fixed ver mismatch in FF Pinned stable to 53.2 create build dir
Now the code will compile in build directory vs. base directory
Easier to clean up

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOG.md
	modified:   Debian-Hyprland-Install-Upgrade.es.md
	modified:   Debian-Hyprland-Install-Upgrade.md
	modified:   README.md
	modified:   hypr-tags.env
	modified:   install-scripts/Global_functions.sh
	modified:   install-scripts/ags.sh
	modified:   install-scripts/aquamarine.sh
	modified:   install-scripts/hyprcursor.sh
	modified:   install-scripts/hyprgraphics.sh
	modified:   install-scripts/hypridle.sh
	modified:   install-scripts/hyprland-guiutils.sh
	modified:   install-scripts/hyprland-protocols.sh
	modified:   install-scripts/hyprland-qt-support.sh
	modified:   install-scripts/hyprland.sh
	modified:   install-scripts/hyprlang.sh
	modified:   install-scripts/hyprlock.sh
	modified:   install-scripts/hyprpolkitagent.sh
	modified:   install-scripts/hyprtoolkit.sh
	modified:   install-scripts/hyprutils.sh
	modified:   install-scripts/hyprwayland-scanner.sh
	modified:   install-scripts/hyprwire.sh
	modified:   install-scripts/quickshell.sh
	modified:   install-scripts/rofi-wayland.sh
	modified:   install-scripts/wayland-protocols-src.sh
	modified:   install-scripts/xdph.sh
	modified:   install-scripts/xkbcommon.sh
	modified:   refresh-hypr-tags.sh
	modified:   update-hyprland.sh
2026-01-23 16:39:49 -05:00
Donald Williams
6d8fe7f359
Development to main merge (#234)
* Testing build from debian packages

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   BUILD_METHOD_OPTIONS.md
	new file:   CHANGES_SUMMARY.md
	new file:   GIT_STATUS.md
	new file:   INSTALL_METHOD_GUIDE.md
	new file:   QUICK_START.txt
	modified:   install.sh

* Fix package installation: skip plugins and debug symbols by default, improve dependency handling

* Add comprehensive troubleshooting guide for package installation issues

* Fix package installation path handling: use full paths instead of cd to preserve working directory

* Removed files related to debian pacakge building

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	deleted:    BUILD_METHOD_OPTIONS.md
	deleted:    GIT_STATUS.md
	deleted:    INSTALL_METHOD_GUIDE.md
	deleted:    PACKAGE_INSTALL_TROUBLESHOOTING.md
	deleted:    QUICK_START.txt

* Ported ubuntu quickshell install script to debian

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   install-scripts/quickshell.sh

* Forgot to add quickshell as install option

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install.sh

* Added missing depdendencies to debian quickshell

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/quickshell.sh

* Fixing QML import pathing

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/quickshell.sh

* Adding shim for missing QML properies

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/quickshell.sh

* Added check for debian trixie in quickshell install

 Trixe doesn't support overview seems like the QT libs are too old

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/quickshell.sh

* Fixed typo in script

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   refresh-hypr-tags.sh

* libmuparser-dev is now needed

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/00-dependencies.sh
	modified:   install-scripts/hyprland.sh

* Adding hyprwire depdency

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hypr-tags.env
	new file:   install-scripts/hyprwire.sh
	modified:   install.sh
	modified:   refresh-hypr-tags.sh
	modified:   update-hyprland.sh

* Updating hyprwire build order

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/hyprland.sh

* Fixing script permissions

* fixing hyprwire build error

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprwire.sh

* Still fixing hyprwire build errors

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprwire.sh

* Fixing SED error.  (I Hate sed)

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprwire.sh

* Still getting append errors trying another fix

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprwire.sh

* Updated tags for 0.53.0

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   ../hypr-tags.env
	modified:   hyprland.sh

* Fixing build error on hyprland

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprland.sh

* Still getting build errors with hyprland

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/hyprland.sh

* More build errors to fix

 On branch development
 Your branch is ahead of 'origin/development' by 1 commit.
   (use "git push" to publish your local commits)

 Changes to be committed:
	modified:   install-scripts/hyprland.sh

* Fixind SED error

* Hyprland tag set to 52.2

* Scripts has hardcoded versions vs. pulling hypr-env

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/aquamarine.sh
	modified:   install-scripts/hyprcursor.sh
	modified:   install-scripts/hyprgraphics.sh
	modified:   install-scripts/hyprland-guiutils.sh
	modified:   install-scripts/hyprland-protocols.sh
	modified:   install-scripts/hyprland-qt-support.sh
	modified:   install-scripts/hyprland.sh
	modified:   install-scripts/hyprlang.sh
	modified:   install-scripts/hyprtoolkit.sh
	modified:   install-scripts/hyprutils.sh
	modified:   install-scripts/hyprwayland-scanner.sh
	modified:   install-scripts/hyprwire.sh
	modified:   install-scripts/wayland-protocols-src.sh

* Fixing update-hyprland to support tags

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/hyprutils.sh
	modified:   update-hyprland.sh

* Fixing update-hyprland (again) to use env-tags

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   update-hyprland.sh

* Fixing update-hyprland

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   update-hyprland.sh

* Trying to get trixie to build

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/hyprland.sh

* Updated README re: NVIDIA drivers & HL 0.52.2+ on Trixie

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   README.md

* UPD: Before ubunmtu was out-of-date, now can run HL dots

previsously ubuntu was older HL. Now it's up to date and can
also run current dotfiles. Removed old statement saying ubuntu could not
run current dotfiles.

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   README.md

* Pinned version to 52.2 for debian stable support

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOGS.md
	deleted:    CHANGES_SUMMARY.md
	modified:   Debian-Hyprland-Install-Upgrade.es.md
	modified:   Debian-Hyprland-Install-Upgrade.md
	modified:   hypr-tags.env
	new file:   hypr-tags.env-v.053
	modified:   update-hyprland.sh

* Fixed update-hyprland refresh-hypr-tags --force-override

It now assumes --fetch-latest
Small formatting fixes
Now shows version to upgrade too and pause to allow review

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOGS.md
	modified:   Debian-Hyprland-Install-Upgrade.es.md
    modified:   Debian-Hyprland-Install-Upgrade.md
	modified:   dry-run-build.sh
	modified:   refresh-hypr-tags.sh
	modified:   update-hyprland.sh

* Fixing build scrpt to work onm debian stable

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/hyprland-guiutils.sh

* Added selectable shim for hyprwire to allow building on trixie

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprwire.sh

* Fixed hyprland 0.53 build for trixie found bug in xdph script

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hyprland.sh
	modified:   xdph.sh
	modified:   ../install.sh
	modified:   ../update-hyprland.sh

* Major Update Debian trixie 0.53.1 support new build flags

 Trixie needs small patches to build vs. testing+
 Script now detects that. But some debian based distros might mask name
 There is a flag `--force-trixie` to include the fixes

 Updated the Install-Upgrade documents with the specifics

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOGS.md
	modified:   Debian-Hyprland-Install-Upgrade.es.md
	modified:   Debian-Hyprland-Install-Upgrade.md
	modified:   README.md
	modified:   hypr-tags.env
	deleted:    hypr-tags.env-v.053
	modified:   install.sh
	modified:   refresh-hypr-tags.sh
	modified:   update-hyprland.sh

* Updated CHANGELOG with note about debian stable support

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	renamed:    CHANGELOGS.md -> CHANGELOG.md

* Sync README/CHANGELOG with main

* Updated CHANGELOG and README re: debian trixie upgrades to Forky+

You must recompile Hyprland
`update-hyprland --install --with-deps`
Otherwise hyprland won't start
You will be returned to the login manager

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOG.md
	modified:   README.md
2026-01-21 13:17:57 -05:00
35 changed files with 386 additions and 248 deletions

View File

@ -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

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.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

View File

@ -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

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.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!

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

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="$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

View File

@ -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}

View File

@ -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."

View File

@ -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"

View File

@ -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}

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

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.1
HYPRLAND_TAG=v0.53.2
AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.11.0
HYPRLANG_TAG=v0.6.8