fix fresh install hang: split AGS into own module, remove obsolete packages

- Remove slow fallback loop from is_package_installed (only use expac)
- Move aylurs-gtk-shell from hyprland group to dedicated core/ags module
  with clear progress warning and user confirmation before build
- Install AUR packages one at a time in install_aur (better error isolation)
- Replace obsolete ttf-font-awesome with otf-font-awesome
- Remove p7zip (deleted from repos and AUR)
This commit is contained in:
2026-05-28 21:55:35 +02:00
parent 110ae9e4eb
commit 6f3e5e8f2d
4 changed files with 60 additions and 17 deletions

View File

@@ -19,6 +19,7 @@ export OMERON_FRESH_INSTALL
DEFAULT_MODULES=( DEFAULT_MODULES=(
"core/preflight" "core/preflight"
"core/packages" "core/packages"
"core/ags"
"core/dotfiles" "core/dotfiles"
"core/services" "core/services"
"homelab/setup" "homelab/setup"
@@ -29,6 +30,7 @@ DEFAULT_MODULES=(
FRESH_MODULES=( FRESH_MODULES=(
"core/packages" "core/packages"
"core/ags"
"core/dotfiles" "core/dotfiles"
"core/services" "core/services"
"homelab/setup" "homelab/setup"

View File

@@ -97,11 +97,6 @@ is_package_installed() {
{ for (i=2; i<=NF; i++) if ($i == pkg) {found=1; exit} } { for (i=2; i<=NF; i++) if ($i == pkg) {found=1; exit} }
END {exit !found} END {exit !found}
' && return 0 ' && return 0
else
while IFS= read -r installed; do
[[ -z "$installed" ]] && continue
pacman -Qi "$installed" 2>/dev/null | grep -qP "Provides\s*:\s*.*\b${pkg}\b" && return 0
done < <(pacman -Qq 2>/dev/null)
fi fi
return 1 return 1
fi fi
@@ -145,21 +140,23 @@ install_aur() {
return 1 return 1
fi fi
local to_install=()
local pkg local pkg
local rc=0
for pkg in "${packages[@]}"; do for pkg in "${packages[@]}"; do
if ! is_package_installed "$pkg"; then if is_package_installed "$pkg"; then
to_install+=("$pkg") continue
fi
tui_info "Installing $pkg from AUR..."
if "$aur_helper" -S --needed --noconfirm "$pkg"; then
tui_success "$pkg installed"
else
tui_warn "$pkg could not be installed"
rc=1
fi fi
done done
if ((${#to_install[@]})); then return $rc
log_info "Installing from AUR: ${to_install[*]}"
"$aur_helper" -S --needed --noconfirm "${to_install[@]}"
else
log_info "All AUR packages already installed"
fi
} }
replace_home_paths() { replace_home_paths() {

44
modules/core/ags.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
module_description() {
printf "AGS (Aylur's Gtk Shell) - Widget system for Hyprland\n"
}
module_required() { return 0; }
module_should_skip() {
command -v ags >/dev/null 2>&1
}
module_main() {
log_section "AGS Installation"
if command -v ags >/dev/null 2>&1; then
tui_success "AGS already installed"
return 0
fi
if ! have paru && ! have yay; then
tui_warn "No AUR helper found. Install ags manually: paru -S aylurs-gtk-shell"
return 0
fi
local aur_helper
have paru && aur_helper="paru" || aur_helper="yay"
local ags_pkg="aylurs-gtk-shell"
tui_warn "AGS must be built from source (npm install + Go + meson)."
tui_warn "This can take several minutes."
printf '\n'
if ! tui_confirm "Install AGS now?"; then
tui_info "AGS installation skipped. Run later: $aur_helper -S $ags_pkg"
return 0
fi
tui_info "Installing $ags_pkg from AUR..."
if "$aur_helper" -S --needed --noconfirm "$ags_pkg"; then
tui_success "AGS installed"
else
tui_warn "AGS installation failed. Try manually: $aur_helper -S $ags_pkg"
fi
}

View File

@@ -134,7 +134,7 @@ get_group_packages() {
brightnessctl playerctl \ brightnessctl playerctl \
grim slurp swappy hyprshot \ grim slurp swappy hyprshot \
wl-clipboard libnotify sshpass \ wl-clipboard libnotify sshpass \
hyprpolkitagent aylurs-gtk-shell awww hyprpolkitagent awww
;; ;;
gpu) gpu)
@@ -161,7 +161,7 @@ get_group_packages() {
fonts) fonts)
printf '%s\n' \ printf '%s\n' \
noto-fonts noto-fonts-emoji ttf-jetbrains-mono-nerd \ noto-fonts noto-fonts-emoji ttf-jetbrains-mono-nerd \
ttf-font-awesome ttf-nerd-fonts-symbols ttf-dejavu otf-font-awesome ttf-nerd-fonts-symbols ttf-dejavu
;; ;;
tools) tools)
@@ -182,7 +182,7 @@ get_group_packages() {
development) development)
printf '%s\n' \ printf '%s\n' \
git base-devel \ git base-devel \
zip unzip unrar p7zip \ zip unzip unrar \
ripgrep fd bat lsd \ ripgrep fd bat lsd \
htop btop fastfetch htop btop fastfetch
;; ;;