summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xarchsetup12
-rw-r--r--assets/outbox/log-cleanup-cron-setup.txt22
-rw-r--r--assets/outbox/rebuild-test-vm.txt4
-rw-r--r--assets/outbox/rustup.txt7
-rw-r--r--dotfiles/common/.config/dunst/dunstrc2
-rwxr-xr-xdotfiles/common/.local/bin/cron/log-cleanup13
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf2
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprlock.conf13
-rwxr-xr-xscripts/testing/create-base-vm.sh4
-rw-r--r--scripts/testing/lib/validation.sh10
10 files changed, 81 insertions, 8 deletions
diff --git a/archsetup b/archsetup
index ab9478c..260afdb 100755
--- a/archsetup
+++ b/archsetup
@@ -1149,6 +1149,12 @@ EOF
action="enabling the batch delayed command scheduler" && display "task" "$action"
systemctl enable atd >> "$logfile" 2>&1 || error_warn "$action" "$?"
+ action="installing log cleanup cron job" && display "task" "$action"
+ (sudo -u "$username" crontab -l 2>/dev/null; \
+ echo "0 12 * * * \$HOME/.local/bin/cron/log-cleanup") \
+ | sudo -u "$username" crontab - \
+ >> "$logfile" 2>&1 || error_warn "$action" "$?"
+
# Package Repository Cache Maintenance
display "subtitle" "Package Repository Cache Maintenance"
@@ -1763,6 +1769,12 @@ developer_workstation() {
action="Developer Workstation" && display "title" "$action"
action="Programming Languages and Utilities" && display "subtitle" "$action"
+ # Rust (via rustup — must precede AUR packages that compile with rust)
+ pacman_install rustup # Rust toolchain manager
+ action="setting default rust toolchain to stable" && display "task" "$action"
+ (sudo -u "$username" rustup default stable >> "$logfile" 2>&1) || \
+ error_warn "$action" "$?"
+
# C
pacman_install clang # C/C++ compiler
pacman_install cmake # make system
diff --git a/assets/outbox/log-cleanup-cron-setup.txt b/assets/outbox/log-cleanup-cron-setup.txt
new file mode 100644
index 0000000..7549bc2
--- /dev/null
+++ b/assets/outbox/log-cleanup-cron-setup.txt
@@ -0,0 +1,22 @@
+Log Cleanup Cron Job
+====================
+
+Added: 2026-02-26
+
+What: Daily cleanup of session log files in ~/.local/var/log
+
+Problem: Hyprland, waybar, dunst, hypridle, and gammastep each create a new
+timestamped log file per session (e.g., dunst-2026-02-26-050000.log). Without
+cleanup these accumulate indefinitely (~270 files / 3MB as of Feb 2026).
+
+Solution: A cron job runs daily at noon, deleting .log files older than 7 days.
+
+Files added to archsetup:
+- dotfiles/common/.local/bin/cron/log-cleanup (the script)
+
+Installation on fresh system:
+1. Symlink is created by stow/dotfile install (same as checkup, crontog)
+2. Add to crontab:
+ crontab -e
+ # Add this line:
+ 0 12 * * * $HOME/.local/bin/cron/log-cleanup
diff --git a/assets/outbox/rebuild-test-vm.txt b/assets/outbox/rebuild-test-vm.txt
index f143a4d..1bdb410 100644
--- a/assets/outbox/rebuild-test-vm.txt
+++ b/assets/outbox/rebuild-test-vm.txt
@@ -1,3 +1,3 @@
-New archangel ISO available: archangel-vmlinuz-6.12.70-lts-2026-02-12-x86_64.iso
+New archangel ISO available: archangel-vmlinuz-6.12.73-lts-2026-02-22-x86_64.iso
Location: ~/downloads/isos/
-Rebuild the base test VM from this ISO to pick up linux-lts 6.12.70.
+Rebuild the base test VM from this ISO to pick up the new kernel.
diff --git a/assets/outbox/rustup.txt b/assets/outbox/rustup.txt
new file mode 100644
index 0000000..4266eea
--- /dev/null
+++ b/assets/outbox/rustup.txt
@@ -0,0 +1,7 @@
+Install rustup instead of the rust pacman package.
+
+pacman -S rustup
+rustup default stable
+
+This replaces the standalone rust package with rustup-managed toolchains.
+Switched on ratio on 2026-02-27 during system health check.
diff --git a/dotfiles/common/.config/dunst/dunstrc b/dotfiles/common/.config/dunst/dunstrc
index 6f8a3ec..bcfa533 100644
--- a/dotfiles/common/.config/dunst/dunstrc
+++ b/dotfiles/common/.config/dunst/dunstrc
@@ -40,6 +40,8 @@ icon_position = left
min_icon_size = 54
max_icon_size = 80
icon_corner_radius = 4
+icon_theme = "Papirus-Dark"
+enable_recursive_icon_lookup = true
# Misc/Advanced
dmenu = fuzzel --dmenu --prompt 'Open with'
diff --git a/dotfiles/common/.local/bin/cron/log-cleanup b/dotfiles/common/.local/bin/cron/log-cleanup
new file mode 100755
index 0000000..651982c
--- /dev/null
+++ b/dotfiles/common/.local/bin/cron/log-cleanup
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Deletes log files older than 7 days from ~/.local/var/log
+# Services (hyprland, waybar, dunst, hypridle, gammastep) create a new
+# timestamped log file per session. Without cleanup these accumulate.
+#
+# Intended to run daily via crontab.
+
+LOG_DIR="$HOME/.local/var/log"
+
+if [ -d "$LOG_DIR" ]; then
+ find "$LOG_DIR" -name "*.log" -mtime +7 -delete
+fi
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index b1107bb..0981dfc 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -15,7 +15,7 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR
# Portal restart (not start) reconnects stale portals on Hyprland restart.
# Backend portals (GTK, Hyprland) must restart BEFORE the main portal to avoid
# a 50s GTK settings proxy timeout. Waybar starts after portals are ready.
-exec-once = systemctl --user restart xdg-desktop-portal-hyprland xdg-desktop-portal-gtk && systemctl --user restart xdg-desktop-portal && waybar > ~/.local/var/log/waybar-$(date +%Y-%m-%d-%H%M%S).log 2>&1
+exec-once = systemctl --user restart xdg-desktop-portal-hyprland xdg-desktop-portal-gtk && systemctl --user restart xdg-desktop-portal && waybar 2>&1 | grep -v "LIBDBUSMENU-GLIB-WARNING" > ~/.local/var/log/waybar-$(date +%Y-%m-%d-%H%M%S).log
# Core services
exec-once = /usr/lib/polkit-kde-authentication-agent-1
diff --git a/dotfiles/hyprland/.config/hypr/hyprlock.conf b/dotfiles/hyprland/.config/hypr/hyprlock.conf
index fd85651..a4ce90e 100644
--- a/dotfiles/hyprland/.config/hypr/hyprlock.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprlock.conf
@@ -4,8 +4,15 @@
general {
disable_loading_bar = false
hide_cursor = true
- grace = 0
- no_fade_in = false
+}
+
+animations {
+ enabled = true
+ bezier = linear, 1, 1, 0, 0
+ animation = fadeIn, 1, 5, linear
+ animation = fadeOut, 1, 5, linear
+ animation = inputFieldDots, 1, 2, linear
+ animation = inputFieldColors, 1, 3, linear
}
background {
@@ -82,7 +89,7 @@ input-field {
check_color = rgb(d7af5f)
fail_color = rgb(d47c59)
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
- fail_transition = 300
+
capslock_color = rgb(ccc768)
numlock_color = -1
bothlock_color = -1
diff --git a/scripts/testing/create-base-vm.sh b/scripts/testing/create-base-vm.sh
index 9aa785b..11c40a7 100755
--- a/scripts/testing/create-base-vm.sh
+++ b/scripts/testing/create-base-vm.sh
@@ -43,10 +43,10 @@ if [ ! -f "$CONFIG_FILE" ]; then
fi
# Find archangel ISO in vm-images/
-ISO_PATH=$(find "$VM_IMAGES_DIR" -maxdepth 1 -name "archzfs-*.iso" -type f 2>/dev/null | sort -V | tail -1)
+ISO_PATH=$(find "$VM_IMAGES_DIR" -maxdepth 1 -name "archangel-*.iso" -type f 2>/dev/null | sort -V | tail -1)
if [ -z "$ISO_PATH" ]; then
fatal "No archangel ISO found in $VM_IMAGES_DIR/"
- info "Copy an archzfs-*.iso file to: $VM_IMAGES_DIR/"
+ info "Copy an archangel-*.iso file to: $VM_IMAGES_DIR/"
fi
info "Using ISO: $(basename "$ISO_PATH")"
diff --git a/scripts/testing/lib/validation.sh b/scripts/testing/lib/validation.sh
index de23809..5fa747d 100644
--- a/scripts/testing/lib/validation.sh
+++ b/scripts/testing/lib/validation.sh
@@ -689,6 +689,16 @@ validate_all_services() {
validate_service "cronie" "enabled" ""
validate_service "atd" "enabled" ""
+ # Cron job: log cleanup
+ step "Checking log-cleanup cron job"
+ local crontab_entry=$(ssh_cmd "sudo -u cjennings crontab -l 2>/dev/null | grep log-cleanup")
+ if [ -n "$crontab_entry" ]; then
+ validation_pass "log-cleanup cron job installed"
+ else
+ validation_fail "log-cleanup cron job not in crontab"
+ attribute_issue "log-cleanup cron job missing from user crontab" "archsetup"
+ fi
+
# Timer services
validate_service "reflector.timer" "enabled" ""
validate_service "paccache.timer" "enabled" ""