diff options
| -rw-r--r-- | Makefile | 8 | ||||
| -rwxr-xr-x | archsetup | 11 | ||||
| -rw-r--r-- | dotfiles/common/.mbsyncrc | 2 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 19 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/focus-restore | 9 | ||||
| -rwxr-xr-x | scripts/testing/run-test.sh | 4 |
6 files changed, 44 insertions, 9 deletions
@@ -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 @@ -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" |
