summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rwxr-xr-xarchsetup11
-rw-r--r--dotfiles/common/.mbsyncrc2
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf19
-rwxr-xr-xdotfiles/hyprland/.local/bin/focus-restore9
-rwxr-xr-xscripts/testing/run-test.sh4
6 files changed, 44 insertions, 9 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/archsetup b/archsetup
index 0779d2b..63e53ec 100755
--- a/archsetup
+++ b/archsetup
@@ -1077,6 +1077,10 @@ EOF
systemctl enable avahi-daemon.service >> "$logfile" 2>&1 || error_warn "$action" "$?"
fi
+ pacman_install wsdd
+ action="enabling wsdd for Windows network discovery" && display "task" "$action"
+ systemctl enable wsdd.service >> "$logfile" 2>&1 || error_warn "$action" "$?"
+
pacman_install geoclue # geolocation service for location-aware apps
action="enabling geoclue geolocation service" && display "task" "$action"
systemctl enable geoclue.service >> "$logfile" 2>&1 || error_warn "$action" "$?"
@@ -1387,6 +1391,9 @@ hyprland() {
pacman_install brightnessctl # brightness control
pacman_install pamixer # audio control
pacman_install foot # native Wayland terminal
+ pacman_install nautilus # file manager
+ pacman_install sushi # nautilus spacebar file preview
+ aur_install nautilus-open-any-terminal # right-click "open in terminal" with configurable terminal
}
### Display Server (conditional)
@@ -1522,7 +1529,7 @@ desktop_environment() {
action="Audio System" && display "subtitle" "$action"
for software in alsa-utils pipewire wireplumber pipewire-pulse \
- pipewire-docs pamixer pulsemixer ffmpeg rtkit; do
+ pipewire-docs pamixer pulsemixer easyeffects ffmpeg rtkit; do
pacman_install "$software"
done
# disable the pc speaker beep
@@ -1870,6 +1877,8 @@ supplemental_software() {
aur_install snore-git # sleep with feedback
pacman_install thunar # file manager
pacman_install gvfs-smb # SMB network share browsing in Thunar
+ pacman_install wsdd # WS-Discovery daemon (Windows network discovery)
+ pacman_install gvfs-wsdd # WS-Discovery backend for gvfs (browse Windows shares)
aur_install topgrade # upgrade everything utility
aur_install ueberzug # allows for displaying images in terminals
aur_install warpinator # secure file transfers
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..15f47ce 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)
@@ -255,6 +255,7 @@ workspace = special:monitor, on-created-empty:foot --app-id foot-monitor gotop
workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp
workspace = special:htop, on-created-empty:foot --app-id foot-htop htop
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
@@ -262,6 +263,7 @@ bind = $mod, A, togglespecialworkspace, audio
bind = $mod, M, togglespecialworkspace, monitor
bind = $mod, SLASH, togglespecialworkspace, music
bind = $mod SHIFT, H, togglespecialworkspace, htop
+bind = $mod SHIFT, A, togglespecialworkspace, effects
# Window rules (using app-id/class matching, Hyprland 0.53+ syntax)
# Terminal scratchpad
@@ -294,6 +296,11 @@ 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/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"