summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--dotfiles/common/.mbsyncrc2
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf12
-rwxr-xr-xdotfiles/hyprland/.local/bin/focus-restore9
-rwxr-xr-xscripts/testing/run-test.sh4
-rw-r--r--todo.org11
6 files changed, 38 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 3679c86..bbd5d28 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 stow restow reset unstow import common dwm hyprland
+.PHONY: help stow restow reset unstow import test common dwm hyprland
# Default target - show help
help:
@@ -29,6 +29,7 @@ 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 ""
@echo "Examples:"
@echo " make stow dwm # Fresh DWM install (common + dwm)"
@@ -37,6 +38,7 @@ help:
@echo " make reset hyprland # Resolve conflicts, keep repo version"
@echo " make import common # Import configs to common/"
@echo " make import hyprland # Import configs to hyprland/"
+ @echo " make test # Run full VM integration test"
@echo ""
# Prevent 'common', 'dwm' and 'hyprland' from being treated as file targets
@@ -121,3 +123,7 @@ import: check-dest
cd $(DOTFILES) && $(STOW) --restow $(DEST); \
echo ""; \
echo "Done. Don't forget to: git add -A && git commit"
+
+# Test - run full VM integration test suite
+test:
+ @bash scripts/testing/run-test.sh
diff --git a/dotfiles/common/.mbsyncrc b/dotfiles/common/.mbsyncrc
index 51dfae2..636791a 100644
--- a/dotfiles/common/.mbsyncrc
+++ b/dotfiles/common/.mbsyncrc
@@ -63,7 +63,7 @@ IMAPAccount cmail
Host 127.0.0.1
Port 1143
User c@cjennings.net
-PassCmd "cat ~/.config/.protonmailpass"
+PassCmd "cat ~/.config/.cmailpass"
TLSType NONE
AuthMechs LOGIN
CertificateFile /etc/ssl/certs/ca-certificates.crt
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 755edad..34e44b6 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -64,11 +64,11 @@ decoration {
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
- animation = windows, 1, 3, myBezier
- animation = windowsOut, 1, 3, default, popin 80%
- animation = fade, 1, 3, default
- animation = workspaces, 1, 3, default
- animation = specialWorkspace, 1, 3, default, slidevert
+ animation = windows, 1, 2, myBezier
+ animation = windowsOut, 1, 2, default, popin 80%
+ animation = fade, 1, 2, default
+ animation = workspaces, 1, 2, default
+ animation = specialWorkspace, 1, 2, default, slidevert
}
# ============================================================================
@@ -197,7 +197,7 @@ bind = $mod, D, layoutmsg, removemaster
# Focus mode (xtra-dispatchers plugin)
# O = "Only this window" / "bring back Others" / "close Others"
bind = $mod, O, exec, hyprctl dispatch plugin:xtd:throwunfocused 10
-bind = $mod SHIFT, O, exec, hyprctl dispatch plugin:xtd:bringallfrom 10
+bind = $mod SHIFT, O, exec, focus-restore
bind = $mod CTRL, O, exec, hyprctl dispatch plugin:xtd:closeunfocused
# Gaps (from DWM)
diff --git a/dotfiles/hyprland/.local/bin/focus-restore b/dotfiles/hyprland/.local/bin/focus-restore
new file mode 100755
index 0000000..7f87390
--- /dev/null
+++ b/dotfiles/hyprland/.local/bin/focus-restore
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Restore unfocused windows from workspace 10 without disrupting master position.
+# Records the focused window, brings all back, then swaps it back to master.
+
+FOCUSED=$(hyprctl activewindow -j | jq -r '.address')
+hyprctl dispatch plugin:xtd:bringallfrom 10
+sleep 0.1
+hyprctl dispatch focuswindow "address:$FOCUSED"
+hyprctl dispatch layoutmsg swapwithmaster master
diff --git a/scripts/testing/run-test.sh b/scripts/testing/run-test.sh
index a600870..c65961d 100755
--- a/scripts/testing/run-test.sh
+++ b/scripts/testing/run-test.sh
@@ -319,6 +319,10 @@ EOFREPORT
info "Test report saved: $REPORT_FILE"
+# Display report to terminal
+echo ""
+cat "$REPORT_FILE"
+
# Cleanup or keep VM
section "Cleanup"
diff --git a/todo.org b/todo.org
index bb71ce8..c90bb1f 100644
--- a/todo.org
+++ b/todo.org
@@ -137,6 +137,17 @@ Also, the text is quite large. For consistency, we should make it the same size
Fuzzel menu border blends in too much. Change border color to blue or red
to make the menu more visible when it appears.
+**** TODO [#C] Review theme config architecture for dunst/fuzzel
+The active dunst config is stowed from dotfiles/common/ but theme templates
+live in dotfiles/hyprland/.config/themes/. set-theme copies the templates to
+the stowed locations at runtime, so edits to the common file get overwritten
+on theme switch. This split between stowed configs and theme templates is
+error-prone — changes must be made in both places. Consider:
+- Having set-theme be the single source of truth (remove common dunstrc from stow)
+- Or symlinking the stowed config to a theme-managed location
+- Same situation applies to fuzzel.ini
+The goal is a single place to edit each config, not two.
+
**** TODO [#D] Consider Customizing Hyprland Animations
Current: windows pop in, scratchpads slide from bottom.