mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 02:10:13 +01:00
feat: Hyprland 0.51.x upgrade tooling, central tags, docs update
Introduce focused Hyprland stack upgrade tooling and improve install
ordering for 0.51.x, with centralized version management and detailed
documentation for upgrading from 0.49/0.50.x to 0.51.1.
New scripts and modules
- update-hyprland.sh: Manage the Hyprland stack with:
- --install / --dry-run build modes
- --only and --skip for selective components
- --with-deps to (re)install build deps
- --set {KEY=TAG} and --restore tag backup support
- --fetch-latest to pull latest GitHub release tags
- --via-helper to delegate summary-only dry-runs
- dry-run-build.sh: Compile-only helper with summary output
- install-scripts/wayland-protocols-src.sh: Build wayland-protocols from
source (>= 1.45) to satisfy Hyprland 0.51.x requirements
Core features
- Centralized tag management via hypr-tags.env; tags exported to all
modules. Environment overrides remain first priority.
- Automatic dependency ordering for Hyprland 0.51.x:
wayland-protocols-src → hyprland-protocols → hyprutils → hyprlang →
aquamarine → hyprland
- Optional auto-fetch of latest tags on install runs that include
hyprland (can be disabled via --no-fetch)
- Selective updates for targeted components and skip lists
- Dry-run mode to validate builds without installing
Installer integration
- install.sh reads hypr-tags.env and optionally refreshes tags.
- Ensures wayland-protocols-src is built before Hyprland.
- Maintains robust sequencing for the Hyprland stack.
Docs
- Debian-Hyprland-Install-Upgrade.md and .es.md:
- Add explicit section: Upgrade 0.49/0.50.x → 0.51.1
- Recommend: `./update-hyprland.sh --install --only hyprland`
- Provide optional `--with-deps` and `--dry-run` flows
- Add quick link anchor under Upgrade Workflows
- Clarify that full install via install.sh is not required for this
upgrade unless optional modules need refresh or recovering from a
partial/failed setup
Usage highlights
- Pin and upgrade to 0.51.1:
./update-hyprland.sh --set HYPRLAND=v0.51.1
./update-hyprland.sh --install --only hyprland
- Optional:
./update-hyprland.sh --with-deps --install --only hyprland
./update-hyprland.sh --dry-run --only hyprland
Notes
- Target OS remains Debian Trixie/SID; run as sudo-capable user (not
root); ensure deb-src entries are enabled.
This commit is contained in:
parent
5a156b1b91
commit
d298480443
@ -110,6 +110,8 @@ Ahora, este método automáticamente:
|
||||
|
||||
## Flujos de Actualización
|
||||
|
||||
Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x--0511)
|
||||
|
||||
### Actualizar a la Última Versión de Hyprland
|
||||
|
||||
#### Opción A: Descubrimiento Automático
|
||||
@ -152,6 +154,31 @@ Ahora, este método automáticamente:
|
||||
./update-hyprland.sh --install --only hyprland,aquamarine
|
||||
```
|
||||
|
||||
### Actualización: 0.49/0.50.x ➜ 0.51.1
|
||||
|
||||
Si actualmente estás en Hyprland 0.49 o 0.50.x, puedes actualizar directamente a 0.51.1 sin una reinstalación completa.
|
||||
|
||||
Ruta recomendada:
|
||||
```bash
|
||||
# Asegura que hypr-tags.env apunte a la versión objetivo (omitir si ya es v0.51.1)
|
||||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||
|
||||
# Actualiza Hyprland (los prerrequisitos se incluyen y ordenan automáticamente)
|
||||
./update-hyprland.sh --install --only hyprland
|
||||
```
|
||||
|
||||
Notas:
|
||||
- El comando garantiza y ejecuta, según sea necesario: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine y luego hyprland.
|
||||
- No es necesario usar install.sh para esta actualización, a menos que también quieras instalar/actualizar módulos opcionales (p. ej., SDDM, Bluetooth, Thunar, AGS, dotfiles) o estés recuperándote de una instalación fallida/parcial.
|
||||
- Opcional: agrega --with-deps para reinstalar dependencias primero:
|
||||
```bash
|
||||
./update-hyprland.sh --with-deps --install --only hyprland
|
||||
```
|
||||
- Puedes hacer un dry-run primero para validar:
|
||||
```bash
|
||||
./update-hyprland.sh --dry-run --only hyprland
|
||||
```
|
||||
|
||||
## Pruebas con Dry-Run
|
||||
|
||||
### ¿Por qué usar Dry-Run?
|
||||
|
||||
@ -110,6 +110,8 @@ This method now automatically:
|
||||
|
||||
## Upgrade Workflows
|
||||
|
||||
Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
||||
|
||||
### Upgrading to Latest Hyprland Release
|
||||
|
||||
#### Option A: Automatic Discovery
|
||||
@ -152,6 +154,31 @@ This method now automatically:
|
||||
./update-hyprland.sh --install --only hyprland,aquamarine
|
||||
```
|
||||
|
||||
### Upgrade: 0.49/0.50.x ➜ 0.51.1
|
||||
|
||||
If you’re currently on Hyprland 0.49 or 0.50.x, you can upgrade directly to 0.51.1 without a full reinstall.
|
||||
|
||||
Recommended path:
|
||||
```bash
|
||||
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
|
||||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||
|
||||
# Upgrade Hyprland (prerequisites are auto-included and ordered)
|
||||
./update-hyprland.sh --install --only hyprland
|
||||
```
|
||||
|
||||
Notes:
|
||||
- The command will automatically ensure and run, as needed: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, then hyprland.
|
||||
- Full install via install.sh is not required for this upgrade unless you also want to install/refresh optional modules (e.g., SDDM, Bluetooth, Thunar, AGS, dotfiles) or you’re recovering from a failed/partial setup.
|
||||
- Optional: add --with-deps to re-run dependency installation first:
|
||||
```bash
|
||||
./update-hyprland.sh --with-deps --install --only hyprland
|
||||
```
|
||||
- You can dry-run first to validate:
|
||||
```bash
|
||||
./update-hyprland.sh --dry-run --only hyprland
|
||||
```
|
||||
|
||||
## Dry-Run Testing
|
||||
|
||||
### Why Use Dry-Run?
|
||||
|
||||
@ -3,7 +3,8 @@
|
||||
# Hyprland-Dots to download a specific release #
|
||||
|
||||
# Define the specific release version to download
|
||||
specific_version="v2.3.3-Deb-Untu-Hyprland-0.41.2"
|
||||
specific_version="v2.3.16"
|
||||
#specific_version="v2.3.3-Deb-Untu-Hyprland-0.41.2"
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
|
||||
|
||||
19
install.sh
19
install.sh
@ -22,13 +22,13 @@ RESET="$(tput sgr0)"
|
||||
# Function to print colorful text
|
||||
print_color() {
|
||||
printf "%b%s%b\n" "$1" "$2" "$RESET"
|
||||
}
|
||||
l
|
||||
|
||||
# Warning: End of Life Support
|
||||
printf "\n%.0s" {1..2}
|
||||
print_color $YELLOW "
|
||||
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
|
||||
KooL's Debian - Hyprland July 2025 Update
|
||||
KooL's Debian - Hyprland October 2025 Update
|
||||
|
||||
Most Hyprland packages are built from Source
|
||||
|
||||
@ -40,9 +40,11 @@ print_color $YELLOW "
|
||||
However, do note that it is downloaded from each individual releases. You can set versions by editing the scripts
|
||||
located install-scripts directory.
|
||||
|
||||
These packages are NOT updated automatically. You need to manually update it yourself
|
||||
These packages are NOT updated automatically.
|
||||
|
||||
BE WARNED!!!!! Installation may take longer!!
|
||||
See the HOWTO documentation on how to get next release of Hyprland installed
|
||||
|
||||
BE WARNED!!!!! Installation will take longer!!
|
||||
|
||||
|
||||
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
|
||||
@ -52,9 +54,6 @@ print_color $YELLOW "
|
||||
|
||||
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
|
||||
|
||||
Debian is not my main Distro. As stated above, Most Hyprland and dependencies as built from release.
|
||||
|
||||
I cannot monitor the updates or changes. If there are new versions, please submit an Merge Request for any updates.
|
||||
|
||||
Thank you!
|
||||
"
|
||||
@ -120,10 +119,10 @@ echo -e "\e[35m
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Welcome message using whiptail (for displaying information)
|
||||
whiptail --title "KooL Debian-Hyprland Trixie-SID (2025) Install Script" \
|
||||
--msgbox "Welcome to KooL Debian-Hyprland Trixie-SID (2025) Install Script!!!\n\n\
|
||||
whiptail --title "KooL Debian-Hyprland Trixie+ (2025) Install Script" \
|
||||
--msgbox "Welcome to KooL Debian-Hyprland Trixie+ (2025) Install Script!!!\n\n\
|
||||
ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\n\
|
||||
NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland may NOT start!" \
|
||||
NOTE: If you are installing on a VM, ensure to enable 3D acceleration otherwise Hyprland may NOT start!" \
|
||||
15 80
|
||||
|
||||
# Ask if the user wants to proceed
|
||||
|
||||
@ -231,7 +231,10 @@ export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG H
|
||||
for m in "${modules[@]}"; do
|
||||
local skip_it=0
|
||||
for s in "${_skips[@]}"; do
|
||||
[[ "$m" == "$s" ]] && { skip_it=1; break; }
|
||||
[[ "$m" == "$s" ]] && {
|
||||
skip_it=1
|
||||
break
|
||||
}
|
||||
done
|
||||
[[ $skip_it -eq 0 ]] && filtered+=("$m")
|
||||
done
|
||||
@ -276,50 +279,96 @@ export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG H
|
||||
local inserted_wp=0 inserted_hlprot=0 inserted_utils=0 inserted_lang=0 inserted_aqua=0
|
||||
for m in "${modules[@]}"; do
|
||||
if [[ "$m" == "wayland-protocols-src" ]]; then
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
elif [[ "$m" == "hyprland-protocols" ]]; then
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then
|
||||
# ensure wayland-protocols-src before hyprland-protocols
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
tmp+=("hyprland-protocols"); inserted_hlprot=1
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
tmp+=("hyprland-protocols")
|
||||
inserted_hlprot=1
|
||||
fi
|
||||
elif [[ "$m" == "hyprutils" ]]; then
|
||||
if [[ $inserted_utils -eq 0 ]]; then
|
||||
# ensure protocols before utils
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then tmp+=("hyprland-protocols"); inserted_hlprot=1; fi
|
||||
tmp+=("hyprutils"); inserted_utils=1
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then
|
||||
tmp+=("hyprland-protocols")
|
||||
inserted_hlprot=1
|
||||
fi
|
||||
tmp+=("hyprutils")
|
||||
inserted_utils=1
|
||||
fi
|
||||
elif [[ "$m" == "hyprlang" ]]; then
|
||||
if [[ $inserted_lang -eq 0 ]]; then
|
||||
# ensure utils before lang
|
||||
if [[ $inserted_utils -eq 0 ]]; then
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then tmp+=("hyprland-protocols"); inserted_hlprot=1; fi
|
||||
tmp+=("hyprutils"); inserted_utils=1
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
tmp+=("hyprlang"); inserted_lang=1
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then
|
||||
tmp+=("hyprland-protocols")
|
||||
inserted_hlprot=1
|
||||
fi
|
||||
tmp+=("hyprutils")
|
||||
inserted_utils=1
|
||||
fi
|
||||
tmp+=("hyprlang")
|
||||
inserted_lang=1
|
||||
fi
|
||||
elif [[ "$m" == "aquamarine" ]]; then
|
||||
if [[ $inserted_aqua -eq 0 ]]; then
|
||||
# ensure lang before aquamarine
|
||||
if [[ $inserted_lang -eq 0 ]]; then
|
||||
if [[ $inserted_utils -eq 0 ]]; then
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then tmp+=("hyprland-protocols"); inserted_hlprot=1; fi
|
||||
tmp+=("hyprutils"); inserted_utils=1
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
tmp+=("hyprlang"); inserted_lang=1
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then
|
||||
tmp+=("hyprland-protocols")
|
||||
inserted_hlprot=1
|
||||
fi
|
||||
tmp+=("aquamarine"); inserted_aqua=1
|
||||
tmp+=("hyprutils")
|
||||
inserted_utils=1
|
||||
fi
|
||||
tmp+=("hyprlang")
|
||||
inserted_lang=1
|
||||
fi
|
||||
tmp+=("aquamarine")
|
||||
inserted_aqua=1
|
||||
fi
|
||||
elif [[ "$m" == "hyprland" ]]; then
|
||||
# ensure all prerequisites already present
|
||||
if [[ $inserted_wp -eq 0 ]]; then tmp+=("wayland-protocols-src"); inserted_wp=1; fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then tmp+=("hyprland-protocols"); inserted_hlprot=1; fi
|
||||
if [[ $inserted_utils -eq 0 ]]; then tmp+=("hyprutils"); inserted_utils=1; fi
|
||||
if [[ $inserted_lang -eq 0 ]]; then tmp+=("hyprlang"); inserted_lang=1; fi
|
||||
if [[ $inserted_aqua -eq 0 ]]; then tmp+=("aquamarine"); inserted_aqua=1; fi
|
||||
if [[ $inserted_wp -eq 0 ]]; then
|
||||
tmp+=("wayland-protocols-src")
|
||||
inserted_wp=1
|
||||
fi
|
||||
if [[ $inserted_hlprot -eq 0 ]]; then
|
||||
tmp+=("hyprland-protocols")
|
||||
inserted_hlprot=1
|
||||
fi
|
||||
if [[ $inserted_utils -eq 0 ]]; then
|
||||
tmp+=("hyprutils")
|
||||
inserted_utils=1
|
||||
fi
|
||||
if [[ $inserted_lang -eq 0 ]]; then
|
||||
tmp+=("hyprlang")
|
||||
inserted_lang=1
|
||||
fi
|
||||
if [[ $inserted_aqua -eq 0 ]]; then
|
||||
tmp+=("aquamarine")
|
||||
inserted_aqua=1
|
||||
fi
|
||||
tmp+=("hyprland")
|
||||
else
|
||||
tmp+=("$m")
|
||||
@ -334,7 +383,11 @@ export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG H
|
||||
for mod in "${modules[@]}"; do
|
||||
local script="$REPO_ROOT/install-scripts/$mod.sh"
|
||||
echo "\n=== $mod ===" | tee -a "$SUMMARY_LOG"
|
||||
[[ -f "$script" ]] || { echo "[WARN] Missing $script" | tee -a "$SUMMARY_LOG"; results[$mod]="MISSING"; continue; }
|
||||
[[ -f "$script" ]] || {
|
||||
echo "[WARN] Missing $script" | tee -a "$SUMMARY_LOG"
|
||||
results[$mod]="MISSING"
|
||||
continue
|
||||
}
|
||||
chmod +x "$script" || true
|
||||
if [[ $DO_DRY_RUN -eq 1 ]]; then
|
||||
if DRY_RUN=1 "$script"; then results[$mod]="PASS"; else results[$mod]="FAIL"; fi
|
||||
@ -362,16 +415,46 @@ export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG H
|
||||
# Parse args
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-h|--help) usage; exit 0 ;;
|
||||
--with-deps) WITH_DEPS=1; shift ;;
|
||||
--dry-run) DO_DRY_RUN=1; shift ;;
|
||||
--install) DO_INSTALL=1; shift ;;
|
||||
--fetch-latest) FETCH_LATEST=1; shift ;;
|
||||
--restore) RESTORE=1; shift ;;
|
||||
--via-helper) VIA_HELPER=1; shift ;;
|
||||
--no-fetch) NO_FETCH=1; shift ;;
|
||||
--only) ONLY_LIST=${2:-}; shift 2 ;;
|
||||
--skip) SKIP_LIST=${2:-}; shift 2 ;;
|
||||
-h | --help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
--with-deps)
|
||||
WITH_DEPS=1
|
||||
shift
|
||||
;;
|
||||
--dry-run)
|
||||
DO_DRY_RUN=1
|
||||
shift
|
||||
;;
|
||||
--install)
|
||||
DO_INSTALL=1
|
||||
shift
|
||||
;;
|
||||
--fetch-latest)
|
||||
FETCH_LATEST=1
|
||||
shift
|
||||
;;
|
||||
--restore)
|
||||
RESTORE=1
|
||||
shift
|
||||
;;
|
||||
--via-helper)
|
||||
VIA_HELPER=1
|
||||
shift
|
||||
;;
|
||||
--no-fetch)
|
||||
NO_FETCH=1
|
||||
shift
|
||||
;;
|
||||
--only)
|
||||
ONLY_LIST=${2:-}
|
||||
shift 2
|
||||
;;
|
||||
--skip)
|
||||
SKIP_LIST=${2:-}
|
||||
shift 2
|
||||
;;
|
||||
--set)
|
||||
shift
|
||||
while [[ $# -gt 0 && "$1" != --* ]]; do
|
||||
@ -379,7 +462,10 @@ while [[ $# -gt 0 ]]; do
|
||||
shift
|
||||
done
|
||||
;;
|
||||
*) echo "Unknown argument: $1"; exit 2 ;;
|
||||
*)
|
||||
echo "Unknown argument: $1"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user