summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile26
-rwxr-xr-xarchsetup8
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf12
-rw-r--r--scripts/testing/archsetup-test.conf3
-rwxr-xr-xscripts/testing/create-base-vm.sh3
5 files changed, 38 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 6d29788..e0e9237 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ DE := $(filter dwm hyprland,$(MAKECMDGOALS))
# Extract DEST from command line for import (e.g., 'make import common' -> DEST=common)
DEST := $(filter common dwm hyprland,$(MAKECMDGOALS))
-.PHONY: help deps stow restow reset unstow import test common dwm hyprland
+.PHONY: help deps stow restow reset unstow import test test-keep test-vm-base common dwm hyprland
# Default target - show help
help:
@@ -30,7 +30,9 @@ help:
@echo " reset Resolve conflicts, keep repo version - requires DE"
@echo " unstow Remove all symlinks - requires DE"
@echo " import Import new app configs into repo (fzf) - requires dest"
- @echo " test Run full VM test suite and report results"
+ @echo " test Run full VM test suite (creates base VM if needed)"
+ @echo " test-keep Run test and keep VM running for manual testing"
+ @echo " test-vm-base Create base VM only (runs archangel)"
@echo ""
@echo "Examples:"
@echo " make stow dwm # Fresh DWM install (common + dwm)"
@@ -139,6 +141,24 @@ import: check-dest
echo ""; \
echo "Done. Don't forget to: git add -A && git commit"
-# Test - run full VM integration test suite
+# Create base VM for testing (runs archangel only, no archsetup)
+test-vm-base:
+ @bash scripts/testing/create-base-vm.sh
+
+# Test - run full VM integration test suite (creates base VM if needed)
test:
+ @if [ ! -f vm-images/archsetup-base.qcow2 ] || \
+ ! qemu-img snapshot -l vm-images/archsetup-base.qcow2 2>/dev/null | grep -q "clean-install"; then \
+ echo "Base VM not found or missing snapshot, creating..."; \
+ bash scripts/testing/create-base-vm.sh; \
+ fi
@bash scripts/testing/run-test.sh
+
+# Test and keep VM running (for manual testing after archsetup)
+test-keep:
+ @if [ ! -f vm-images/archsetup-base.qcow2 ] || \
+ ! qemu-img snapshot -l vm-images/archsetup-base.qcow2 2>/dev/null | grep -q "clean-install"; then \
+ echo "Base VM not found or missing snapshot, creating..."; \
+ bash scripts/testing/create-base-vm.sh; \
+ fi
+ @bash scripts/testing/run-test.sh --keep
diff --git a/archsetup b/archsetup
index 2eae786..a2aaa2d 100755
--- a/archsetup
+++ b/archsetup
@@ -1306,9 +1306,15 @@ EOF
action="enabling grub-btrfsd for boot menu snapshots" && display "task" "$action"
systemctl enable grub-btrfsd >> "$logfile" 2>&1 || error_warn "$action" "$?"
- # Allow user to use snapper without root
+ # Allow user to use snapper without root (required for snapper-gui)
action="allowing wheel group to use snapper" && display "task" "$action"
snapper -c root set-config "ALLOW_GROUPS=wheel" >> "$logfile" 2>&1 || error_warn "$action" "$?"
+ snapper -c root set-config "SYNC_ACL=yes" >> "$logfile" 2>&1 || error_warn "$action" "$?"
+ # Set ACL on .snapshots directory for wheel group access
+ setfacl -m g:wheel:rx /.snapshots >> "$logfile" 2>&1 || error_warn "$action" "$?"
+
+ # Install snapper GUI (AUR)
+ aur_install snapper-gui-git
else
display "task" "ext4/other filesystem detected"
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 3eae5b6..de2e3fa 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -15,9 +15,9 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR
exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-portal
# Core services
-exec-once = hyprpm reload && sleep 1 && hyprctl dismissnotify -1
exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
exec-once = dunst > ~/.local/var/log/dunst-$(date +%Y-%m-%d-%H%M%S).log 2>&1
+exec-once = hyprpm reload && sleep 2 && hyprctl dismissnotify -1
# Desktop appearance (after portal is ready)
exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg
@@ -29,7 +29,7 @@ exec-once = hypridle > ~/.local/var/log/hypridle-$(date +%Y-%m-%d-%H%M%S).log 2>
exec-once = /usr/lib/geoclue-2.0/demos/agent
exec-once = gammastep > ~/.local/var/log/gammastep-$(date +%Y-%m-%d-%H%M%S).log 2>&1
exec-once = blueman-applet
-exec-once = easyeffects --gapplication-service
+exec-once = easyeffects
exec-once = mpd
# Apps that can start later
@@ -272,14 +272,11 @@ workspace = special:audio, on-created-empty:foot --app-id foot-audio pulsemixer
workspace = special:monitor, on-created-empty:foot --app-id foot-monitor monitor-dashboard
workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp
workspace = special:network, on-created-empty:foot --app-id foot-network nmtui
-workspace = special:effects, on-created-empty:easyeffects
-
# Keybindings (single bind per scratchpad - just toggle visibility)
bind = $mod SHIFT, RETURN, togglespecialworkspace, term
bind = $mod, A, togglespecialworkspace, audio
bind = $mod, M, togglespecialworkspace, monitor
bind = $mod, SLASH, togglespecialworkspace, music
-bind = $mod SHIFT, A, togglespecialworkspace, effects
# Window rules (using app-id/class matching, Hyprland 0.53+ syntax)
# Terminal scratchpad
@@ -307,11 +304,6 @@ windowrule = match:class ^(foot-network)$, float on
windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6)
windowrule = match:class ^(foot-network)$, center on
-# EasyEffects
-windowrule = match:class ^(Easy Effects)$, float on
-windowrule = match:class ^(Easy Effects)$, size (monitor_w*0.6) (monitor_h*0.6)
-windowrule = match:class ^(Easy Effects)$, center on
-
# Calculator (not a scratchpad, just launches app)
bind = $mod, X, exec, qalculate-gtk
bind = $mod, C, exec, hyprpicker -a
diff --git a/scripts/testing/archsetup-test.conf b/scripts/testing/archsetup-test.conf
index d6a8d69..a7f1364 100644
--- a/scripts/testing/archsetup-test.conf
+++ b/scripts/testing/archsetup-test.conf
@@ -2,6 +2,9 @@
# Used by create-base-vm.sh for fully automated base VM creation
#
# Usage: archangel --config-file /root/archsetup-test.conf
+#
+# Note: User creation is handled by archsetup, not archangel.
+# See archsetup-vm.conf for archsetup configuration.
FILESYSTEM=btrfs
HOSTNAME=archsetup-test
diff --git a/scripts/testing/create-base-vm.sh b/scripts/testing/create-base-vm.sh
index 7979bd2..6cecf99 100755
--- a/scripts/testing/create-base-vm.sh
+++ b/scripts/testing/create-base-vm.sh
@@ -132,6 +132,9 @@ else
warn "NetworkManager not active"
fi
+# Note: User creation is handled by archsetup, not here.
+# The clean-install snapshot captures the base system before archsetup runs.
+
# Power off for snapshot
stop_qemu
stop_timer "verify"