From 030198fb6ee8e419af2d8ef6167ab3b9a1c3d0fa Mon Sep 17 00:00:00 2001 From: Donald Williams <129223418+dwilliam62@users.noreply.github.com> Date: Fri, 2 Jan 2026 21:43:33 -0500 Subject: [PATCH 1/6] Small fix to refresh-tags, update-hyprland scripts (#232) * 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 --- CHANGELOGS.md | 2 ++ dry-run-build.sh | 9 +++++++-- refresh-hypr-tags.sh | 21 ++++++++++++++++++++- update-hyprland.sh | 39 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/CHANGELOGS.md b/CHANGELOGS.md index e24600e..d0313e1 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -9,6 +9,8 @@ - This is only for debian testing+ versions - `update-hyprland.sh` added `-/--help` - documentation for updating hyprland +- Added: version update to `refresh-tags` and `update-hyprland` script +- Fixed: `--force-update` implies `--fetch-latest` ## 10 December 2025 diff --git a/dry-run-build.sh b/dry-run-build.sh index 988202d..2930d1b 100755 --- a/dry-run-build.sh +++ b/dry-run-build.sh @@ -134,11 +134,16 @@ done # Summary { - echo "\nSummary (dry-run):" + printf "\nSummary (dry-run):\n" for mod in "${MODULES[@]}"; do printf "%-24s %s\n" "$mod" "${RESULTS[$mod]:-SKIPPED}" done - echo "\nLogs: individual module logs are under Install-Logs/. This summary: $SUMMARY_LOG" + # Show current tag values to make changes visible during dry-runs + if [[ -f "$REPO_ROOT/hypr-tags.env" ]]; then + printf "\nCurrent versions (from %s):\n" "$REPO_ROOT/hypr-tags.env" + grep -E '^[A-Z0-9_]+=' "$REPO_ROOT/hypr-tags.env" | sort + fi + printf "\nLogs: individual module logs are under Install-Logs/. This summary: %s\n" "$SUMMARY_LOG" } | tee -a "$SUMMARY_LOG" # Exit non-zero if any FAIL occurred diff --git a/refresh-hypr-tags.sh b/refresh-hypr-tags.sh index e669de2..9019cb7 100755 --- a/refresh-hypr-tags.sh +++ b/refresh-hypr-tags.sh @@ -60,6 +60,7 @@ done < "$TAGS_FILE" # Fetch latest, but only update keys set to 'auto' or 'latest' unless forced FORCE=${FORCE:-0} +changes=() for key in "${!repos[@]}"; do repo="${repos[$key]}" url="https://api.github.com/repos/$repo/releases/latest" @@ -78,12 +79,30 @@ for key in "${!repos[@]}"; do existing="${cur[$key]:-}" if [[ $FORCE -eq 1 ]] || [[ "$existing" =~ ^(auto|latest)$ ]] || [[ -z "$existing" ]]; then cur[$key]="$tag" + if [[ "$existing" != "$tag" ]]; then + changes+=("$key: $existing -> $tag") + fi echo "[OK] $key := $tag" | tee -a "$SUMMARY_LOG" else echo "[SKIP] $key pinned ($existing), not overriding" | tee -a "$SUMMARY_LOG" fi done +# Show change summary and prompt before writing (interactive only) +if [[ -t 0 && ${#changes[@]} -gt 0 ]]; then + printf "\nPlanned tag updates (refresh-hypr-tags.sh):\n" | tee -a "$SUMMARY_LOG" + printf "%s\n" "${changes[@]}" | tee -a "$SUMMARY_LOG" + printf "\nProceed with writing updated tags to %s? [Y/n]: " "$TAGS_FILE" + read -r ans || true + ans=${ans:-Y} + case "$ans" in + [nN]|[nN][oO]) + echo "[INFO] User aborted tag update; leaving $TAGS_FILE unchanged." | tee -a "$SUMMARY_LOG" + exit 0 + ;; + esac +fi + # Write back { for k in "${!cur[@]}"; do @@ -91,4 +110,4 @@ done done | sort } > "$TAGS_FILE" -echo "[OK] Refreshed tags written to $TAGS_FILE" | tee -a "$SUMMARY_LOG" \ No newline at end of file +echo "[OK] Refreshed tags written to $TAGS_FILE" | tee -a "$SUMMARY_LOG" diff --git a/update-hyprland.sh b/update-hyprland.sh index c742510..51301a5 100755 --- a/update-hyprland.sh +++ b/update-hyprland.sh @@ -160,6 +160,8 @@ set_tags_from_args() { fetch_latest_tags() { ensure_tags_file backup_tags + CHANGES_FILE="$LOG_DIR/update-delta-$TS.log" + : >"$CHANGES_FILE" # Require curl; jq is preferred. Fallback to grep/sed if jq is missing. if ! command -v curl >/dev/null 2>&1; then @@ -217,6 +219,8 @@ fetch_latest_tags() { map[$k]="$v" done <"$TAGS_FILE" + # Build a list of changes (old -> new) according to override rules + changes=() for k in "${!tags[@]}"; do if [[ $FORCE_UPDATE -eq 1 ]]; then # Force override regardless of current value (matches FORCE=1 behavior in refresh-hypr-tags.sh) @@ -229,6 +233,27 @@ fetch_latest_tags() { fi done + # Interactive confirmation before writing, if we have a TTY + if [[ -t 0 && ${#changes[@]} -gt 0 ]]; then + printf "\nPlanned tag updates (update-hyprland.sh):\n" | tee -a "$SUMMARY_LOG" + printf "%s\n" "${changes[@]}" | tee -a "$SUMMARY_LOG" | tee -a "$CHANGES_FILE" + printf "\nProceed with writing updated tags to %s? [Y/n]: " "$TAGS_FILE" + read -r ans || true + ans=${ans:-Y} + case "$ans" in + [nN]|[nN][oO]) + echo "[INFO] User aborted tag update; leaving $TAGS_FILE unchanged." | tee -a "$SUMMARY_LOG" + # restore original copy + latest_bak=$(ls -1t "$TAGS_FILE".bak-* 2>/dev/null | head -n1 || true) + [[ -n "$latest_bak" ]] && cp "$latest_bak" "$TAGS_FILE" + return 0 + ;; + esac + else + # non-interactive: still record changes + printf "%s\n" "${changes[@]}" >>"$CHANGES_FILE" || true + fi + { for k in "${!map[@]}"; do echo "$k=${map[$k]}" @@ -479,11 +504,21 @@ run_stack() { done { - echo "\nSummary:" + printf "\nSummary:\n" for mod in "${modules[@]}"; do printf "%-24s %s\n" "$mod" "${results[$mod]:-SKIPPED}" done - echo "\nLogs under: $LOG_DIR. This run: $SUMMARY_LOG" + # Show updated versions (final tag values) + if [[ -f "$TAGS_FILE" ]]; then + printf "\nUpdated versions (from %s):\n" "$TAGS_FILE" + grep -E '^[A-Z0-9_]+=' "$TAGS_FILE" | sort + fi + # Include change list if present + if [[ -f "$LOG_DIR/update-delta-$TS.log" ]]; then + printf "\nChanges applied this run:\n" + cat "$LOG_DIR/update-delta-$TS.log" + fi + printf "\nLogs under: %s. This run: %s\n" "$LOG_DIR" "$SUMMARY_LOG" } | tee -a "$SUMMARY_LOG" # Non-zero on any FAILs From 2c8986ac5e8c3fd19d7d13b1123975f4a99015a0 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 11 Jan 2026 03:50:57 -0500 Subject: [PATCH 2/6] Upd README for Debian 13 and related updates, spelling, grammer fixes On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: README.md --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 63643ca..070bedd 100644 --- a/README.md +++ b/README.md @@ -70,10 +70,10 @@ #### ⚠️ Pre-requisites and VERY Important -- Do not run this installer as sudo or as root -- This Installer requires a user with a priviledge to install packages -- Needs a Debian 13 Trixie or greater. As it needs newer wayland packages! -- edit your `/etc/apt/sources.list` and **remove** `#` on lines with `deb-src` to enable source packaging else will not install properly especially Hyprland +- Do not run this installer with `sudo` or as `root` +- This Installer requires a user with a `sudo` privileges to install packages +- Debian 13 Trixie or greater. For the correct `GCC` compiler and libs +- Edit your `/etc/apt/sources.list` and **remove** `#` on lines with `deb-src` to enable source packaging else will not install properly especially Hyprland ```bash sudo nano /etc/apt/sources.list @@ -86,6 +86,16 @@ 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! + - This requires the just released `Debian-Hyprland v2.9.4` + - Debian 13 (Trixie, aka Stable)' + - Does now support v0.53.1 + - At this time is 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 0.53.1 without issue + ' - 10 October 2025 Update! - Hyprland-Debian nows builds 0.51.1 from source! - The installer now can be used to install newer releases later From 6ccabc5e194d4146e366fc7d09eb9977cab09140 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 11 Jan 2026 20:24:38 -0500 Subject: [PATCH 3/6] Added Spanish Translations On branch main Your branch is up to date with 'origin/main'. Changes to be committed: new file: CODE_OF_CONDUCT.es.md new file: COMMIT_MESSAGE_GUIDELINES.es.md new file: CONTRIBUTING.es.md --- CODE_OF_CONDUCT.es.md | 81 +++++++++++++++++ COMMIT_MESSAGE_GUIDELINES.es.md | 148 ++++++++++++++++++++++++++++++++ CONTRIBUTING.es.md | 58 +++++++++++++ 3 files changed, 287 insertions(+) create mode 100644 CODE_OF_CONDUCT.es.md create mode 100644 COMMIT_MESSAGE_GUIDELINES.es.md create mode 100644 CONTRIBUTING.es.md diff --git a/CODE_OF_CONDUCT.es.md b/CODE_OF_CONDUCT.es.md new file mode 100644 index 0000000..cb7b00f --- /dev/null +++ b/CODE_OF_CONDUCT.es.md @@ -0,0 +1,81 @@ +# Código de Conducta del Pacto del Colaborador + +[Ver versión en inglés](./CODE_OF_CONDUCT.md) + +## Nuestro compromiso + +Nosotros, como miembros, contribuyentes y líderes, nos comprometemos a hacer que la participación en nuestra comunidad sea una experiencia libre de acoso para todas las personas, sin distinción de edad, complexión, discapacidad visible o invisible, etnia, características sexuales, identidad y expresión de género, nivel de experiencia, educación, situación socioeconómica, nacionalidad, apariencia personal, raza, religión, orientación o identidad sexual. + +Nos comprometemos a actuar e interactuar de maneras que contribuyan a una comunidad abierta, acogedora, diversa, inclusiva y saludable. + +## Nuestros estándares + +Ejemplos de comportamiento que contribuye a un entorno positivo para nuestra comunidad incluyen: + +- Demostrar empatía y amabilidad hacia otras personas. +- Ser respetuoso con opiniones, puntos de vista y experiencias que difieran de las nuestras. +- Dar y aceptar con gracia retroalimentación constructiva. +- Asumir la responsabilidad y disculparse ante quienes se vean afectados por nuestros errores, y aprender de la experiencia. +- Centrarse en lo que es mejor no solo para nosotros como individuos, sino para la comunidad en su conjunto. + +Ejemplos de comportamiento inaceptable incluyen: + +- El uso de lenguaje o imágenes sexualizadas, y cualquier tipo de atención o insinuación sexual. +- Troleo, comentarios insultantes o despectivos, y ataques personales o políticos. +- Acoso público o privado. +- Publicación de información privada de otras personas, como direcciones físicas o de correo electrónico, sin su permiso explícito. +- Otra conducta que, razonablemente, pudiera considerarse inapropiada en un entorno profesional. + +## Responsabilidades de cumplimiento + +Los líderes de la comunidad son responsables de aclarar y hacer cumplir nuestros estándares de comportamiento aceptable y tomarán medidas correctivas apropiadas y justas en respuesta a cualquier comportamiento que consideren inapropiado, amenazante, ofensivo o dañino. + +Los líderes de la comunidad tienen el derecho y la responsabilidad de eliminar, editar o rechazar comentarios, confirmaciones de cambios (commits), código, ediciones del wiki, incidencias y otras contribuciones que no estén alineadas con este Código de Conducta, y comunicarán los motivos de las decisiones de moderación cuando corresponda. + +## Alcance + +Este Código de Conducta se aplica a todos los espacios de la comunidad y también cuando una persona representa oficialmente a la comunidad en espacios públicos. Ejemplos de representar a nuestra comunidad incluyen usar una dirección de correo electrónico oficial, publicar a través de una cuenta oficial en redes sociales o actuar como representante designado en un evento en línea o presencial. + +## Cumplimiento + +Los casos de comportamiento abusivo, acosador o de otra forma inaceptable pueden ser reportados a los líderes de la comunidad responsables del cumplimiento en mail[at]ml4w.com. Todas las quejas serán revisadas e investigadas de manera rápida y justa. + +Todos los líderes de la comunidad están obligados a respetar la privacidad y seguridad de quien reporte cualquier incidente. + +## Guías de aplicación + +Los líderes de la comunidad seguirán estas Guías de Impacto Comunitario para determinar las consecuencias por cualquier acción que consideren en violación de este Código de Conducta: + +### 1. Corrección + +Impacto comunitario: Uso de lenguaje inapropiado u otro comportamiento considerado no profesional o no bienvenido en la comunidad. + +Consecuencia: Una advertencia privada y por escrito de parte de los líderes de la comunidad, brindando claridad sobre la naturaleza de la violación y una explicación de por qué el comportamiento fue inapropiado. Se puede solicitar una disculpa pública. + +### 2. Advertencia + +Impacto comunitario: Una violación por un incidente único o una serie de acciones. + +Consecuencia: Una advertencia con consecuencias para comportamientos continuados. Ninguna interacción con las personas involucradas, incluida la interacción no solicitada con quienes hacen cumplir el Código de Conducta, por un período de tiempo especificado. Esto incluye evitar interacciones en espacios de la comunidad así como en canales externos como redes sociales. Violaciones a estos términos pueden llevar a una suspensión temporal o permanente. + +### 3. Suspensión temporal + +Impacto comunitario: Una violación grave de los estándares de la comunidad, incluido el comportamiento inapropiado sostenido. + +Consecuencia: Una suspensión temporal de cualquier tipo de interacción o comunicación pública con la comunidad por un período de tiempo especificado. No se permite interacción pública o privada con las personas involucradas, incluida la interacción no solicitada con quienes hacen cumplir el Código de Conducta, durante este período. Violar estos términos puede llevar a una suspensión permanente. + +### 4. Suspensión permanente + +Impacto comunitario: Demostrar un patrón de violación de los estándares de la comunidad, incluido el comportamiento inapropiado sostenido, acoso a una persona o agresión o desprecio hacia clases de individuos. + +Consecuencia: Suspensión permanente de cualquier tipo de interacción pública dentro de la comunidad. + +## Atribución + +Este Código de Conducta está adaptado del [Contributor Covenant][homepage], versión 2.0, disponible en https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Las Guías de Impacto Comunitario se inspiraron en la [escala de aplicación del código de conducta de Mozilla](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +Para respuestas a preguntas comunes sobre este código de conducta, vea las preguntas frecuentes en https://www.contributor-covenant.org/faq. Traducciones disponibles en https://www.contributor-covenant.org/translations. \ No newline at end of file diff --git a/COMMIT_MESSAGE_GUIDELINES.es.md b/COMMIT_MESSAGE_GUIDELINES.es.md new file mode 100644 index 0000000..8788873 --- /dev/null +++ b/COMMIT_MESSAGE_GUIDELINES.es.md @@ -0,0 +1,148 @@ +# Guía para Mensajes de Commit + +[Ver versión en inglés](./COMMIT_MESSAGE_GUIDELINES.md) + +Un buen mensaje de commit debe ser descriptivo y aportar contexto sobre los cambios realizados. Esto facilita entender y revisar los cambios en el futuro. + +## Recomendaciones + +- Empieza con un resumen breve de los cambios del commit. +- Usa el modo imperativo en el resumen, como si dieras una instrucción. Por ejemplo, "Add feature" en lugar de "Added feature". +- Proporciona detalles adicionales en el cuerpo del mensaje, si es necesario: motivo del cambio, impacto, dependencias añadidas o eliminadas, etc. +- Mantén cada línea en 72 caracteres o menos para que sea fácil de leer en la salida de `git log`. + +### Ejemplos de buenos mensajes + +- "Add authentication feature for user login" +- "Fix bug causing application to crash on startup" +- "Update documentation for API endpoints" + +Recordatorio: escribir mensajes de commit descriptivos ahorra tiempo en el futuro y ayuda a otras personas a entender los cambios hechos al código. + +## Tipos de commit + +A continuación, una lista (ampliable) de tipos de commit que puedes usar: + +`feat`: Añade una característica nueva al proyecto + +```markdown +feat: Add multi-image upload support +``` + +`fix`: Corrige un error o problema en el proyecto + +```markdown +fix: Fix bug causing application to crash on startup +``` + +`docs`: Cambios en documentación + +```markdown +docs: Update documentation for API endpoints +``` + +`style`: Cambios cosméticos o de formato (colores, formateo de código, etc.) + +```markdown +style: Update colors and formatting +``` + +`refactor`: Cambios internos que no alteran el comportamiento, pero mejoran calidad/mantenibilidad + +```markdown +refactor: Remove unused code +``` + +`test`: Añadir o modificar tests + +```markdown +test: Add tests for new feature +``` + +`chore`: Cambios que no encajan en otras categorías (actualizar dependencias, configurar build, etc.) + +```markdown +chore: Update dependencies +``` + +`perf`: Mejoras de rendimiento + +```markdown +perf: Improve performance of image processing +``` + +`security`: Aborda temas de seguridad + +```markdown +security: Update dependencies to address security issues +``` + +`merge`: Fusiones de ramas + +```markdown +merge: Merge branch 'feature/branch-name' into develop +``` + +`revert`: Revertir un commit previo + +```markdown +revert: Revert "Add feature" +``` + +`build`: Cambios en el sistema de build o dependencias + +```markdown +build: Update dependencies +``` + +`ci`: Cambios en la integración continua (CI) + +```markdown +ci: Update CI configuration +``` + +`config`: Cambios en archivos de configuración + +```markdown +config: Update configuration files +``` + +`deploy`: Cambios en el proceso de despliegue + +```markdown +deploy: Update deployment scripts +``` + +`init`: Inicialización de repositorio o proyecto + +```markdown +init: Initialize project +``` + +`move`: Mover archivos o directorios + +```markdown +move: Move files to new directory +``` + +`rename`: Renombrar archivos o directorios + +```markdown +rename: Rename files +``` + +`remove`: Eliminar archivos o directorios + +```markdown +remove: Remove files +``` + +`update`: Actualización de código, dependencias u otros componentes + +```markdown +update: Update code +``` + +Estos son solo ejemplos; puedes definir tipos personalizados si los usas de forma consistente y con mensajes claros y descriptivos. + +**Importante:** Si planeas usar un tipo de commit personalizado que no esté en la lista, añádelo aquí para que otras personas lo entiendan también. Crea un pull request para incluirlo en este archivo. diff --git a/CONTRIBUTING.es.md b/CONTRIBUTING.es.md new file mode 100644 index 0000000..41fcfbc --- /dev/null +++ b/CONTRIBUTING.es.md @@ -0,0 +1,58 @@ +# Guía para Contribuir a KooL Hyprland Projects (Debian) + +[Ver versión en inglés](./CONTRIBUTING.md) + +¡Gracias por tu interés en contribuir! Aceptamos correcciones de errores, nuevas características, mejoras de documentación y otras mejoras generales. + +## Primeros pasos + +1. Haz un fork del repositorio (rama `development`) en tu cuenta de GitHub. + - Botón **Fork** o [enlace directo](https://github.com/JaKooLit/Debian-Hyprland/fork). + - Desmarca la opción de copiar solo la rama `main` para incluir `development` y otras ramas. + +2. Clona tu fork en tu equipo: + + ```bash + git clone --depth=1 -b development https://github.com/JaKooLit/Debian-Hyprland.git + ``` + +3. Crea una rama para tus cambios: + + ```bash + git checkout -b tu-rama + ``` + +4. Realiza tus cambios y crea un commit con mensaje descriptivo (sigue la [guía de commits](./COMMIT_MESSAGE_GUIDELINES.md)): + + ```bash + git commit -m "feat: add a new feature" + ``` + +5. Sube tu rama a tu fork: + + ```bash + git push origin tu-rama + ``` + +6. Abre un **pull request** contra `development`. + - Usa la [plantilla de PR](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) y añade etiquetas relevantes. + +## Directrices + +- Sigue el estilo de código del proyecto. +- Actualiza la documentación cuando sea necesario. +- Añade tests si aplica y verifica que pasen. +- Mantén el PR enfocado; evita cambios no relacionados. +- Revisa estos archivos útiles: + - [bug.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug.yml) + - [feature.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature.yml) + - [documentation-update.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation-update.yml) + - [PULL_REQUEST_TEMPLATE.md](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) + - [COMMIT_MESSAGE_GUIDELINES.md](./COMMIT_MESSAGE_GUIDELINES.md) + - [CONTRIBUTING.md](./CONTRIBUTING.md) + - [LICENSE](https://github.com/JaKooLit/Debian-Hyprland/blob/main/LICENSE.md) + - [README.md](https://github.com/JaKooLit/Debian-Hyprland/blob/main/README.md) + +## Contacto + +Para preguntas, usa [GitHub Discussions](https://github.com/JaKooLit/Debian-Hyprland/discussions) o el [Servidor de Discord](https://discord.gg/kool-tech-world). From 42cd493027910d236ad2e9bb68182295979dc64e Mon Sep 17 00:00:00 2001 From: Don Williams Date: Mon, 12 Jan 2026 08:14:45 -0500 Subject: [PATCH 4/6] Merged development to main to redo v2.9.4 release properly On branch main Your branch is up to date with 'origin/main'. Changes to be committed: renamed: CHANGELOGS.md -> CHANGELOG.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-scripts/hyprland-guiutils.sh modified: install-scripts/hyprland.sh modified: install-scripts/hyprwire.sh modified: install-scripts/xdph.sh modified: install.sh modified: refresh-hypr-tags.sh modified: update-hyprland.sh --- CHANGELOGS.md => CHANGELOG.md | 26 ++-- Debian-Hyprland-Install-Upgrade.es.md | 191 ++++++++++++++++++++----- Debian-Hyprland-Install-Upgrade.md | 193 +++++++++++++++++++++----- README.md | 6 +- hypr-tags.env | 11 +- hypr-tags.env-v.053 | 13 -- install-scripts/hyprland-guiutils.sh | 9 +- install-scripts/hyprland.sh | 10 ++ install-scripts/hyprwire.sh | 108 +++++++++++--- install-scripts/xdph.sh | 6 +- install.sh | 76 +++++++++- refresh-hypr-tags.sh | 71 ++++++++-- update-hyprland.sh | 72 ++++++++-- 13 files changed, 641 insertions(+), 151 deletions(-) rename CHANGELOGS.md => CHANGELOG.md (93%) delete mode 100644 hypr-tags.env-v.053 diff --git a/CHANGELOGS.md b/CHANGELOG.md similarity index 93% rename from CHANGELOGS.md rename to CHANGELOG.md index d0313e1..abbae57 100644 --- a/CHANGELOGS.md +++ b/CHANGELOG.md @@ -1,16 +1,26 @@ -## CHANGELOGS +## CHANGELOG ## 02 January 2026 +### > Note: Support for Hyprland v0.53.1 is now available for Debian Stable (Trixie) + +### > At this time it should be considered BETA, not for production use + +### > Testing with NVIDIA has not yet been done + +### > Only Intel, AMD, and in VMs + - Updated: - - `update-hyprland.sh` pinned to v0.52.2 - - Currently only Debian testing and SID branches build v0.53+ - - Added `--force-update` to refresh the pacakge versions if pinned - - This is only for debian testing+ versions + - Default Hyprland stack versions now target 0.53.1 (see `hypr-tags.env`) + - Added trixie compatibility mode flags: + - `--build-trixie` / `--no-trixie` (auto-detected on Debian 13) + - Added `--force-update` to refresh pinned package versions - `update-hyprland.sh` added `-/--help` - - documentation for updating hyprland -- Added: version update to `refresh-tags` and `update-hyprland` script -- Fixed: `--force-update` implies `--fetch-latest` + - Documentation for updating hyprland +- Added: + - Version refresh improvements for `refresh-hypr-tags.sh` (accepts `--get-latest`, retries transient GitHub errors) +- Fixed: + - `--force-update` implies `--fetch-latest` ## 10 December 2025 diff --git a/Debian-Hyprland-Install-Upgrade.es.md b/Debian-Hyprland-Install-Upgrade.es.md index 50577c2..af5eb81 100644 --- a/Debian-Hyprland-Install-Upgrade.es.md +++ b/Debian-Hyprland-Install-Upgrade.es.md @@ -6,13 +6,15 @@ Esta guía cubre los flujos de instalación y actualización mejorados para el p 1. [Resumen](#resumen) 2. [Nuevas Funciones](#nuevas-funciones) -3. [Gestión Central de Versiones](#gestión-central-de-versiones) -4. [Métodos de Instalación](#métodos-de-instalación) -5. [Flujos de Actualización](#flujos-de-actualización) -6. [Pruebas con Dry-Run](#pruebas-con-dry-run) -7. [Gestión de Logs](#gestión-de-logs) -8. [Uso Avanzado](#uso-avanzado) -9. [Solución de Problemas](#solución-de-problemas) +3. [Referencia de Flags](#referencia-de-flags) +4. [Modo de Compatibilidad Debian 13 (Trixie)](#modo-de-compatibilidad-debian-13-trixie) +5. [Gestión Central de Versiones](#gestión-central-de-versiones) +6. [Métodos de Instalación](#métodos-de-instalación) +7. [Flujos de Actualización](#flujos-de-actualización) +8. [Pruebas con Dry-Run](#pruebas-con-dry-run) +9. [Gestión de Logs](#gestión-de-logs) +10. [Uso Avanzado](#uso-avanzado) +11. [Solución de Problemas](#solución-de-problemas) ## Resumen @@ -27,6 +29,7 @@ El proyecto Debian-Hyprland ahora incluye herramientas de automatización y gest ## Nuevas Funciones ### install.sh mejorado + El script original ahora: - **Unifica versiones**: Lee `hypr-tags.env` y exporta variables de versión a todos los módulos @@ -36,48 +39,126 @@ El script original ahora: ### Nuevos Scripts #### update-hyprland.sh + Herramienta enfocada para gestionar y compilar solo el stack de Hyprland: + ```bash chmod +x ./update-hyprland.sh ./update-hyprland.sh --help # Ver todas las opciones ``` Flags clave: + - --fetch-latest: obtiene las últimas etiquetas desde GitHub - --force-update: sobrescribe valores fijados en hypr-tags.env (equivalente a FORCE=1) - --dry-run / --install: solo compilar o compilar+instalar - --only / --skip: limitar qué módulos se ejecutan +- --build-trixie / --no-trixie: habilita/deshabilita el modo de compatibilidad Debian 13 (auto-detectado por defecto) #### dry-run-build.sh + Herramienta de pruebas que compila componentes sin instalarlos: + ```bash chmod +x ./dry-run-build.sh ./dry-run-build.sh --help # Ver todas las opciones ``` #### wayland-protocols-src.sh + Módulo que compila wayland-protocols desde el origen para satisfacer los requisitos de Hyprland 0.51.x. +## Referencia de Flags + +Este repo incluye varios "flags de control" que afectan cómo se compila/instala el stack. + +### Flags de update-hyprland.sh + +- `--install` / `--dry-run`: compilar+instalar vs solo compilar +- `--only ` / `--skip `: ejecutar solo un subconjunto de módulos +- `--fetch-latest`: consulta GitHub Releases y refresca etiquetas +- `--force-update`: sobrescribe valores fijados en `hypr-tags.env` (equivalente a `FORCE=1`) +- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13 + +Notas: +- Cuando el modo trixie está habilitado, `update-hyprland.sh` exporta `HYPR_BUILD_TRIXIE=1` y reenvía `--build-trixie` a los scripts de módulos. + +### Flags de install.sh + +- `--preset `: ejecutar con elecciones predefinidas +- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13 + +También puedes forzar por variable de entorno: + +```bash +HYPR_BUILD_TRIXIE=1 ./install.sh +``` + +### Flags de refresh-hypr-tags.sh + +- `--get-latest`: refresca etiquetas a las últimas releases de GitHub (alias) +- `--force-update`: forzar sobrescritura de valores fijados + +Equivalente con variable de entorno: + +```bash +FORCE=1 ./refresh-hypr-tags.sh --get-latest +``` + +## Modo de Compatibilidad Debian 13 (Trixie) + +Versiones nuevas de Hyprland (0.53.x+) pueden requerir shims de compatibilidad en Debian 13 (trixie) debido a diferencias del toolchain/stdlib. + +- Por defecto es **auto-detectado** (vía `/etc/os-release`): si `ID=debian` y `VERSION_CODENAME=trixie`, el modo se habilita. +- Puedes forzarlo ON/OFF: + +```bash +# Forzar ON +./update-hyprland.sh --build-trixie --install + +# Forzar OFF +./update-hyprland.sh --no-trixie --install +``` + ## Gestión Central de Versiones ### hypr-tags.env + Archivo con etiquetas de versión para todos los componentes de Hyprland: ```bash # Versiones actuales (ejemplo) -HYPRLAND_TAG=v0.51.1 -AQUAMARINE_TAG=v0.9.3 -HYPRUTILS_TAG=v0.8.2 -HYPRLANG_TAG=v0.6.4 -HYPRGRAPHICS_TAG=v0.1.5 +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_PROTOCOLS_TAG=v0.6.4 +HYPRLAND_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.4 -WAYLAND_PROTOCOLS_TAG=1.45 +HYPRLAND_QTUTILS_TAG=v0.1.5 +HYPRLAND_GUIUTILS_TAG=v0.2.0 +HYPRWIRE_TAG=v0.2.1 +WAYLAND_PROTOCOLS_TAG=1.46 +``` + +### Refrescar etiquetas (últimas releases) + +Puedes refrescar `hypr-tags.env` a las últimas etiquetas publicadas en GitHub: + +```bash +# Actualiza solo claves en auto/latest (o sin valor) +./refresh-hypr-tags.sh --get-latest + +# Forzar sobrescritura de valores fijados +FORCE=1 ./refresh-hypr-tags.sh --get-latest +# o +./refresh-hypr-tags.sh --force-update ``` ### Prioridad de Sobrescritura de Versiones + 1. Variables de entorno (exportadas) 2. Valores en el archivo `hypr-tags.env` 3. Valores por defecto en cada módulo @@ -85,6 +166,7 @@ WAYLAND_PROTOCOLS_TAG=1.45 ## Métodos de Instalación ### Método 1: Instalación Completa Original + ```bash # Instalación estándar con todos los componentes chmod +x install.sh @@ -92,17 +174,20 @@ chmod +x install.sh ``` Ahora, este método automáticamente: + - Carga versiones desde `hypr-tags.env` - Instala wayland-protocols desde el origen antes de Hyprland - Mantiene el orden correcto de dependencias ### Método 2: Solo el Stack de Hyprland + ```bash # Instala solo Hyprland y componentes esenciales ./update-hyprland.sh --install ``` ### Método 3: Instalación Nueva con Últimas Versiones + ```bash # Obtiene últimas versiones de GitHub e instala ./update-hyprland.sh --fetch-latest --install @@ -112,6 +197,7 @@ Ahora, este método automáticamente: ``` ### Método 4: Instalación con Preset + ```bash # Usa un preset para elecciones automáticas ./install.sh --preset ./preset.sh @@ -124,6 +210,7 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x- ### Actualizar a la Última Versión de Hyprland #### Opción A: Descubrimiento Automático + ```bash # Obtiene las últimas etiquetas e instala (respeta versiones fijadas en hypr-tags.env) ./update-hyprland.sh --fetch-latest --install @@ -133,12 +220,14 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x- ``` #### Opción B: Versión Específica + ```bash # Establece una versión específica de Hyprland ./update-hyprland.sh --set HYPRLAND=v0.51.1 --install ``` #### Opción C: Probar Antes de Instalar + ```bash # Prueba la compilación primero, luego instala si es exitoso ./update-hyprland.sh --fetch-latest --dry-run @@ -171,6 +260,7 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x- 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 @@ -180,13 +270,17 @@ Ruta recomendada: ``` 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 ``` @@ -194,6 +288,7 @@ Notas: ## Pruebas con Dry-Run ### ¿Por qué usar Dry-Run? + - Probar compatibilidad de compilación antes de instalar - Validar combinaciones de versiones - Depurar problemas de compilación sin cambios en el sistema @@ -226,6 +321,7 @@ Notas: ``` ### Limitaciones de Dry-Run + - **Las dependencias se instalan**: apt se ejecuta para asegurar la compilación - **Requisitos de pkg-config**: Algunos componentes necesitan requisitos instalados en el sistema - **Sin cambios en el sistema**: No instala archivos en /usr/local o /usr @@ -233,7 +329,9 @@ Notas: ## Gestión de Logs ### Ubicación de Logs + Todas las actividades de construcción generan logs con sello de tiempo en: + ``` Install-Logs/ ├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Log principal de instalación @@ -243,6 +341,7 @@ Install-Logs/ ``` ### Análisis de Logs + ```bash # Ver el log de instalación más reciente ls -t Install-Logs/*.log | head -1 | xargs less @@ -255,8 +354,10 @@ cat Install-Logs/build-dry-run-*.log ``` ### Retención de Logs + - Los logs se acumulan con el tiempo para referencia histórica - Se recomienda limpieza manual periódica: + ```bash # Mantener solo logs de los últimos 30 días find Install-Logs/ -name "*.log" -mtime +30 -delete @@ -267,6 +368,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ### Gestión de Versiones #### Forzar la Actualización de Todas las Etiquetas + ```bash # Sobrescribe valores fijados en hypr-tags.env con las últimas versiones ./update-hyprland.sh --fetch-latest --force-update --dry-run @@ -275,6 +377,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ``` #### Copia de Seguridad y Restauración + ```bash # Las etiquetas se respaldan automáticamente cuando cambian # Restaurar la copia más reciente @@ -282,6 +385,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ``` #### Múltiples Conjuntos de Versiones + ```bash # Guardar configuración actual cp hypr-tags.env hypr-tags-stable.env @@ -296,6 +400,7 @@ cp hypr-tags-stable.env hypr-tags.env ### Integración con el Entorno #### PKG_CONFIG_PATH personalizado + ```bash # Asegurar que /usr/local tenga prioridad export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}" @@ -303,6 +408,7 @@ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PK ``` #### Compilaciones en Paralelo + ```bash # Controlar el paralelismo (por defecto: todos los núcleos) export MAKEFLAGS="-j4" @@ -312,6 +418,7 @@ export MAKEFLAGS="-j4" ### Flujo de Trabajo de Desarrollo #### Probar Nuevos Lanzamientos + ```bash # 1. Crear entorno de pruebas cp hypr-tags.env hypr-tags.backup @@ -327,6 +434,7 @@ cp hypr-tags.env hypr-tags.backup ``` #### Desarrollo de Componentes + ```bash # Solo instalar dependencias ./update-hyprland.sh --with-deps --dry-run @@ -343,9 +451,11 @@ tail -f Install-Logs/install-*hyprland*.log ### Problemas Comunes #### Falla de Configuración con CMake + **Síntomas**: "Package dependency requirement not satisfied" **Soluciones**: + ```bash # Instalar requisitos faltantes ./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang @@ -358,9 +468,11 @@ rm -rf hyprland aquamarine hyprutils hyprlang ``` #### Errores de Compilación + **Síntomas**: "too many errors emitted" **Soluciones**: + ```bash # Actualizar dependencias núcleo primero ./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang @@ -370,9 +482,11 @@ grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log ``` #### Etiqueta No Encontrada + **Síntomas**: "Remote branch X not found" **Soluciones**: + ```bash # Ver etiquetas disponibles git ls-remote --tags https://github.com/hyprwm/Hyprland @@ -384,31 +498,34 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland ### Pasos de Depuración 1. **Verificar compatibilidad del sistema**: - ```bash - # Verificar versión de Debian - cat /etc/os-release - - # Asegurar deb-src habilitado - grep -E "^deb-src" /etc/apt/sources.list - ``` + + ```bash + # Verificar versión de Debian + cat /etc/os-release + + # Asegurar deb-src habilitado + grep -E "^deb-src" /etc/apt/sources.list + ``` 2. **Verificar entorno**: - ```bash - # Ver etiquetas actuales - cat hypr-tags.env - - # Probar dry-run primero - ./update-hyprland.sh --dry-run --only hyprland - ``` + + ```bash + # Ver etiquetas actuales + cat hypr-tags.env + + # Probar dry-run primero + ./update-hyprland.sh --dry-run --only hyprland + ``` 3. **Analizar logs**: - ```bash - # Errores más recientes - grep -i "error\|fail" Install-Logs/*.log | tail -20 - - # Problemas por módulo - ls -la Install-Logs/install-*[component]*.log - ``` + + ```bash + # Errores más recientes + grep -i "error\|fail" Install-Logs/*.log | tail -20 + + # Problemas por módulo + ls -la Install-Logs/install-*[component]*.log + ``` ### Obtener Ayuda @@ -420,6 +537,7 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland ## Migración desde Versiones Previas ### Instalaciones Existentes + Las nuevas herramientas funcionan junto a instalaciones existentes: ```bash @@ -431,6 +549,7 @@ Las nuevas herramientas funcionan junto a instalaciones existentes: ``` ### Convertir a Gestión por Etiquetas + ```bash # Las versiones actuales se guardan en hypr-tags.env automáticamente # Verificar con: diff --git a/Debian-Hyprland-Install-Upgrade.md b/Debian-Hyprland-Install-Upgrade.md index 5cf20c9..612d530 100644 --- a/Debian-Hyprland-Install-Upgrade.md +++ b/Debian-Hyprland-Install-Upgrade.md @@ -6,13 +6,15 @@ This guide covers the enhanced installation and upgrade workflows for KooL's Deb 1. [Overview](#overview) 2. [New Features](#new-features) -3. [Central Version Management](#central-version-management) -4. [Installation Methods](#installation-methods) -5. [Upgrade Workflows](#upgrade-workflows) -6. [Dry-Run Testing](#dry-run-testing) -7. [Log Management](#log-management) -8. [Advanced Usage](#advanced-usage) -9. [Troubleshooting](#troubleshooting) +3. [Flags Reference](#flags-reference) +4. [Debian 13 (Trixie) Compatibility Mode](#debian-13-trixie-compatibility-mode) +5. [Central Version Management](#central-version-management) +6. [Installation Methods](#installation-methods) +7. [Upgrade Workflows](#upgrade-workflows) +8. [Dry-Run Testing](#dry-run-testing) +9. [Log Management](#log-management) +10. [Advanced Usage](#advanced-usage) +11. [Troubleshooting](#troubleshooting) ## Overview @@ -27,6 +29,7 @@ The Debian-Hyprland project now includes enhanced automation and management tool ## New Features ### Enhanced install.sh + The original install.sh script now includes: - **Tag consistency**: Reads `hypr-tags.env` and exports version variables to all modules @@ -36,48 +39,126 @@ The original install.sh script now includes: ### New Scripts #### update-hyprland.sh + A focused tool for managing and building just the Hyprland stack: + ```bash chmod +x ./update-hyprland.sh ./update-hyprland.sh --help # View all options ``` Key flags: + - --fetch-latest: pull latest release tags from GitHub - --force-update: override pinned values in hypr-tags.env (equivalent to FORCE=1) - --dry-run / --install: compile-only or compile+install - --only / --skip: limit which modules run +- --build-trixie / --no-trixie: enable/disable Debian 13 (trixie) compatibility mode (auto-detected by default) #### dry-run-build.sh + A testing tool that compiles components without installing: + ```bash chmod +x ./dry-run-build.sh ./dry-run-build.sh --help # View all options ``` #### wayland-protocols-src.sh + A new module that builds wayland-protocols from source to satisfy Hyprland 0.51.x requirements. +## Flags Reference + +This repo provides several "control flags" that affect how the stack is built. These are intentionally consistent across tools. + +### update-hyprland.sh flags + +- `--install` / `--dry-run`: compile+install vs compile-only +- `--only ` / `--skip `: run a subset of modules +- `--fetch-latest`: query GitHub Releases and refresh tags +- `--force-update`: override pinned values in `hypr-tags.env` (equivalent to `FORCE=1`) +- `--build-trixie` / `--no-trixie`: enable/disable Debian 13 compatibility mode + +Notes: +- When trixie mode is enabled, `update-hyprland.sh` exports `HYPR_BUILD_TRIXIE=1` and forwards `--build-trixie` to module scripts. + +### install.sh flags + +- `--preset `: run unattended-ish using preset choices +- `--build-trixie` / `--no-trixie`: enable/disable Debian 13 compatibility mode + +You can also force via env: + +```bash +HYPR_BUILD_TRIXIE=1 ./install.sh +``` + +### refresh-hypr-tags.sh flags + +- `--get-latest`: refresh tags to latest GitHub releases (alias; refresh always checks latest) +- `--force-update`: force-override pinned values + +Equivalent env form: + +```bash +FORCE=1 ./refresh-hypr-tags.sh --get-latest +``` + +## Debian 13 (Trixie) Compatibility Mode + +Newer Hyprland versions (0.53.x+) may require source-level compatibility shims on Debian 13 (trixie) due to toolchain / standard-library feature gaps. + +- Default behavior is **auto-detect** (via `/etc/os-release`): if `ID=debian` and `VERSION_CODENAME=trixie`, compatibility mode turns on. +- You can force it on/off: + +```bash +# Force ON +./update-hyprland.sh --build-trixie --install + +# Force OFF +./update-hyprland.sh --no-trixie --install +``` + ## Central Version Management ### hypr-tags.env + This file contains version tags for all Hyprland components: ```bash # Current versions (example) -HYPRLAND_TAG=v0.51.1 -AQUAMARINE_TAG=v0.9.3 -HYPRUTILS_TAG=v0.8.2 -HYPRLANG_TAG=v0.6.4 -HYPRGRAPHICS_TAG=v0.1.5 +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_PROTOCOLS_TAG=v0.6.4 +HYPRLAND_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.4 -WAYLAND_PROTOCOLS_TAG=1.45 +HYPRLAND_QTUTILS_TAG=v0.1.5 +HYPRLAND_GUIUTILS_TAG=v0.2.0 +HYPRWIRE_TAG=v0.2.1 +WAYLAND_PROTOCOLS_TAG=1.46 +``` + +### Refreshing tags (latest releases) + +You can refresh `hypr-tags.env` to the latest GitHub release tags: + +```bash +# Update only keys set to auto/latest (or unset) +./refresh-hypr-tags.sh --get-latest + +# Force-override pinned keys +FORCE=1 ./refresh-hypr-tags.sh --get-latest +# or +./refresh-hypr-tags.sh --force-update ``` ### Version Override Priority + 1. Environment variables (exported) 2. hypr-tags.env file values 3. Default hardcoded values in each module @@ -85,6 +166,7 @@ WAYLAND_PROTOCOLS_TAG=1.45 ## Installation Methods ### Method 1: Original Full Installation + ```bash # Standard installation with all components chmod +x install.sh @@ -92,17 +174,20 @@ chmod +x install.sh ``` This method now automatically: + - Loads versions from `hypr-tags.env` - Installs wayland-protocols from source before Hyprland - Maintains proper dependency ordering ### Method 2: Hyprland Stack Only + ```bash # Install only Hyprland and essential components ./update-hyprland.sh --install ``` ### Method 3: Fresh Installation with Latest Versions + ```bash # Fetch latest GitHub releases and install ./update-hyprland.sh --fetch-latest --install @@ -112,6 +197,7 @@ This method now automatically: ``` ### Method 4: Preset-Based Installation + ```bash # Use preset file for automated choices ./install.sh --preset ./preset.sh @@ -124,6 +210,7 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511) ### Upgrading to Latest Hyprland Release #### Option A: Automatic Discovery + ```bash # Fetch latest tags and install (respects pins in hypr-tags.env) ./update-hyprland.sh --fetch-latest --install @@ -133,12 +220,14 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511) ``` #### Option B: Specific Version + ```bash # Set specific Hyprland version ./update-hyprland.sh --set HYPRLAND=v0.51.1 --install ``` #### Option C: Test Before Installing + ```bash # Test compilation first, then install if successful ./update-hyprland.sh --fetch-latest --dry-run @@ -171,6 +260,7 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511) 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 @@ -180,13 +270,17 @@ Recommended path: ``` 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 ``` @@ -194,6 +288,7 @@ Notes: ## Dry-Run Testing ### Why Use Dry-Run? + - Test compilation compatibility before installing - Validate version combinations - Debug build issues without system changes @@ -226,6 +321,7 @@ Notes: ``` ### Dry-Run Limitations + - **Dependencies still install**: apt operations run to ensure compilation succeeds - **pkg-config requirements**: Some components need system-installed prerequisites - **No system changes**: No files installed to /usr/local or /usr @@ -233,7 +329,9 @@ Notes: ## Log Management ### Log Location + All build activities generate timestamped logs in: + ``` Install-Logs/ ├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log @@ -243,6 +341,7 @@ Install-Logs/ ``` ### Log Analysis + ```bash # View most recent install log ls -t Install-Logs/*.log | head -1 | xargs less @@ -255,8 +354,10 @@ cat Install-Logs/build-dry-run-*.log ``` ### Log Retention + - Logs accumulate over time for historical reference - Manual cleanup recommended periodically: + ```bash # Keep only logs from last 30 days find Install-Logs/ -name "*.log" -mtime +30 -delete @@ -267,6 +368,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ### Tag Management #### Force Update All Tags + ```bash # Override pinned values in hypr-tags.env to the latest releases ./update-hyprland.sh --fetch-latest --force-update --dry-run @@ -275,6 +377,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ``` #### Backup and Restore + ```bash # Tags are automatically backed up on changes # Restore most recent backup @@ -282,6 +385,7 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ``` #### Multiple Version Sets + ```bash # Save current configuration cp hypr-tags.env hypr-tags-stable.env @@ -296,6 +400,7 @@ cp hypr-tags-stable.env hypr-tags.env ### Environment Integration #### Custom PKG_CONFIG_PATH + ```bash # Ensure /usr/local takes precedence export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}" @@ -303,6 +408,7 @@ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PK ``` #### Parallel Builds + ```bash # Control build parallelism (default: all cores) export MAKEFLAGS="-j4" @@ -312,6 +418,7 @@ export MAKEFLAGS="-j4" ### Development Workflow #### Testing New Releases + ```bash # 1. Create test environment cp hypr-tags.env hypr-tags.backup @@ -327,6 +434,7 @@ cp hypr-tags.env hypr-tags.backup ``` #### Component Development + ```bash # Install dependencies only ./update-hyprland.sh --with-deps --dry-run @@ -343,9 +451,11 @@ tail -f Install-Logs/install-*hyprland*.log ### Common Issues #### CMake Configuration Fails + **Symptoms**: "Package dependency requirement not satisfied" **Solutions**: + ```bash # Install missing prerequisites ./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang @@ -358,9 +468,11 @@ rm -rf hyprland aquamarine hyprutils hyprlang ``` #### Compilation Errors + **Symptoms**: "too many errors emitted" **Solutions**: + ```bash # Update core dependencies first ./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang @@ -370,9 +482,11 @@ grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log ``` #### Tag Not Found + **Symptoms**: "Remote branch X not found" **Solutions**: + ```bash # Check available tags git ls-remote --tags https://github.com/hyprwm/Hyprland @@ -384,31 +498,34 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland ### Debug Steps 1. **Check system compatibility**: - ```bash - # Verify Debian version - cat /etc/os-release - - # Ensure deb-src enabled - grep -E "^deb-src" /etc/apt/sources.list - ``` + + ```bash + # Verify Debian version + cat /etc/os-release + + # Ensure deb-src enabled + grep -E "^deb-src" /etc/apt/sources.list + ``` 2. **Verify environment**: - ```bash - # Check current tags - cat hypr-tags.env - - # Test dry-run first - ./update-hyprland.sh --dry-run --only hyprland - ``` + + ```bash + # Check current tags + cat hypr-tags.env + + # Test dry-run first + ./update-hyprland.sh --dry-run --only hyprland + ``` 3. **Analyze logs**: - ```bash - # Most recent errors - grep -i "error\|fail" Install-Logs/*.log | tail -20 - - # Module-specific issues - ls -la Install-Logs/install-*[component]*.log - ``` + + ```bash + # Most recent errors + grep -i "error\|fail" Install-Logs/*.log | tail -20 + + # Module-specific issues + ls -la Install-Logs/install-*[component]*.log + ``` ### Getting Help @@ -420,6 +537,7 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland ## Migration from Previous Versions ### Existing Installations + The new tools work alongside existing installations: ```bash @@ -431,6 +549,7 @@ The new tools work alongside existing installations: ``` ### Converting to Tag Management + ```bash # Current versions are saved to hypr-tags.env automatically # Verify with: @@ -440,4 +559,4 @@ cat hypr-tags.env ./update-hyprland.sh --set HYPRLAND=v0.51.1 ``` -The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process. \ No newline at end of file +The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process. diff --git a/README.md b/README.md index 070bedd..3242492 100644 --- a/README.md +++ b/README.md @@ -99,9 +99,9 @@ sudo nano /etc/apt/sources.list - 10 October 2025 Update! - Hyprland-Debian nows builds 0.51.1 from source! - The installer now can be used to install newer releases later - - If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1 - > Note: At this time Debian 13 (Trixie) can't compile v0.52.2+ - > Debian Testing and SID can +- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1 + > Note: Newer Hyprland versions (0.53.x+) may require compatibility shims on Debian 13 (Trixie). + > Use the provided update/install scripts with `--build-trixie` if needed. - You do not have to re-install everything, but re-running `install.sh` works also - Instructions are available in English and Spanish diff --git a/hypr-tags.env b/hypr-tags.env index 81c0404..a3484a6 100644 --- a/hypr-tags.env +++ b/hypr-tags.env @@ -2,14 +2,17 @@ # You can edit these values or let update-hyprland.sh manage them. # Each module script reads its TAG from these environment variables if set. -HYPRLAND_TAG=v0.52.2 +# Hyprland 0.53.x stack (includes hyprwire) +HYPRLAND_TAG=v0.53.1 AQUAMARINE_TAG=v0.10.0 -HYPRUTILS_TAG=v0.10.4 -HYPRLANG_TAG=v0.6.7 -HYPRGRAPHICS_TAG=v0.4.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_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 +HYPRLAND_QTUTILS_TAG=v0.1.5 HYPRLAND_GUIUTILS_TAG=v0.2.0 +HYPRWIRE_TAG=v0.2.1 WAYLAND_PROTOCOLS_TAG=1.46 diff --git a/hypr-tags.env-v.053 b/hypr-tags.env-v.053 deleted file mode 100644 index e3c4ca3..0000000 --- a/hypr-tags.env-v.053 +++ /dev/null @@ -1,13 +0,0 @@ -AQUAMARINE_TAG=v0.10.0 -HYPRGRAPHICS_TAG=v0.5.0 -HYPRLAND_GUIUTILS_TAG=v0.2.0 -HYPRLAND_PROTOCOLS_TAG=v0.7.0 -HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.5 -HYPRLAND_TAG=v0.53.0 -HYPRLANG_TAG=v0.6.7 -HYPRTOOLKIT_TAG=v0.4.1 -HYPRUTILS_TAG=v0.11.0 -HYPRWAYLAND_SCANNER_TAG=v0.4.5 -HYPRWIRE_TAG=v0.2.1 -WAYLAND_PROTOCOLS_TAG=1.46 diff --git a/install-scripts/hyprland-guiutils.sh b/install-scripts/hyprland-guiutils.sh index 01dd9b3..fc6df4f 100755 --- a/install-scripts/hyprland-guiutils.sh +++ b/install-scripts/hyprland-guiutils.sh @@ -72,7 +72,14 @@ fi printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n" if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then cd hyprland-guiutils || exit 1 - cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + # 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:-}" + export LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH:-}" + 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` if [ $DO_INSTALL -eq 1 ]; then if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 0718e52..bec3c75 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -118,6 +118,16 @@ EOF sed -ri 's|^\s*#embed\s+"\.{0,2}/\.{0,2}/example/hyprland\.conf"\s*$|#include "defaultConfig.bytes.inc"|g' src/config/defaultConfig.hpp || true fi + # Compatibility: some toolchains/libstdc++ do not support std::string operator+ with std::string_view. + # Hyprland hyprctl uses a std::string_view filename; ensure it is converted explicitly. + HYPRCTL_MAIN="$(pwd)/hyprctl/src/main.cpp" + if [ -f "$HYPRCTL_MAIN" ] && grep -q "std::string socketPath" "$HYPRCTL_MAIN"; then + # Only patch if we see a "+ filename" concatenation. + if grep -qE '\+\s*filename\s*;' "$HYPRCTL_MAIN"; then + sed -ri 's/\+\s*filename\s*;/+ std::string(filename);/g' "$HYPRCTL_MAIN" || true + fi + 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 diff --git a/install-scripts/hyprwire.sh b/install-scripts/hyprwire.sh index 4958688..1daf57e 100755 --- a/install-scripts/hyprwire.sh +++ b/install-scripts/hyprwire.sh @@ -12,10 +12,33 @@ if [ -z "${HYPRWIRE_TAG:-}" ]; then fi if [ -n "${HYPRWIRE_TAG:-}" ]; then tag="$HYPRWIRE_TAG"; fi -# Dry-run support +# Dry-run support + shim controls DO_INSTALL=1 -if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then +FORCE_SHIM=0 +NO_SHIM=0 + +for arg in "$@"; do + case "$arg" in + --dry-run) + DO_INSTALL=0 + ;; + # Force the compatibility shim used on Debian 13 (trixie) toolchains. + # This is intentionally distro-named so it's obvious what it does for most users. + --build-trixie|--force-shim) + FORCE_SHIM=1 + ;; + # For testing/sid (or any toolchain that supports std::vector::append_range), allow opting out. + --no-shim) + NO_SHIM=1 + ;; + esac +done + +if [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then DO_INSTALL=0 +fi + +if [ $DO_INSTALL -eq 0 ]; then echo "${NOTE} DRY RUN: install step will be skipped." fi @@ -48,30 +71,71 @@ fi if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then cd hyprwire || exit 1 - # Temporary compatibility shim for compilers/libstdc++ without std::vector::append_range - cat > append_range_compat.hpp <<'EOF' + # Decide whether we need the append_range compatibility shim. + # On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch. + # On newer toolchains (testing/sid), prefer building upstream unmodified. + NEED_SHIM=0 + if [ "$NO_SHIM" -eq 1 ]; then + NEED_SHIM=0 + elif [ "$FORCE_SHIM" -eq 1 ]; then + NEED_SHIM=1 + else + CXX_TEST="${CXX:-c++}" + TMPD="$(mktemp -d)" + cat >"$TMPD/append_range_test.cpp" <<'EOF' +#include +int main() { + std::vector v; + v.append_range(std::vector{1,2,3}); + return 0; +} +EOF + if "$CXX_TEST" -std=c++23 -c "$TMPD/append_range_test.cpp" -o /dev/null >/dev/null 2>&1; then + NEED_SHIM=0 + else + NEED_SHIM=1 + fi + rm -rf "$TMPD" + fi + + if [ "$NEED_SHIM" -eq 1 ]; then + echo "${NOTE} Applying append_range compatibility shim (use --no-shim to disable; --build-trixie to force)." + + # Temporary compatibility shim for toolchains where libstdc++ lacks std::vector::append_range (C++23 library feature). + # Note: append_range in upstream accepts temporaries (e.g. encodeVarInt(...) returns a temporary vector). To support that, + # we bind the expression to a named auto&& first. + cat > append_range_compat.hpp <<'EOF' #pragma once #include -#define APPEND_RANGE(vec, ...) (vec).insert((vec).end(), std::begin(__VA_ARGS__), std::end(__VA_ARGS__)) + +// Append any begin/end range to a container, supporting temporaries by binding to auto&&. +#define APPEND_RANGE(vec, ...) do { \ + auto&& _r = (__VA_ARGS__); \ + (vec).insert((vec).end(), std::begin(_r), std::end(_r)); \ +} while(0) EOF -# Replace X.append_range(Y) -> APPEND_RANGE(X, Y) only where it appears -PATCH_FILES=$(grep -RIl --exclude-dir=.git 'append_range\(' . || true) -if [ -n "$PATCH_FILES" ]; then - # Replace LHS .append_range(arg...) with APPEND_RANGE(LHS, arg...) - # LHS: identifiers and common member/ptr chains (this->obj, ns::obj.member) - echo "$PATCH_FILES" | xargs -r sed -ri 's/([A-Za-z_][A-Za-z0-9_:\->\.]+)\s*\.\s*append_range\s*\(/APPEND_RANGE(\1, /g' - # Show any remaining occurrences - REMAIN=$(grep -RIn --exclude-dir=.git '\.\s*append_range\s*\(' $PATCH_FILES || true) - if [ -n "$REMAIN" ]; then - echo "[WARN] Some append_range() calls remain unpatched:" >&2 - echo "$REMAIN" >&2 + + # Replace X.(.|->)append_range(Y) -> APPEND_RANGE(X, Y) only where it appears + PATCH_FILES=$(grep -RIl --exclude-dir=.git -F 'append_range(' . || true) + if [ -n "$PATCH_FILES" ]; then + # LHS: identifiers and common member/ptr chains (this->obj, ns::obj.member) + echo "$PATCH_FILES" | xargs -r sed -ri 's/([A-Za-z_][A-Za-z0-9_:>.\-]+)\s*(\.|->)\s*append_range\s*\(/APPEND_RANGE(\1, /g' + # Show any remaining occurrences + REMAIN=$(grep -RIn --exclude-dir=.git -E '(\.|->)[[:space:]]*append_range[[:space:]]*\(' $PATCH_FILES || true) + if [ -n "$REMAIN" ]; then + echo "[WARN] Some append_range() calls remain unpatched:" >&2 + echo "$REMAIN" >&2 + fi + fi + + # 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}" + 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 fi -fi - -# 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 --build build -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 diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh index 8a60616..86fa8ff 100755 --- a/install-scripts/xdph.sh +++ b/install-scripts/xdph.sh @@ -29,6 +29,7 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then fi LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log" +MLOG="install-$(date +%d-%H%M%S)_xdph2.log" # Check if the file exists and remove it [[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland" @@ -58,11 +59,12 @@ if git clone --recursive -b $tag "https://github.com/hyprwm/xdg-desktop-portal-h cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build cmake --build build if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then - printf "${OK} ${MAGENTA}xdph $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" + 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 - mv $MLOG ../Install-Logs/ || true + # Move the additional logs to Install-Logs directory + [ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ || true cd .. else echo -e "${ERROR} Download failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$LOG" diff --git a/install.sh b/install.sh index 9dcf278..a3f22b6 100755 --- a/install.sh +++ b/install.sh @@ -105,6 +105,60 @@ if is_ubuntu; then exit 1 fi +# Debian Trixie compatibility mode +# Some Hypr* components need source-level shims on Debian 13 (trixie) toolchains. +# Default: auto-detect via /etc/os-release +# Overrides: +# --build-trixie / --no-trixie +# HYPR_BUILD_TRIXIE=1|0 (env) +TRIXIE_MODE="auto" +PRESET_FILE="" + +# Parse a small set of supported CLI args (order-independent) +# NOTE: install.sh historically used "$1"/"$2" for --preset; this keeps that working. +args=("$@") +for ((i=0; i<${#args[@]}; i++)); do + case "${args[$i]}" in + --build-trixie) + TRIXIE_MODE="on" + ;; + --no-trixie) + TRIXIE_MODE="off" + ;; + --preset) + if [ $((i+1)) -lt ${#args[@]} ]; then + PRESET_FILE="${args[$((i+1))]}" + fi + ;; + esac +done + +# If env explicitly sets HYPR_BUILD_TRIXIE, honor it. +if [ -n "${HYPR_BUILD_TRIXIE+x}" ]; then + if [ "${HYPR_BUILD_TRIXIE}" = "1" ]; then + TRIXIE_MODE="on" + elif [ "${HYPR_BUILD_TRIXIE}" = "0" ]; then + TRIXIE_MODE="off" + fi +fi + +# Resolve auto-detection +if [ "$TRIXIE_MODE" = "auto" ]; then + HYPR_BUILD_TRIXIE=0 + if [ -f /etc/os-release ]; then + # shellcheck disable=SC1091 + . /etc/os-release || true + if [ "${ID:-}" = "debian" ] && [ "${VERSION_CODENAME:-}" = "trixie" ]; then + HYPR_BUILD_TRIXIE=1 + fi + fi +elif [ "$TRIXIE_MODE" = "on" ]; then + HYPR_BUILD_TRIXIE=1 +else + HYPR_BUILD_TRIXIE=0 +fi +export HYPR_BUILD_TRIXIE + # install whiptails if detected not installed. Necessary for this version if ! command -v whiptail >/dev/null; then echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG" @@ -269,7 +323,13 @@ execute_script() { if [ -f "$script_path" ]; then chmod +x "$script_path" if [ -x "$script_path" ]; then - env "$script_path" + # Pass --build-trixie to all module scripts when in trixie compatibility mode. + # Scripts that don't care should simply ignore unknown args. + if [ "${HYPR_BUILD_TRIXIE:-0}" = "1" ]; then + env HYPR_BUILD_TRIXIE=1 "$script_path" --build-trixie + else + env HYPR_BUILD_TRIXIE=0 "$script_path" + fi else echo "Failed to make script '$script' executable." | tee -a "$LOG" fi @@ -323,9 +383,9 @@ load_preset() { fi } -# Check if --preset argument is passed -if [[ "$1" == "--preset" && -n "$2" ]]; then - load_preset "$2" +# Check if --preset argument is passed (order-independent) +if [ -n "${PRESET_FILE:-}" ]; then + load_preset "$PRESET_FILE" fi # List of services to check for active login managers @@ -558,6 +618,14 @@ else execute_script "hypridle.sh" fi +# Ensure /usr/local/lib is in the dynamic linker search path. +# Many Hypr* components install shared libraries into /usr/local/lib; without this, +# tools like hyprctl can fail to load (e.g. missing libhyprwire.so.*). +if ! sudo grep -qxF "/usr/local/lib" /etc/ld.so.conf.d/usr-local.conf 2>/dev/null; then + echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/usr-local.conf >/dev/null +fi +sudo ldconfig 2>/dev/null || true + #execute_script "imagemagick.sh" #this is for compiling from source. 07 Sep 2024 # execute_script "waybar-git.sh" only if waybar on repo is old diff --git a/refresh-hypr-tags.sh b/refresh-hypr-tags.sh index 9019cb7..fb15654 100755 --- a/refresh-hypr-tags.sh +++ b/refresh-hypr-tags.sh @@ -11,20 +11,61 @@ mkdir -p "$LOG_DIR" TS=$(date +%F-%H%M%S) SUMMARY_LOG="$LOG_DIR/refresh-tags-$TS.log" +usage() { + cat <<'EOF' +refresh-hypr-tags.sh +Refresh hypr-tags.env with latest GitHub release tags. + +Usage: + ./refresh-hypr-tags.sh + FORCE=1 ./refresh-hypr-tags.sh + ./refresh-hypr-tags.sh --force-update + ./refresh-hypr-tags.sh --get-latest + +Notes: + - By default, only updates keys set to auto/latest (or unset). + - Use FORCE=1 or --force-update to override pinned values. +EOF +} + +# Arg parsing (minimal/backwards compatible) +FORCE=${FORCE:-0} +for arg in "$@"; do + case "$arg" in + -h|--help) + usage + exit 0 + ;; + --force-update|--force) + FORCE=1 + ;; + # Alias for user ergonomics; refresh always checks latest tags. + --get-latest|--fetch-latest) + : + ;; + *) + echo "[WARN] Unknown argument ignored: $arg" | tee -a "$SUMMARY_LOG" + ;; + esac +done + # Ensure tags file exists if [[ ! -f "$TAGS_FILE" ]]; then cat > "$TAGS_FILE" <<'EOF' -HYPRLAND_TAG=v0.51.1 -AQUAMARINE_TAG=v0.9.3 -HYPRUTILS_TAG=v0.8.2 -HYPRLANG_TAG=v0.6.4 -HYPRGRAPHICS_TAG=v0.1.5 +# Default Hyprland stack versions +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_PROTOCOLS_TAG=v0.6.4 +HYPRLAND_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.4 -HYPRWIRE_TAG=auto -WAYLAND_PROTOCOLS_TAG=1.45 +HYPRLAND_QTUTILS_TAG=v0.1.5 +HYPRLAND_GUIUTILS_TAG=v0.2.0 +HYPRWIRE_TAG=v0.2.1 +WAYLAND_PROTOCOLS_TAG=1.46 EOF fi @@ -38,16 +79,19 @@ if ! command -v curl >/dev/null 2>&1; then fi # Map of env var -> repo +# (Some modules may not publish GitHub releases; in that case the tag may not refresh.) declare -A repos=( [HYPRLAND_TAG]="hyprwm/Hyprland" [AQUAMARINE_TAG]="hyprwm/aquamarine" [HYPRUTILS_TAG]="hyprwm/hyprutils" [HYPRLANG_TAG]="hyprwm/hyprlang" [HYPRGRAPHICS_TAG]="hyprwm/hyprgraphics" + [HYPRTOOLKIT_TAG]="hyprwm/hyprtoolkit" [HYPRWAYLAND_SCANNER_TAG]="hyprwm/hyprwayland-scanner" [HYPRLAND_PROTOCOLS_TAG]="hyprwm/hyprland-protocols" [HYPRLAND_QT_SUPPORT_TAG]="hyprwm/hyprland-qt-support" [HYPRLAND_QTUTILS_TAG]="hyprwm/hyprland-qtutils" + [HYPRLAND_GUIUTILS_TAG]="hyprwm/hyprland-guiutils" [HYPRWIRE_TAG]="hyprwm/hyprwire" ) @@ -59,13 +103,18 @@ while IFS='=' read -r k v; do done < "$TAGS_FILE" # Fetch latest, but only update keys set to 'auto' or 'latest' unless forced -FORCE=${FORCE:-0} changes=() for key in "${!repos[@]}"; do repo="${repos[$key]}" url="https://api.github.com/repos/$repo/releases/latest" echo "[INFO] Checking latest tag for $repo" | tee -a "$SUMMARY_LOG" - body=$(curl -fsSL "$url" || true) + + # Be resilient to transient GitHub API errors (e.g. 5xx). + body=$(curl -fsSL \ + --retry 3 --retry-all-errors --retry-delay 1 \ + -H 'Accept: application/vnd.github+json' \ + "$url" || true) + [[ -z "$body" ]] && { echo "[WARN] Empty response for $repo" | tee -a "$SUMMARY_LOG"; continue; } if command -v jq >/dev/null 2>&1; then tag=$(printf '%s' "$body" | jq -r '.tag_name // empty') diff --git a/update-hyprland.sh b/update-hyprland.sh index 51301a5..229dfc3 100755 --- a/update-hyprland.sh +++ b/update-hyprland.sh @@ -65,6 +65,12 @@ ONLY_LIST="" SKIP_LIST="" SET_ARGS=() +# Trixie compatibility mode +# - auto: enable on Debian trixie (useful for toolchain/library shims) +# - on: force enable via --build-trixie +# - off: force disable via --no-trixie +TRIXIE_MODE="auto" + usage() { # Print the header comments (quick reference) followed by explicit flags overview sed -n '2,140p' "$0" | sed -n '/^# /p' | sed 's/^# \{0,1\}//' @@ -85,6 +91,8 @@ Options: --via-helper Use dry-run-build.sh to summarize a dry-run --minimal Build minimal stack before hyprland --no-fetch Do not auto-fetch tags on install + --build-trixie Force Debian 13 (trixie) compatibility mode (enables needed shims) + --no-trixie Disable trixie compatibility mode --set K=V [...] Set one or more tags (e.g., HYPRLAND=v0.53.0) EOF } @@ -93,16 +101,18 @@ ensure_tags_file() { if [[ ! -f "$TAGS_FILE" ]]; then echo "[INFO] Creating default tags file: $TAGS_FILE" | tee -a "$SUMMARY_LOG" cat >"$TAGS_FILE" <<'EOF' -HYPRLAND_TAG=v0.50.1 -AQUAMARINE_TAG=v0.9.2 -HYPRUTILS_TAG=v0.8.2 -HYPRLANG_TAG=v0.6.4 -HYPRGRAPHICS_TAG=v0.1.5 +# Default Hyprland stack versions +# (You can override any of these via --set or by editing hypr-tags.env.) +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 HYPRWAYLAND_SCANNER_TAG=v0.4.5 -HYPRLAND_PROTOCOLS_TAG=v0.6.4 +HYPRLAND_PROTOCOLS_TAG=v0.7.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 -HYPRLAND_QTUTILS_TAG=v0.1.4 -HYPRWIRE_TAG=auto +HYPRLAND_QTUTILS_TAG=v0.1.5 +HYPRWIRE_TAG=v0.2.1 EOF fi } @@ -281,6 +291,20 @@ run_stack() { export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}" export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}" + # Auto-detect Debian trixie unless explicitly overridden. + if [[ "$TRIXIE_MODE" == "auto" ]] && [[ -f /etc/os-release ]]; then + # shellcheck disable=SC1091 + . /etc/os-release || true + if [[ "${ID:-}" == "debian" ]] && [[ "${VERSION_CODENAME:-}" == "trixie" ]]; then + TRIXIE_MODE="on" + fi + fi + if [[ "$TRIXIE_MODE" == "on" ]]; then + export HYPR_BUILD_TRIXIE=1 + else + export HYPR_BUILD_TRIXIE=0 + fi + # Propagate system/bundled selection to hyprland.sh if [[ $USE_SYSTEM_LIBS -eq 1 ]]; then export USE_SYSTEM_HYPRLIBS=1 @@ -496,13 +520,33 @@ run_stack() { continue } chmod +x "$script" || true + + # Extra args for module scripts + # Most scripts ignore unknown flags, so this is safe and lets us add future + # trixie-specific shims without changing update-hyprland.sh again. + extra_args=() + if [[ "${HYPR_BUILD_TRIXIE:-0}" == "1" ]]; then + extra_args+=("--build-trixie") + fi + if [[ $DO_DRY_RUN -eq 1 ]]; then - if DRY_RUN=1 "$script"; then results[$mod]="PASS"; else results[$mod]="FAIL"; fi + if DRY_RUN=1 "$script" "${extra_args[@]}"; then results[$mod]="PASS"; else results[$mod]="FAIL"; fi else - if "$script"; then results[$mod]="INSTALLED"; else results[$mod]="FAIL"; fi + if "$script" "${extra_args[@]}"; then results[$mod]="INSTALLED"; else results[$mod]="FAIL"; fi fi done + # Ensure /usr/local/lib is in the dynamic linker search path after installs. + # Many Hypr* components install shared libraries into /usr/local/lib; without this, + # tools like hyprctl can fail to load (e.g. missing libhyprwire.so.*). + if [[ $DO_INSTALL -eq 1 ]]; then + echo "[INFO] Ensuring /usr/local/lib is in dynamic linker path" | tee -a "$SUMMARY_LOG" + if ! sudo grep -qxF "/usr/local/lib" /etc/ld.so.conf.d/usr-local.conf 2>/dev/null; then + echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/usr-local.conf >/dev/null + fi + sudo ldconfig || true + fi + { printf "\nSummary:\n" for mod in "${modules[@]}"; do @@ -568,6 +612,14 @@ while [[ $# -gt 0 ]]; do NO_FETCH=1 shift ;; + --build-trixie) + TRIXIE_MODE="on" + shift + ;; + --no-trixie) + TRIXIE_MODE="off" + shift + ;; --only) ONLY_LIST=${2:-} shift 2 From a6f603cf5ab6c39247199f72ae7e2548a6fa95fb Mon Sep 17 00:00:00 2001 From: Donald Williams <129223418+dwilliam62@users.noreply.github.com> Date: Tue, 13 Jan 2026 19:27:14 -0500 Subject: [PATCH 5/6] Update Discord link in README.md Link invalid after server name change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3242492..97d3e8c 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@
 Wiki 
  
 Keybinds 
  
 FAQ 
   -
 Discord 
+
 Discord 

From d9f4a876da74d5f17216c342c4f1c4a42acb6a27 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 15 Jan 2026 20:02:14 -0500 Subject: [PATCH 6/6] Updated README for Kali linux and formatting / grammer fixes On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: CHANGELOG.md modified: README.md --- CHANGELOG.md | 7 +++++++ README.md | 46 ++++++++++++++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abbae57..6e65a94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ## CHANGELOG +## 15 January 2026 + +- Updated README + - Added not about not supporting `Kali` Linux + - Update info on NVIDIA GPUs + - Cleaning up some formatting + ## 02 January 2026 ### > Note: Support for Hyprland v0.53.1 is now available for Debian Stable (Trixie) diff --git a/README.md b/README.md index 97d3e8c..a5100e8 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,9 @@ #### ⚠️ Pre-requisites and VERY Important +> Note: At this time `Kali` Linux is not supported. +> A number of users have reported issues installing and using the Dotfiles + - Do not run this installer with `sudo` or as `root` - This Installer requires a user with a `sudo` privileges to install packages - Debian 13 Trixie or greater. For the correct `GCC` compiler and libs @@ -79,8 +82,12 @@ sudo nano /etc/apt/sources.list ``` -- delete # on the lines with 'deb-src' -- ensure to allow to install non-free drivers especially for users with NVIDIA gpus. You can also install non-free drivers if required. Edit install-scripts/nvidia.sh and change the nvidia stuff's if required +- Delete `#` on the lines with `deb-src` +- Make sure to install `non-free` repository especially for users with NVIDIA GPUs. You can also install non-free drivers if required. + - Edit `install-scripts/nvidia.sh` and change the NVIDIA settings if required + +> Note: For users with newer NVIDIA GPUs, especially, RTX5000 series, we strongly suggest you manually install the current `open` drivers for NVIDIA +> Not install them from Jak's Debian install script ### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧 @@ -88,26 +95,29 @@ sudo nano /etc/apt/sources.list - 10 January 2026 Update! - Debian now builds Hyprland v0.53.1! - - This requires the just released `Debian-Hyprland v2.9.4` - - Debian 13 (Trixie, aka Stable)' - - Does now support v0.53.1 - - At this time is should not be used for production + - This requires the just released `Debian-Hyprland v2.9.4` installer + - Debian 13 (`Trixie`, aka `Stable`) + - While it does now support v0.53.1 + - At this time it should not be used for production - Testing is on going but NVIDIA GPUs have not been tested - Intel, AMD, and in VMs only so far - - Debian Testing (Forky) and Unstable (SID) - Build 0.53.1 without issue - ' + - Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.1 without issue + - 10 October 2025 Update! - Hyprland-Debian nows builds 0.51.1 from source! - The installer now can be used to install newer releases later -- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1 - > Note: Newer Hyprland versions (0.53.x+) may require compatibility shims on Debian 13 (Trixie). - > Use the provided update/install scripts with `--build-trixie` if needed. +- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1 > Note: Newer Hyprland versions (0.53.x+) may require compatibility shims on Debian 13 (Trixie). > Use the provided update/install scripts with `--build-trixie` if needed. - You do not have to re-install everything, but re-running `install.sh` works also - Instructions are available in English and Spanish #### ✨ Some notes on this installer / Prerequisites -- Recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland +- Recommend installing SDDM. Apart from GDM and SDDM, other Login Managers may not launch `Hyprland`. + - yprland can be launched through tty by typing: + - Prior to Hyprland v0.53.x `Hyprland` or `hyprland` + - After Hyprland v0.53.x you must use `start-hyprland` + - Otherwise will generate and error at start up. + - You might need to update the login manager if not using SDDM or GDM - 🕯️ network-manager-gnome (nm-applet) _has been removed_ from the packages to install. This is because it is known to restart the networkmanager causing issues in the installation process. After you boot up, inorder to get the network-manager applet, install network-manager-gnome. `sudo apt install network-manager-gnome` See below if your network or wifi became unmanaged after installation ### 🚩 changing login manager to SDDM @@ -199,7 +209,9 @@ chmod +x install.sh **Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?** -- Well, most of the core packages are downloaded and Build and compiled from _SOURCE_. Unlike Other distros, they already have prepacked binary that can just download and install. +- Most of the core packages are downloaded, some have to be compiled from source. + - Unlike Other distros, these packages already have prepacked binary that can just download and install. + - This adds to the install time ## 🛎 **_DEBIAN Hyprland Dots UPDATING NOTES_** @@ -217,7 +229,7 @@ Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki) Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds) > [!TIP] -> KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button +> KooL Hyprland has a searchable keybind rofi menu. (`SUPER SHIFT K`) or right click the `HINTS` waybar button #### 🙋 👋 Having issues or questions? @@ -231,7 +243,9 @@ Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds) - `./install-scripts/sddm.sh` - to reinstall sddm > [!IMPORTANT] -> DO NOT CD into install-scripts directory as script as it will fail. Scripts are designed to ran outside install-scripts directory for installation logging purposes. +> DO NOT CD into `install-scripts` directory to run any of those scripts +> The scripts are designed to ran outside `install-scripts` directory. +> If you do the scripts will fail. #### 🛣️ Roadmap @@ -250,7 +264,7 @@ log into your account ) ``` -- add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to +- add `env = WLR_DRM_DEVICES,/dev/dri/cardX` to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to - more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)