diff options
| author | Don Williams <Don.e.williams@gmail.com> | 2026-07-13 16:15:49 -0400 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-08-29 21:40:35 -0700 |
| commit | c8b343b98c203ac13d4b28bb269a735cf4c03475 (patch) | |
| tree | c76921ca2309c9595fdd02045f33fe9f1684176b /config/quickshell/qs-hyprview-unified/layouts/BandsLayout.qml | |
| parent | dcc2b56bd34846c5e8562bdb33ea63f3734d5ec0 (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/BandsLayout.qml')
| -rw-r--r-- | config/quickshell/qs-hyprview-unified/layouts/BandsLayout.qml | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/config/quickshell/qs-hyprview-unified/layouts/BandsLayout.qml b/config/quickshell/qs-hyprview-unified/layouts/BandsLayout.qml deleted file mode 100644 index 386ef92e..00000000 --- a/config/quickshell/qs-hyprview-unified/layouts/BandsLayout.qml +++ /dev/null @@ -1,174 +0,0 @@ -pragma Singleton -import Quickshell - -Singleton { - id: root - - function doLayout(windowList, outerWidth, outerHeight) { - var N = windowList.length - if (N === 0) return [] - - // Gap: 0.8% of screen, clamped between 12px and 24px - var rawGap = Math.min(outerWidth * 0.08, outerHeight * 0.08) - var gap = Math.max(12, Math.min(24, rawGap)) - - // Safe Area: 90% of the screen - var contentScale = 0.90 - var useW = outerWidth * contentScale - var useH = outerHeight * contentScale - - // Global offsets to center everything - var offX = (outerWidth - useW) / 2 - var offY = (outerHeight - useH) / 2 - - // Group by workspace - var groups = {} - var wsOrder = [] - - for (var i = 0; i < N; i++) { - var w = windowList[i] - var wsId = w.workspaceId - - if (!groups[wsId]) { - groups[wsId] = [] - wsOrder.push(wsId) - } - groups[wsId].push(w) - } - - var bandCount = wsOrder.length - if (bandCount === 0) return [] - - // Band height & max thumb height - - // Calculate the height allocated for each workspace band - var totalGapH = gap * (bandCount - 1) - var bandHeight = (useH - totalGapH) / bandCount - - // Aesthetic Cap: Even if we have only 1 workspace, - // windows shouldn't exceed 45% of screen height. - var absoluteMaxH = useH * 0.45 - - // The effective max height is the smaller of the two. - // If we have 10 bands, bandHeight will be small (e.g. 100px), so that rules. - // If we have 1 band, bandHeight is huge (1000px), so absoluteMaxH (450px) rules. - var localMaxH = Math.min(bandHeight, absoluteMaxH) - - // Minimum safety height to avoid division by zero errors - if (localMaxH < 10) localMaxH = 10 - - var result = [] - var currentY = offY - - // Process each band - for (var b = 0; b < bandCount; b++) { - var wsId = wsOrder[b] - var items = groups[wsId] - var itemCount = items.length - - // ROW LAYOUT CALCULATION (Justified) - var rows = [] - var currentRow = [] - var currentAspectSum = 0 - - for (var k = 0; k < itemCount; k++) { - var item = items[k] - var w0 = (item.width > 0) ? item.width : 100 - var h0 = (item.height > 0) ? item.height : 100 - var aspect = w0 / h0 - - var wrapper = { win: item.win, aspect: aspect } - - // Check overflow: (SumAspects * MaxH) + Gaps > Width - var hypotheticalWidth = (currentAspectSum + aspect) * localMaxH + (currentRow.length * gap) - - if (currentRow.length > 0 && hypotheticalWidth > useW) { - rows.push({ items: currentRow, aspectSum: currentAspectSum }) - currentRow = [] - currentAspectSum = 0 - } - - currentRow.push(wrapper) - currentAspectSum += aspect - } - if (currentRow.length > 0) { - rows.push({ items: currentRow, aspectSum: currentAspectSum }) - } - - // SCALE & FIT ROWS - // Calculate how tall the content actually is - var totalContentH = 0 - var finalRows = [] - - for (var r = 0; r < rows.length; r++) { - var rowObj = rows[r] - var rItems = rowObj.items - - // Optimal Height = (Available Width / Sum Aspects) - var availRowW = useW - (gap * (rItems.length - 1)) - var optimalH = availRowW / rowObj.aspectSum - - // Clamp to limits - if (optimalH > localMaxH) optimalH = localMaxH - - finalRows.push({ items: rItems, h: optimalH }) - totalContentH += optimalH - } - - // Add vertical gaps between rows inside the band - if (finalRows.length > 1) { - totalContentH += gap * (finalRows.length - 1) - } - - // If rows overflow the band height (rare, but possible with many windows), scale down - var scaleFactor = 1.0 - if (totalContentH > bandHeight) { - scaleFactor = bandHeight / totalContentH - totalContentH = bandHeight // Cap for centering math - } - - // GENERATE COORDINATES - // Center the content vertically within the band slot - // Note: If bandCount=1, bandHeight is huge (90% screen), but totalContentH is constrained by absoluteMaxH. - // This ensures the single row floats nicely in the middle. - var rowY = currentY + (bandHeight - totalContentH) / 2 - - for (var r2 = 0; r2 < finalRows.length; r2++) { - var fRow = finalRows[r2] - var rHeight = fRow.h * scaleFactor - var rItems2 = fRow.items - - // Calculate row width for horizontal centering - var actualRowW = 0 - for (var j = 0; j < rItems2.length; j++) { - actualRowW += (rItems2[j].aspect * rHeight) - } - actualRowW += gap * (rItems2.length - 1) - - var rowX = offX + (useW - actualRowW) / 2 - - for (var j2 = 0; j2 < rItems2.length; j2++) { - var it = rItems2[j2] - var finalW = it.aspect * rHeight - - result.push({ - win: it.win, - x: rowX, - y: rowY, - width: finalW, - height: rHeight - }) - - rowX += finalW + gap - } - - rowY += rHeight + (gap * scaleFactor) - } - - // Advance Y to the next band slot - currentY += bandHeight + gap - } - - return result - } -} |
