Files
Dotfiles/run_once_60-configure-system.sh.tmpl
T

72 lines
2.5 KiB
Cheetah
Executable File

#!/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"