29 Commits

Author SHA1 Message Date
Don Williams
4f8e544a9e Added UWSM in case someone logins in with UWSM by mistake
They won't end up with a black screen

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

 Changes to be committed:
	modified:   01-hypr-pkgs.sh
2026-01-22 21:36:54 -05:00
Don Williams
715a43cffc Added Spanish Translations
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   CODE_OF_CONDUCT.es.md
	new file:   COMMIT_MESSAGE_GUIDELINES.es.md
	new file:   CONTRIBUTING.es.md
2026-01-11 20:23:53 -05:00
Donald Williams
7ebe599868 Merge branch 'main' into development 2025-12-11 11:54:34 -05:00
Don Williams
ae0c8b155c Updated CHANGELOG 2025-12-11 11:51:06 -05:00
Don Williams
3781f9c510 Adding qt5-quickcontrols2 to sddm.sh
A user reported in CachyOS this missing package prevented
Hyprland from starting via SDDM with simple_sddm_2 theme
Standard SDDM theme worked on.  Adding this pkg also resolved
issue

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

 Changes to be committed:
	modified:   sddm.sh
2025-12-11 10:48:47 -05:00
Ahum Maitra
bbeaa681e0 docs : Fix Nvidia Spelling in README (#346) 2025-12-09 22:15:41 +09:00
Don Williams
47f4e4d7b6 Fixed AGS v1
It now does the following:
◦  Clone upstream AGS 1.9.0.
◦  Stub out PAM/GUtils via pam.ts.
◦  Build and install AGS.
◦  Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
◦  Point /usr/local/bin/ags at that launcher.

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

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 02:09:16 -05:00
Don Williams
23f52b3f00 Saving working script before adding to AGS.SH
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   install-scripts/ags.launcher.com.github.Aylur.ags
2025-11-14 02:04:49 -05:00
Don Williams
956fb369b5 Fixing mesaon build errors 2025-11-14 01:17:20 -05:00
Don Williams
9cf06be539 Try again 2025-11-14 01:12:12 -05:00
Don Williams
1808001bdb Fixed syntax error 2025-11-14 01:07:36 -05:00
Don Williams
46728206a0 Patching tsconfig.json
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 01:03:18 -05:00
Don Williams
27b7ba5578 Fix attempt #2 GI_TYPELIB_PATH is read before set
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:43:53 -05:00
Don Williams
bcfade3e24 Checking for install triggered broken ags to start
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:31:38 -05:00
Don Williams
f231d77b5c Fixing ags script for overview launcher
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:27:51 -05:00
Don Williams
d1c0e89737 Fix to prevent 0byte ags file
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:26:25 -05:00
Don Williams
f1e2d27625 Fixed syntax error build failing still trying patch
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:04:28 -05:00
Don Williams
2789e1544c fixing AGS to install and not falsely report success
•  Added set -eo pipefail after sourcing Global_functions.sh so the script exits on failures and correctly fails when any command in a pipeline (like meson install | tee) fails.
◦  Added "ignoreDeprecations": "6.0" under compilerOptions to silence TS5107.
◦  Replaced moduleResolution "node10" with "node16" to be compatible with current TypeScript behavior.
•  The success message will now only be printed if meson actually succeeds

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

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 22:59:30 -05:00
Donald Williams
560ecf3bb6 Merge pull request #325 from JaKooLit/dwilliam62-change-rofi-wayland-to-rofi
Update 01-hypr-pkgs.sh  rofii-waybar is now just rofi
2025-10-05 22:47:53 -04:00
Donald Williams
516f2e609c Update 01-hypr-pkgs.sh
Rofi wayland now merged with rofi
2025-10-05 19:31:36 -04:00
Donald Williams
66cebd2247 Merge pull request #324 from JaKooLit/yuni-fix-readme
Fixed README.md for formatting
2025-10-05 08:55:46 -04:00
mio-dokuhaki
c16b3bc2c0 Fixed README.md for formatting 2025-10-05 16:15:56 +09:00
Donald Williams
ead2235eba Merge pull request #323 from JaKooLit/yuni-fix-monitor-scripts
Fix missing monitor scripts from Fedora-Hyprland PR #234
2025-10-05 01:04:37 -04:00
mio-dokuhaki
729149b7cc Add missing monitor scripts from Fedora-Hyprland PR #234 2025-10-05 13:45:27 +09:00
Donald Williams
efba587fde Merge pull request #322 from JaKooLit/yuni-fedora234-port
Port Fedora-Hyprland PR #234 to Arch-Hyprland main
2025-10-05 00:34:54 -04:00
mio-dokuhaki
c2a30d5a08 Manually added monitor script documentation from Fedora PR #234 2025-10-05 13:06:18 +09:00
Ja.KooLit
ab31c829e2 Update quickshell.sh 2025-07-28 23:45:41 +09:00
Ja.KooLit
5b29ba38d8 Merge pull request #300 from JaKooLit/development
Development to main
2025-07-25 21:32:29 +09:00
Ja.KooLit
8813180c2d Merge pull request #289 from JaKooLit/development
Updated for new SDDM theme
2025-06-09 08:41:10 +09:00
9 changed files with 521 additions and 85 deletions

View File

@@ -1,230 +1,312 @@
## CHANGELOGS
## Dec 2025
Added:
- `qt5-quickcontrols2` to sddm.sh - User reported w/o this SDDM crashed on login
Fixed:
- AGS v1
- It now does the following:
- Clone upstream AGS 1.9.0.
- Stub out PAM/GUtils via pam.ts.
- Build and install AGS.
- Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
- Points /usr/local/bin/ags at that launcher.
- AGS is no longer removed when you add quickshell.
- AGS overview is a backup if quickshell overview fails.
- meson build errors
- `rofi-wayland` package changed to 'rofi'
- Add missing monitor scripts from Fedora-Hyprland PR #234
## 22 July 2025
- Updated sddm theme and script to work with the updated simple_sddm_2 theme
## 17 July 2025
- added quickshell script to replace ags for desktop overview
## 08 June 2025
- updated SDDM theme.
- updated SDDM theme.
## 20 March 2025
- adjusted hyprland installation script. This is great for those who are using -git packages
- added findutils as dependencies
## 11 March 2025
- Added uninstall script
- forked AGS v1 into JakooLit repo. This is just incase Aylur decide to take down v1
## 10 March 2025
- Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier
## 06 March 2025
- Switched to whiptail version for Y & N questions
- switched eza to lsd
## 23 Feb 2025
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
- added Fantasque Sans Mono Nerd for Kitty
## 22 Feb 2025
- replaced eog with loupe
- changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's
## 20 Feb 2025
- Added nwg-displays for the upcoming Kools dots v2.3.12
## 18 Feb 2025
- Change default zsh theme to adnosterzak
- pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling
- additional external oh-my-zsh theme
## 06 Feb 2025
- added semi-unattended function.
- move all the initial questions at the beginning
## 04 Feb 2025
- Re-coded for better visibility
- Offered a new SDDM theme.
- script will automatically detect if you have nvidia but script still offer if you want to set up for user
## 29 Jan 2025
- enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia
## 16 Jan 2025
- updated nvidia.sh to install non-git libva-nvidia-driver
- updated nvidia.sh to install non-git libva-nvidia-driver
## 13 Jan 2025
- replaced polkit-gnome with hyprpolkitagent
## 12 Jan 2025
- switch to final version of aylurs-gtk-shell-v1
## 11 Jan 2025
- added cachyos-hyprland-settings to uninstall
## 06 Jan 2025
- added copying of modified fastfetch-compact for Arch
- default theme for oh my zsh theme is now "funky"
- default theme for oh my zsh theme is now "funky"
## 26 Dec 2024
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
- integrated hyprcursor in Bibata Ice Cursor
## 15 Nov 2024
- revert Aylurs GTK Shell (AGS) to install older version
- added aylurs-gtk-shell to uninstall
## 20 Sep 2024
- User will be ask if they want to set Thunar as default file manager if they decided to install it
## 19 Sep 2024
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
## 18 Sep 2024
- dotfiles will now be downloaded from main or master branch instead of from the releases version.
## 14 Sep 2024
- remove the final error checks instead, introduced a final check of essential packages to ran Hyprland
## 08 Sep 2024
- Added final error checks on install-logs
## 07 Sep 2024
- added pulseaudio check
- added sof-firmware
## 29 Aug 2024
- switched over to non-git wallust package
- improved indentions on some install scripts
## 28 Aug 2024
- Added final check if hyprland is installed and will give an error to user
## 26 Aug 2024
- Set to uninstall rofi as conflicts with rofi-wayland
- added nvidia_drm.fbdev=1 for grub
## 14 Aug 2024
- added archlinux-keyring on base.sh
## 08 Aug 2024
- Increased to 1 sec delay for installing base-devel [commit](https://github.com/JaKooLit/Arch-Hyprland/commit/7ebfa06c3b186f9bec0bcf268fae401ba67dfc2a)
## 07 Jul 2024
- added eza (ls replacement for tty). Note only on .zshrc
## 25 Jun 2024
- added fbdev=1 for nvidia.sh on `/etc/modprobe.d/nvidia.conf`. see here `https://wiki.hyprland.org/Nvidia/#drm-kernel-mode-setting`
## 26 May 2024
- Added fzf for zsh (CTRL R to invoke FZF history)
## 23 May 2024
- added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C)
- added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc.
- added fastfetch
## 22 May 2024
- nwg-look is now in extra repo so replaced with nwg-look from nwg-look-bin
- change the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user
## 19 May 2024
- Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland
## 10 May 2024
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
## 08 May 2024
- Adjusted sddm.sh since it does not respect preset.sh
- install.sh have been rearranged so it quits if user choose not to proceed
## 07 May 2024
- Minor typo change on nvidia.sh
- switch back to cava since installing cava-git keep it hanging (see known-issue on readme)
## 05 May 2024
- switched to rofi-wayland Extra Repo
## 04 May 2024
- separated fonts installation script for easy debugging
## 03 May 2024
- added python3-pyquery for new weather-waybar python based on Hyprland-Dots
## 02 May 2024
- Added pyprland (hyprland plugin)
## 26 Apr 2024
- Updated sddm.sh for Qt6 variant
## 23 Apr 2024
- Dropping swayidle and swaylock in favor of hypridle and hyprlock
## 20 Apr 2024
- Change default Oh-my-zsh theme to xiong-chiamiov-plus
## 16 Mar 2024
- added hyprcursor
## 1 Mar 2024
- replaced sddm-git with sddm
## 11 Jan 2024
- dropped wlsunset
## 05 Jan 2024
- Added a preset feature
- Added templates for contributing, and reporting, etc
## 01 Jan 2024
- Re-coded complete and test
- Added to spice up pacman.conf including adding of ILoveCandy on it :)
## 30 Dec 2023
- Install scripts reconstructed
## 29 December 2023
- Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start
## 16 Dec 2023
- zsh theme switched to `agnoster` theme by default
- pywal tty color change disabled by default
## 13 Dec 2023
- switched hyprland to Extra Repo hyprland (both nvidia and non-nvidia). Seeing they are updating all the time :)
## 11 Dec 2023
- Changing over to zsh automatically if user opted
- If chose to install zsh and have no login manager, zsh auto login will auto start Hyprland
- added as optional, with zsh, pokemon colorscripts
- improved zsh install scripts, so even the existing zsh users of can still opt for zsh and oh-my-zsh installation :)
## 03 Dec 2023
- Added kvantum for qt apps theming
- return of wlogout due to theming issues of rofi-power
## 01 Dec 2023
- Added pipewire to install
## 30 Nov 2023
- switched to swaylock-effects-git as non-git does not seem to work
## 29 Nov 2023
- nvidia.sh edited to remove hyprland-nvidia-git as well
- nvidia.sh edited to remove hyprland-nvidia-git as well
## 26 Nov 2023
- nvidia - Move to hyprland-git. see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616)
## 25 Nov 2023
- drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power
## 23-Nov-2023
- Added Bibata cursor to install if opted for GTK Themes. However, it is not pre-applied. Use nwg-look utility to apply
## 19-Nov-2023
- Adjust dotfiles script to download from releases instead of from upstream

