aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml
diff options
context:
space:
mode:
authorDon Williams <Don.e.williams@gmail.com>2026-07-13 16:15:49 -0400
committerPinapelz <yukais@pinapelz.com>2026-08-29 21:40:35 -0700
commitc8b343b98c203ac13d4b28bb269a735cf4c03475 (patch)
treec76921ca2309c9595fdd02045f33fe9f1684176b /config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml
parentdcc2b56bd34846c5e8562bdb33ea63f3734d5ec0 (diff)
Cleaning up quickshell builds
Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: deleted: overview-trixie/README.md deleted: overview-trixie/assets/Workspace_Wallpaper.png deleted: overview-trixie/assets/image.png deleted: overview-trixie/common/Appearance.qml deleted: overview-trixie/common/Config.qml deleted: overview-trixie/common/functions/ColorUtils.qml deleted: overview-trixie/common/functions/qmldir deleted: overview-trixie/common/qmldir deleted: overview-trixie/common/widgets/StyledRectangularShadow.qml deleted: overview-trixie/common/widgets/StyledText.qml deleted: overview-trixie/common/widgets/StyledToolTip.qml deleted: overview-trixie/common/widgets/StyledToolTipContent.qml deleted: overview-trixie/common/widgets/qmldir deleted: overview-trixie/config.example.json deleted: overview-trixie/config.json deleted: overview-trixie/modules/overview/Overview.qml deleted: overview-trixie/modules/overview/OverviewWidget.qml deleted: overview-trixie/modules/overview/OverviewWindow.qml deleted: overview-trixie/modules/overview/qmldir deleted: overview-trixie/quickshell-overview.qml deleted: overview-trixie/services/GlobalStates.qml deleted: overview-trixie/services/HyprlandData.qml deleted: overview-trixie/services/qmldir deleted: overview-trixie/shell.qml deleted: overview-unified/README.md deleted: overview-unified/assets/image.png deleted: overview-unified/common/Appearance.qml deleted: overview-unified/common/Config.qml deleted: overview-unified/common/functions/ColorUtils.qml deleted: overview-unified/common/functions/qmldir deleted: overview-unified/common/qmldir deleted: overview-unified/common/widgets/RectangularShadow.qml deleted: overview-unified/common/widgets/StyledRectangularShadow.qml deleted: overview-unified/common/widgets/StyledText.qml deleted: overview-unified/common/widgets/StyledToolTip.qml deleted: overview-unified/common/widgets/StyledToolTipContent.qml deleted: overview-unified/common/widgets/qmldir deleted: overview-unified/modules/overview/Overview.qml deleted: overview-unified/modules/overview/OverviewWidget.qml deleted: overview-unified/modules/overview/OverviewWindow.qml deleted: overview-unified/modules/overview/qmldir deleted: overview-unified/services/GlobalStates.qml deleted: overview-unified/services/HyprlandData.qml deleted: overview-unified/services/qmldir deleted: overview-unified/shell.qml renamed: overview-trixie/common/widgets/RectangularShadow.qml -> overview/common/widgets/RectangularShadow.qml modified: overview/common/widgets/qmldir deleted: qs-hyprview-unified/LICENSE deleted: qs-hyprview-unified/README.md deleted: qs-hyprview-unified/common/Appearance.qml deleted: qs-hyprview-unified/layouts/BandsLayout.qml deleted: qs-hyprview-unified/layouts/ColumnarLayout.qml deleted: qs-hyprview-unified/layouts/HeroLayout.qml deleted: qs-hyprview-unified/layouts/JustifiedLayout.qml deleted: qs-hyprview-unified/layouts/LayoutsManager.qml deleted: qs-hyprview-unified/layouts/MasonryLayout.qml deleted: qs-hyprview-unified/layouts/SatelliteLayout.qml deleted: qs-hyprview-unified/layouts/SmartGridLayout.qml deleted: qs-hyprview-unified/layouts/SpiralLayout.qml deleted: qs-hyprview-unified/layouts/StarggeredLayout.qml deleted: qs-hyprview-unified/layouts/VortexLayout.qml deleted: qs-hyprview-unified/layouts/qmldir deleted: qs-hyprview-unified/modules/Hyprview.qml deleted: qs-hyprview-unified/modules/SearchBox.qml deleted: qs-hyprview-unified/modules/WindowThumbnail.qml deleted: qs-hyprview-unified/modules/qmldir deleted: qs-hyprview-unified/qs-hyprview-template.qml deleted: qs-hyprview-unified/screenshots/bands.jpeg deleted: qs-hyprview-unified/screenshots/hero.jpeg deleted: qs-hyprview-unified/screenshots/masonry.jpeg deleted: qs-hyprview-unified/screenshots/satellite.jpeg deleted: qs-hyprview-unified/screenshots/smartgrid.jpeg deleted: qs-hyprview-unified/screenshots/spiral.jpeg deleted: qs-hyprview-unified/screenshots/staggered.jpeg deleted: qs-hyprview-unified/screenshots/vortex.jpeg deleted: qs-hyprview-unified/shell.qml modified: qs-hyprview/modules/WindowThumbnail.qml
Diffstat (limited to 'config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml')
-rw-r--r--config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml155
1 files changed, 0 insertions, 155 deletions
diff --git a/config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml b/config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml
deleted file mode 100644
index bcfc7abb..00000000
--- a/config/quickshell/qs-hyprview-unified/layouts/SpiralLayout.qml
+++ /dev/null
@@ -1,155 +0,0 @@
-pragma Singleton
-import Quickshell
-import Quickshell.Hyprland
-
-Singleton {
- id: root
-
- function doLayout(windowList, outerWidth, outerHeight, maxSplits) {
- var N = windowList.length
- if (N === 0) return []
-
- if (maxSplits === undefined) maxSplits = 3
-
- // Standard Gap: 0.8% of screen
- var rawGap = outerWidth * 0.008
- var gap = Math.max(8, Math.min(24, rawGap))
-
- // Primary Gap: The space between the first Big Window and the rest.
- // We make it 3x larger than the standard gap for emphasis.
- var primaryGap = gap * 3
-
- // Safe Area (90%)
- var contentScale = 0.90
- var useW = outerWidth * contentScale
- var useH = outerHeight * contentScale
- var offX = (outerWidth - useW) / 2
- var offY = (outerHeight - useH) / 2
-
- // Move Active Window to start
- var activeAddr = Hyprland.activeToplevel?.lastIpcObject?.address
- if (activeAddr) {
- var activeIdx = windowList.findIndex(it => it.lastIpcObject.address === activeAddr)
- if (activeIdx !== -1) {
- windowList = [windowList[activeIdx], ...windowList.filter(it => it !== windowList[activeIdx])]
- }
- }
-
- var result = []
-
- // Working area cursor
- var curX = offX
- var curY = offY
- var curW = useW
- var curH = useH
-
- // Items to process in Spiral mode
- var spiralCount = Math.min(N - 1, maxSplits)
-
- // Spiral cuts
- for (var k = 0; k < spiralCount; k++) {
- var sItem = windowList[k]
- var sBoxW, sBoxH
- var sBoxX = curX
- var sBoxY = curY
-
- // Logic change: Use 'primaryGap' only for the very first cut (k=0),
- // otherwise use standard 'gap'.
- var currentGap = (k === 0) ? primaryGap : gap
-
- if (curW > curH) { // Split Vertical
- // Calculate width subtracting the specific gap for this iteration
- sBoxW = (curW - currentGap) / 2
- sBoxH = curH
-
- // Shift working area for next items by the specific gap
- curX += sBoxW + currentGap
- curW -= (sBoxW + currentGap)
- } else { // Split Horizontal
- sBoxW = curW
- sBoxH = (curH - currentGap) / 2
-
- // Shift working area for next items by the specific gap
- curY += sBoxH + currentGap
- curH -= (sBoxH + currentGap)
- }
-
- // Aspect Fit
- var sw0 = (sItem.width > 0) ? sItem.width : 100
- var sh0 = (sItem.height > 0) ? sItem.height : 100
- var sScale = Math.min(sBoxW / sw0, sBoxH / sh0)
-
- result.push({
- win: sItem.win,
- x: sBoxX + (sBoxW - (sw0 * sScale))/2,
- y: sBoxY + (sBoxH - (sh0 * sScale))/2,
- width: sw0 * sScale,
- height: sh0 * sScale,
- isSpiral: true,
- index: k
- })
- }
-
- // Overflow grid
- var remainingItems = windowList.slice(spiralCount)
- var remN = remainingItems.length
-
- if (remN > 0) {
- // Standard Grid logic for the remaining box
- var bestCols = 1
- var bestScale = 0
- var TARGET_ASPECT = 16.0/9.0
-
- for (var c = 1; c <= remN; c++) {
- var r = Math.ceil(remN / c)
- var avW = curW - gap * (c - 1)
- var avH = curH - gap * (r - 1)
- if (avW <= 0 || avH <= 0) continue
-
- var cW = avW / c
- var cH = avH / r
- var sc = Math.min(cW / TARGET_ASPECT, cH)
-
- if (sc > bestScale) {
- bestScale = sc
- bestCols = c
- }
- }
-
- var remRows = Math.ceil(remN / bestCols)
- var finalCellW = (curW - gap * (bestCols - 1)) / bestCols
- var finalCellH = (curH - gap * (remRows - 1)) / remRows
-
- var gridContentH = remRows * finalCellH + (remRows - 1) * gap
- var gridStartY = curY + (curH - gridContentH) / 2
-
- for (var j = 0; j < remN; j++) {
- var rItem = remainingItems[j]
- var row = Math.floor(j / bestCols)
- var col = j % bestCols
-
- var itemsInRow = Math.min((row + 1) * bestCols, remN) - (row * bestCols)
- var rowW = itemsInRow * finalCellW + (itemsInRow - 1) * gap
- var rowStartX = curX + (curW - rowW) / 2
-
- var cellX = rowStartX + col * (finalCellW + gap)
- var cellY = gridStartY + row * (finalCellH + gap)
-
- var rw0 = (rItem.width > 0) ? rItem.width : 100
- var rh0 = (rItem.height > 0) ? rItem.height : 100
- var rSc = Math.min(finalCellW / rw0, finalCellH / rh0)
-
- result.push({
- win: rItem.win,
- x: cellX + (finalCellW - (rw0 * rSc))/2,
- y: cellY + (finalCellH - (rh0 * rSc))/2,
- width: rw0 * rSc,
- height: rh0 * rSc,
- isSpiral: false
- })
- }
- }
-
- return result
- }
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage