aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/overview-trixie/modules/overview/Overview.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/overview-trixie/modules/overview/Overview.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/overview-trixie/modules/overview/Overview.qml')
-rw-r--r--config/quickshell/overview-trixie/modules/overview/Overview.qml252
1 files changed, 0 insertions, 252 deletions
diff --git a/config/quickshell/overview-trixie/modules/overview/Overview.qml b/config/quickshell/overview-trixie/modules/overview/Overview.qml
deleted file mode 100644
index 2fb08bb9..00000000
--- a/config/quickshell/overview-trixie/modules/overview/Overview.qml
+++ /dev/null
@@ -1,252 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Layouts
-import Quickshell
-import Quickshell.Io
-import Quickshell.Wayland
-import Quickshell.Hyprland
-import "../../common"
-import "../../services"
-import "."
-
-Scope {
- id: overviewScope
- Variants {
- id: overviewVariants
- model: Quickshell.screens
- PanelWindow {
- id: root
- required property var modelData
- readonly property HyprlandMonitor monitor: Hyprland.monitorFor(root.screen)
- property bool monitorIsFocused: (Hyprland.focusedMonitor?.id == monitor?.id)
- property bool blurEnabled: Config.options.overview.effects.enableBlur
- property bool backdropEnabled: Config.options.overview.effects.enableBackdrop
- property real backdropOpacity: Math.max(0, Math.min(1, Config.options.overview.effects.backdropOpacity))
- property bool closeOnFocusLoss: Config.options.overview.closeOnFocusLoss ?? true
- screen: modelData
- visible: GlobalStates.overviewOpen
-
- WlrLayershell.namespace: blurEnabled ? "quickshell:overview-blur" : "quickshell:overview"
- WlrLayershell.layer: WlrLayer.Overlay
- WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive
- color: "transparent"
-
- anchors {
- top: true
- bottom: true
- left: true
- right: true
- }
-
- HyprlandFocusGrab {
- id: grab
- windows: [root]
- property bool canBeActive: root.monitorIsFocused
- active: false
- onCleared: () => {
- // Only the monitor that owns the grab may close the overview
- if (root.closeOnFocusLoss && !active && canBeActive)
- GlobalStates.overviewOpen = false;
- }
- }
-
- Connections {
- target: GlobalStates
- function onOverviewOpenChanged() {
- if (GlobalStates.overviewOpen) {
- delayedGrabTimer.start();
- }
- }
- }
-
- // Re-evaluate grab ownership when focused monitor changes
- Connections {
- target: Hyprland
- function onFocusedMonitorChanged() {
- if (!GlobalStates.overviewOpen)
- return;
- // Transfer the grab to the newly focused monitor
- if (root.monitorIsFocused && !grab.active) {
- grab.active = true;
- } else if (!root.monitorIsFocused && grab.active) {
- grab.active = false;
- }
- }
- }
-
- Timer {
- id: delayedGrabTimer
- interval: Config.options.hacks.arbitraryRaceConditionDelay
- repeat: false
- onTriggered: {
- if (!grab.canBeActive)
- return;
- grab.active = GlobalStates.overviewOpen;
- }
- }
-
- // Keep the layershell surface full-screen so backdrop/blur are not constrained by content size.
- implicitWidth: screen.width
- implicitHeight: screen.height
-
- Item {
- id: keyHandler
- anchors.fill: parent
- visible: GlobalStates.overviewOpen
- focus: GlobalStates.overviewOpen
- z: 0
-
- Rectangle {
- id: backdropLayer
- anchors.fill: parent
- visible: root.backdropEnabled
- color: "#000000"
- opacity: root.backdropOpacity
- z: 0
- }
-
- MouseArea {
- id: outsideClickCatcher
- anchors.fill: parent
- acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
- enabled: root.closeOnFocusLoss && GlobalStates.overviewOpen
- z: 0
- onPressed: mouse => {
- GlobalStates.overviewOpen = false;
- mouse.accepted = true;
- }
- }
-
- Keys.onPressed: event => {
- // close: Escape or Enter
- if (event.key === Qt.Key_Escape || event.key === Qt.Key_Return) {
- GlobalStates.overviewOpen = false;
- event.accepted = true;
- return;
- }
-
- // Helper: compute current group bounds
- const workspacesPerGroup = Config.options.overview.rows * Config.options.overview.columns;
- const currentId = Hyprland.focusedMonitor?.activeWorkspace?.id ?? 1;
- const useWorkspaceMap = Config.options.overview.useWorkspaceMap;
- const workspaceMap = Config.options.overview.workspaceMap ?? [];
- const focusedMonitorId = Hyprland.focusedMonitor?.id ?? root.monitor?.id ?? 0;
- const workspaceOffset = useWorkspaceMap ? Number(workspaceMap[focusedMonitorId] ?? 0) : 0;
- const currentGroup = Math.floor((currentId - workspaceOffset - 1) / workspacesPerGroup);
- const minWorkspaceId = currentGroup * workspacesPerGroup + 1 + workspaceOffset;
- const maxWorkspaceId = minWorkspaceId + workspacesPerGroup - 1;
-
- const rows = Config.options.overview.rows;
- const columns = Config.options.overview.columns;
- const reverseColumns = Config.options.overview.orderRightLeft;
- const reverseRows = Config.options.overview.orderBottomUp;
-
- const clampedIndex = Math.max(0, Math.min(workspacesPerGroup - 1, currentId - minWorkspaceId));
- const currentNormalRow = Math.floor(clampedIndex / columns);
- const currentNormalColumn = clampedIndex % columns;
-
- function toVisualRow(normalRow) {
- return reverseRows ? (rows - normalRow - 1) : normalRow;
- }
-
- function toVisualColumn(normalColumn) {
- return reverseColumns ? (columns - normalColumn - 1) : normalColumn;
- }
-
- function toNormalRow(visualRow) {
- return reverseRows ? (rows - visualRow - 1) : visualRow;
- }
-
- function toNormalColumn(visualColumn) {
- return reverseColumns ? (columns - visualColumn - 1) : visualColumn;
- }
-
- let targetVisualRow = toVisualRow(currentNormalRow);
- let targetVisualColumn = toVisualColumn(currentNormalColumn);
-
- let targetId = null;
-
- // Arrow keys and vim-style hjkl
- if (event.key === Qt.Key_Left || event.key === Qt.Key_H) {
- targetVisualColumn = (targetVisualColumn - 1 + columns) % columns;
- } else if (event.key === Qt.Key_Right || event.key === Qt.Key_L) {
- targetVisualColumn = (targetVisualColumn + 1) % columns;
- } else if (event.key === Qt.Key_Up || event.key === Qt.Key_K) {
- targetVisualRow = (targetVisualRow - 1 + rows) % rows;
- } else if (event.key === Qt.Key_Down || event.key === Qt.Key_J) {
- targetVisualRow = (targetVisualRow + 1) % rows;
- }
-
- // Number keys: jump to workspace within the current group
- // 1-9 map to positions 1-9, 0 maps to position 10
- else if (event.key >= Qt.Key_1 && event.key <= Qt.Key_9) {
- const position = event.key - Qt.Key_0; // 1-9
- if (position <= workspacesPerGroup) {
- targetId = minWorkspaceId + position - 1;
- }
- } else if (event.key === Qt.Key_0) {
- // 0 = 10th workspace in the group (if group has 10+ workspaces)
- if (workspacesPerGroup >= 10) {
- targetId = minWorkspaceId + 9; // 10th position = offset 9
- }
- }
-
- if (targetId === null && (
- event.key === Qt.Key_Left || event.key === Qt.Key_H ||
- event.key === Qt.Key_Right || event.key === Qt.Key_L ||
- event.key === Qt.Key_Up || event.key === Qt.Key_K ||
- event.key === Qt.Key_Down || event.key === Qt.Key_J
- )) {
- const targetNormalRow = toNormalRow(targetVisualRow);
- const targetNormalColumn = toNormalColumn(targetVisualColumn);
- targetId = minWorkspaceId + targetNormalRow * columns + targetNormalColumn;
- }
-
- if (targetId !== null) {
- const clampedTarget = Math.max(minWorkspaceId, Math.min(maxWorkspaceId, targetId));
- if (Hyprland.usingLua) {
- Hyprland.dispatch(`hl.dsp.focus({workspace = '${clampedTarget}'})`);
- } else {
- Hyprland.dispatch("workspace " + clampedTarget);
- }
- event.accepted = true;
- }
- }
- }
-
- ColumnLayout {
- id: columnLayout
- visible: GlobalStates.overviewOpen
- z: 1
- anchors {
- horizontalCenter: parent.horizontalCenter
- top: parent.top
- topMargin: Config.options.position.topMargin
- }
-
- Loader {
- id: overviewLoader
- active: Config?.options.overview.enable ?? true
- sourceComponent: OverviewWidget {
- panelWindow: root
- visible: true
- }
- }
- }
- }
- }
-
- IpcHandler {
- target: "overview"
-
- function toggle() {
- GlobalStates.overviewOpen = !GlobalStates.overviewOpen;
- }
- function close() {
- GlobalStates.overviewOpen = false;
- }
- function open() {
- GlobalStates.overviewOpen = true;
- }
- }
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage