From f1837fdee1df25022a975e60a48ca6085b2d1b55 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Tue, 21 Apr 2026 01:23:39 +0100 Subject: feat(services): curated systemd units via just recipes Introduce systemd-units/.txt files paired by name with meta groups (systemd-units/base.txt <-> meta/base.txt). Units listed there are enabled by a new 'just services-enable' recipe, wired into 'just init' so bootstrap.sh no longer needs its own systemctl loop. New justfile recipes (Services section): services list curated units with enabled/active state services-enable idempotent 'systemctl enable --now', soft-fail per unit services-drift two-way diff vs systemctl list-unit-files bootstrap.sh drops its hardcoded 9-unit loop and laptop TLP block (~22 lines); 'just init' now handles it. tlp.service lives directly in systemd-units/base.txt (no laptop gating). --- bootstrap.sh | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) (limited to 'bootstrap.sh') diff --git a/bootstrap.sh b/bootstrap.sh index c5cbb26..dbe9495 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -70,43 +70,19 @@ cd "$DOTFILES_DIR" log 'running just init' just init -# 6. enable recommended systemd units for daemons that base.txt installs. -# Soft-fail: warn on a single failure but keep going. -log 'enabling system services' -for u in \ - fstrim.timer \ - systemd-timesyncd.service \ - systemd-resolved.service \ - reflector.timer \ - paccache.timer \ - pkgstats.timer \ - acpid.service \ - cpupower.service \ - iwd.service -do - sudo systemctl enable --now "$u" \ - || warn "could not enable $u" -done - -# tlp: laptops only -if ls /sys/class/power_supply/BAT* >/dev/null 2>&1; then - sudo systemctl enable --now tlp.service \ - || warn 'could not enable tlp.service' -fi - -# 7. refresh pacman mirrorlist once via reflector (config deployed by chezmoi) +# 6. refresh pacman mirrorlist once via reflector (config deployed by chezmoi) log 'refreshing pacman mirrorlist via reflector' sudo reflector @/etc/xdg/reflector/reflector.conf \ --save /etc/pacman.d/mirrorlist \ || warn 'reflector failed; keeping existing mirrorlist' -# 8. create XDG user directories (~/Documents, ~/Downloads, etc.) +# 7. create XDG user directories (~/Documents, ~/Downloads, etc.) if command -v xdg-user-dirs-update >/dev/null 2>&1; then log 'creating XDG user directories' xdg-user-dirs-update || warn 'xdg-user-dirs-update failed' fi -# 9. optional: create an Arch EFI boot entry if none exists +# 8. optional: create an Arch EFI boot entry if none exists if [ -d /sys/firmware/efi ]; then if ! sudo efibootmgr 2>/dev/null | grep -iq arch; then log 'no Arch Linux EFI boot entry found; launching create-efi' -- cgit v1.2.3-70-g09d2