Commit 67bbcde

Ansari <ping@ansari.wtf>
2026-04-22 19:27:24
Triple monitor setup
1 parent 3afc662
Changed files (2)
.config
hypr
.wraith
.config/hypr/modules/windows.conf
@@ -1,9 +1,24 @@
-monitor=DP-1,1920x1080@144,auto,1
+monitor=HDMI-A-2,1920x1080@100Hz,-1080x0,1,transform,1
+monitor=DP-1,1920x1080@144,    0x420,1
+monitor=HDMI-A-1,1920x1080@100Hz,1920x0,1,transform,3
 
-workspace = 1, defaultName:AI,monitor:DP-1,persistent:true
-workspace = 2, defaultName:Code,monitor:DP-1,persistent:true
+workspace=1,monitor:HDMI-A-2
+workspace=2,monitor:HDMI-A-2
+workspace=3,monitor:HDMI-A-2
+
+workspace=4,monitor:DP-1
+workspace=5,monitor:DP-1
+workspace=6,monitor:DP-1
+
+workspace=7,monitor:HDMI-A-1
+workspace=8,monitor:HDMI-A-1
+workspace=9,monitor:HDMI-A-1
+
+
+workspace = 4, defaultName:AI,monitor:DP-1,persistent:true
+workspace = 5, defaultName:Code,monitor:DP-1,persistent:true
 # workspace = 3, defaultName:Terminal,monitor:DP-1,persistent:true
-workspace = 3, defaultName:Research,monitor:DP-1,persistent:true
+workspace = 6, defaultName:Research,monitor:DP-1,persistent:true
 # workspace = 5, defaultName:Forge,monitor:DP-1,persistent:true
 # Floating windows
 windowrule = float true,center true,size 875 600,match:tag floating-window
@@ -19,7 +34,8 @@ windowrule = rounding 8, match:tag pop
 windowrule = workspace Research, match:class ^(zen)$
 windowrule = workspace Code, match:class ^(code|code-oss|Code-Insiders)$
 windowrule = workspace AI, match:class ^(chrome-gemini.google.com.*|chrome-claude.ai.*|chrome-chatgpt.com.*)$
-windowrule = workspace 4, match:class ^(BambuStudio|blender|FreeCAD)$
+windowrule = workspace 1, match:class ^(BambuStudio|blender|FreeCAD)$
+windowrule = workspace 1, match:class ^(chrome-youtube\..*)$
 
 windowrule = float true,center true,size 1000 550,rounding 12,tag -floating-window,match:class org.wraith.about
 windowrule = workspace special:temp, match:class ^(discord)$
@@ -28,7 +44,7 @@ windowrule = float true,center true, size 1100 700, match:class steam, match:tit
 windowrule = size 460 800, match:class steam, match:title Friends List
 
 #Special Workspaces
-windowrule = workspace special:youtube, match:class ^(chrome-youtube\..*)$
+windowrule = workspace special:obs, match:class ^(com.obsproject.Studio)$
 windowrule = workspace special:music, match:class ^(chrome-music\.youtube\..*)$
 
 windowrule = float true,center true, match:class ^(bunnymail)
.wraith/scripts/wallpaper.sh
@@ -66,11 +66,42 @@ case "${#COLORS[@]}" in
         ;;
 esac
 
-# ── apply ─────────────────────────────────────────────────────────────────────
+# triple monitor setup
+CACHE="$HOME/.cache/awww-blend"
+mkdir -p "$CACHE"
+
+TOTAL_W=4080
+TOTAL_H=1920
+CENTER_Y=420
+
+TRANS="--transition-type wipe --transition-angle 0 --transition-fps 60 --transition-step 20"
+
+# Check source resolution before processing
+SRC_W=$(magick identify -format "%w" "$img")
+SRC_H=$(magick identify -format "%h" "$img")
+echo "Source: ${SRC_W}×${SRC_H} → Canvas: ${TOTAL_W}×${TOTAL_H}"
 
-swww img "$img" \
-    --transition-fps 60 \
-    --transition-type wipe
+if (( SRC_W < TOTAL_W || SRC_H < TOTAL_H )); then
+  echo "⚠ Image smaller than canvas — will be upscaled, expect some softness"
+fi
+
+# Lanczos = best quality filter for upscaling/downscaling
+magick "$img" \
+  -filter Lanczos \
+  -resize "${TOTAL_W}x${TOTAL_H}^" \
+  -gravity Center \
+  -extent "${TOTAL_W}x${TOTAL_H}" \
+  "$CACHE/base.png"
+
+magick "$CACHE/base.png" -crop "1080x1920+0+0"             +repage "$CACHE/left.png"
+magick "$CACHE/base.png" -crop "1920x1080+1080+${CENTER_Y}" +repage "$CACHE/center.png"
+magick "$CACHE/base.png" -crop "1080x1920+3000+0"           +repage "$CACHE/right.png"
+
+# ── apply ─────────────────────────────────────────────────────────────────────
+awww img -o HDMI-A-2 $TRANS "$CACHE/left.png"   &
+awww img -o DP-1     $TRANS "$CACHE/center.png" &
+awww img -o HDMI-A-1 $TRANS "$CACHE/right.png"  &
+wait
 
 matugen image "$img" \
     --type "scheme-${scheme}" \