81
CODE_OF_CONDUCT.es.md Normal file
View File

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

View File

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

58
CONTRIBUTING.es.md Normal file
View File

@@ -0,0 +1,58 @@
# Guía para Contribuir a KooL Hyprland Projects (Arch)
[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/Arch-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/Arch-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/Arch-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/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug.yml)
- [feature.yml](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature.yml)
- [documentation-update.yml](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation-update.yml)
- [PULL_REQUEST_TEMPLATE.md](https://github.com/JaKooLit/Arch-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/Arch-Hyprland/blob/main/LICENSE.md)
- [README.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/README.md)
## Contacto
Para preguntas, usa [GitHub Discussions](https://github.com/JaKooLit/Arch-Hyprland/discussions) o el [Servidor de Discord](https://discord.gg/kool-tech-world).

View File

@@ -97,7 +97,7 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
- If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm-2) which is a modified fork of [`LINK`](https://github.com/Keyitdev/sddm-astronaut-theme)
- If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
#### 👀 NVidia GPU Owners.
#### 👀 Nvidia GPU Owners.
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory

View File

@@ -2,7 +2,7 @@
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland Packages #
# edit your packages desired here.
# edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly.
# and also, ensure that packages are present in AUR and official Arch Repo
@@ -11,24 +11,24 @@ Extra=(
)
hypr_package=(
hypr_package=(
#aylurs-gtk-shell
bc
cliphist
curl
grim
gvfs
curl
grim
gvfs
gvfs-mtp
hyprpolkitagent
imagemagick
inxi
inxi
jq
kitty
kvantum
libspng
nano
network-manager-applet
pamixer
nano
network-manager-applet
pamixer
pavucontrol
playerctl
python-requests
@@ -37,32 +37,33 @@ hypr_package=(
qt6ct
qt6-svg
rofi
slurp
swappy
swaync
slurp
swappy
swaync
swww
unzip # needed later
wallust
uwsm # In case someone selects USWM login
wallust
waybar
wget
wl-clipboard
wlogout
xdg-user-dirs
xdg-utils
xdg-utils
yad
)
# the following packages can be deleted. however, dotfiles may not work properly
hypr_package_2=(
brightnessctl
brightnessctl
btop
cava
loupe
fastfetch
gnome-system-monitor
mousepad
mousepad
mpv
mpv-mpris
mpv-mpris
nvtop
nwg-look
nwg-displays
@@ -84,11 +85,14 @@ uninstall=(
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
cd "$PARENT_DIR" || {
echo "${ERROR} Failed to change directory to $PARENT_DIR"
exit 1
}
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
@@ -96,8 +100,6 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
exit 1
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"

View File

@@ -0,0 +1,18 @@
#!/usr/bin/gjs -m
import { exit, programArgs, programInvocationName } from "system";
import GLib from "gi://GLib";
// Ensure GI can see typelibs in /usr/local and the system girepository
GLib.setenv("GI_TYPELIB_PATH", "/usr/local/lib:/usr/lib/girepository-1.0", true);
imports.package.init({
name: "com.github.Aylur.ags",
version: "1.9.0",
prefix: "/usr/local",
libdir: "/usr/local/lib",
});
const module = await import("resource:///com/github/Aylur/ags/main.js");
const exitCode = await module.main([programInvocationName, ...programArgs]);
exit(exitCode);

View File

@@ -38,22 +38,16 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
exit 1
fi
# Fail early and make pipelines fail if any command fails
set -eo pipefail
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
# Check if AGS is installed
if command -v ags &>/dev/null; then
AGS_VERSION=$(ags -v | awk '{print $NF}')
if [[ "$AGS_VERSION" == "1.9.0" ]]; then
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed. Skipping installation."
printf "\n%.0s" {1..2}
exit 0
fi
fi
# NOTE: We intentionally do NOT run `ags -v` here, because a broken AGS
# installation (missing GUtils, etc.) would crash gjs and spam errors
# during install. We always (re)install v1.9.0 when this script is run.
# Installation of main components
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${NOTE}"
@@ -76,35 +70,83 @@ fi
printf "\n%.0s" {1..1}
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
printf "\n%.0s" {1..1}
# Clone repository with the specified tag and capture git output into MLOG
# Clone repository with the specified tag and compile AGS
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
cd ags_v1.9.0 || exit 1
# Patch tsconfig to avoid TS5107 failure (moduleResolution=node10 deprecation)
if [ -f tsconfig.json ]; then
# 1) Ensure ignoreDeprecations is present
if ! grep -q '"ignoreDeprecations"[[:space:]]*:' tsconfig.json; then
sed -i 's/"compilerOptions":[[:space:]]*{/"compilerOptions": {\n "ignoreDeprecations": "6.0",/' tsconfig.json
fi
# 2) Bump moduleResolution from node10 to node16 if present
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
sed -i 's/"moduleResolution"[[:space:]]*:[[:space:]]*"node10"/"moduleResolution": "node16"/' tsconfig.json || true
fi
# 3) Fallback with Node to rewrite JSON if sed failed to catch patterns
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
if command -v node >/dev/null 2>&1; then
node -e '\n const fs = require("fs");\n const p = "tsconfig.json";\n const j = JSON.parse(fs.readFileSync(p, "utf8"));\n j.compilerOptions = j.compilerOptions || {};\n if (j.compilerOptions.moduleResolution === "node10") j.compilerOptions.moduleResolution = "node16";\n if (j.compilerOptions.ignoreDeprecations === undefined) j.compilerOptions.ignoreDeprecations = "6.0";\n fs.writeFileSync(p, JSON.stringify(j, null, 2));\n '
fi
fi
# Log what we ended up with for troubleshooting
echo "== tsconfig.json after patch ==" >> "$MLOG"
grep -n 'moduleResolution\|ignoreDeprecations' tsconfig.json >> "$MLOG" || true
fi
# Replace pam.ts with a stub that does NOT depend on GUtils at all.
# The desktop overview does not use PAM, and GUtils typelib support is
# inconsistent across distros, so we disable these helpers instead of
# crashing at startup when the typelib is missing.
if [ -f src/utils/pam.ts ]; then
printf "%s Replacing src/utils/pam.ts with PAM stub (no GUtils dependency)...\\n" "${NOTE}" | tee -a "$MLOG"
cat > src/utils/pam.ts <<'PAM_STUB'
// Stubbed PAM auth for AGS installed via Arch-Hyprland.
// The desktop overview does not use PAM, and GUtils typelib support
// is unreliable across distros, so we disable these helpers here.
export function authenticate(password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
export function authenticateUser(username: string, password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
PAM_STUB
fi
npm install
meson setup build
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
# Patch installed AGS launcher to ensure GI typelibs in /usr/local/lib are discoverable in GJS ESM
printf "${NOTE} Applying AGS launcher patch for GI typelibs search path...\n"
LAUNCHER="/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags"
if sudo test -f "$LAUNCHER"; then
# 1) Switch from GIRepository ESM import to GLib and drop deprecated prepend_* calls
sudo sed -i \
-e 's|^import GIR from "gi://GIRepository?version=2.0";$|import GLib from "gi://GLib";|' \
-e '/GIR.Repository.prepend_search_path/d' \
-e '/GIR.Repository.prepend_library_path/d' \
"$LAUNCHER"
# 2) Inject GI_TYPELIB_PATH export right after the GLib import
sudo awk '{print} $0 ~ /^import GLib from "gi:\/\/GLib";$/ {print "const __old = GLib.getenv(\"GI_TYPELIB_PATH\");"; print "GLib.setenv(\"GI_TYPELIB_PATH\", \"/usr/local/lib\" + (__old ? \":\" + __old : \"\"), true);"}' "$LAUNCHER" | sudo tee "$LAUNCHER" >/dev/null
printf "${OK} AGS launcher patched.\n"
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
printf "${WARN} Launcher not found at $LAUNCHER, skipping patch.\n"
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
# Abort here on build/install failure so we do NOT install a broken launcher
# or report success when AGS binaries are missing.
mv "$MLOG" ../Install-Logs/ || true
cd ..
exit 1
fi
else
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
fi
LAUNCHER_DIR="/usr/local/share/com.github.Aylur.ags"
LAUNCHER_PATH="$LAUNCHER_DIR/com.github.Aylur.ags"
sudo mkdir -p "$LAUNCHER_DIR"
# Install the known-good launcher we captured from a working system.
# This JS entry script uses GLib to set GI_TYPELIB_PATH and does not
# depend on GIRepository, which avoids missing-typelib crashes.
LAUNCHER_SRC="$SCRIPT_DIR/ags.launcher.com.github.Aylur.ags"
if [ -f "$LAUNCHER_SRC" ]; then
sudo install -m 755 "$LAUNCHER_SRC" "$LAUNCHER_PATH"
else
printf "${WARN} Saved launcher not found at %s; leaving Meson-installed launcher untouched.\\n" "$LAUNCHER_SRC" | tee -a "$MLOG"
fi
# Ensure /usr/local/bin/ags points to the JS entry script.
sudo mkdir -p /usr/local/bin
sudo ln -srf "$LAUNCHER_PATH" /usr/local/bin/ags
printf "${OK} AGS launcher installed.\\n"
# Move logs to Install-Logs directory
mv "$MLOG" ../Install-Logs/ || true
cd ..

View File

@@ -2,29 +2,33 @@
# 💫 https://github.com/JaKooLit 💫 #
# SDDM Log-in Manager #
sddm=(
qt6-declarative
sddm=(
qt6-declarative
qt6-svg
qt6-virtualkeyboard
qt6-multimedia-ffmpeg
qt5-quickcontrols2
sddm
)
# login managers to attempt to disable
login=(
lightdm
gdm3
gdm
lxdm
lightdm
gdm3
gdm
lxdm
lxdm-gtk3
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
cd "$PARENT_DIR" || {
echo "${ERROR} Failed to change directory to $PARENT_DIR"
exit 1
}
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
@@ -32,33 +36,30 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
exit 1
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
# Install SDDM and SDDM theme
printf "${NOTE} Installing sddm and dependencies........\n"
for package in "${sddm[@]}"; do
for package in "${sddm[@]}"; do
install_package "$package" "$LOG"
done
done
printf "\n%.0s" {1..1}
# Check if other login managers installed and disabling its service before enabling sddm
for login_manager in "${login[@]}"; do
if pacman -Qs "$login_manager" > /dev/null 2>&1; then
sudo systemctl disable "$login_manager.service" >> "$LOG" 2>&1
echo "$login_manager disabled." >> "$LOG" 2>&1
if pacman -Qs "$login_manager" >/dev/null 2>&1; then
sudo systemctl disable "$login_manager.service" >>"$LOG" 2>&1
echo "$login_manager disabled." >>"$LOG" 2>&1
fi
done
# Double check with systemctl
for manager in "${login[@]}"; do
if systemctl is-active --quiet "$manager" > /dev/null 2>&1; then
echo "$manager is active, disabling it..." >> "$LOG" 2>&1
sudo systemctl disable "$manager" --now >> "$LOG" 2>&1
if systemctl is-active --quiet "$manager" >/dev/null 2>&1; then
echo "$manager is active, disabling it..." >>"$LOG" 2>&1
sudo systemctl disable "$manager" --now >>"$LOG" 2>&1
fi
done
@@ -67,6 +68,10 @@ printf "${INFO} Activating sddm service........\n"
sudo systemctl enable sddm
wayland_sessions_dir=/usr/share/wayland-sessions
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
[ ! -d "$wayland_sessions_dir" ] && {
printf "$CAT - $wayland_sessions_dir not found, creating...\n"
sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"
}
printf "\n%.0s" {1..2}
printf "\n%.0s" {1..2}