#!/bin/bash # run_once_50-configure-system.sh # System-level config, enable services and set some settings set -euo pipefail warn() { echo ">>> [configure] WARNING: $*" >&2; } SYS="{{ .system | default "desktop" }}" DISTRO_ID="{{ .chezmoi.osRelease.id | default "" }}" SRC="{{ .chezmoi.sourceDir }}" OS_PROBER="{{ .os_prober | default false }}" echo ">>> [configure] distro=$DISTRO_ID, system=$SYS, source=$SRC" services=( bluetooth cups greetd ) case "$DISTRO_ID" in arch) if [ "$SYS" != "server" ]; then echo ">>> [configure] enabling services" for service in "${services[@]}"; do if sudo systemctl enable "$service"; then echo "✓ $service: success" else echo "✗ $service: failed" fi done echo ">>> [configure] applying grub-theme" if [ -d /boot/grub/themes ]; then sudo mkdir -p /boot/grub/themes/minegrub sudo cp -r "$SRC/assets/minegrub/." /boot/grub/themes/minegrub/ if ! grep -q '^GRUB_THEME=' /etc/default/grub 2>/dev/null; then echo 'GRUB_THEME="/boot/grub/themes/minegrub/theme.txt"' \ | sudo tee -a /etc/default/grub >/dev/null sudo grub-mkconfig -o /boot/grub/grub.cfg fi else echo ">>> [configure] /boot/grub/themes missing — skipping grub theme install" fi if [ "$OS_PROBER" = "true" ]; then echo ">>> [configure] enabling GRUB os-prober" sudo sed -i -E 's/^#?GRUB_DISABLE_OS_PROBER=.*/GRUB_DISABLE_OS_PROBER=false/' /etc/default/grub if ! grep -q '^GRUB_DISABLE_OS_PROBER=' /etc/default/grub; then echo 'GRUB_DISABLE_OS_PROBER=false' | sudo tee -a /etc/default/grub >/dev/null fi echo ">>> [configure] grub.cfg regenerating with os-prober entries" sudo grub-mkconfig -o /boot/grub/grub.cfg \ || warn "grub-mkconfig failed (os-prober entries may not be applied)" else echo ">>> [configure] GRUB os-prober disabled (per user choice)" fi fi ;; ubuntu) echo ">>> [configure] ubuntu no configure system" ;; *) echo ">>> [configure] unsupported distro: ${DISTRO_ID:-unknown}, skipping" exit 0 ;; esac echo ">>> [configure] done"