hefty: use ii overview for now; add global focus scrim

This commit is contained in:
end-4
2026-03-08 21:02:47 +01:00
parent 54f4709d5f
commit 6eda3c674d
3 changed files with 62 additions and 49 deletions
@@ -47,48 +47,48 @@ HAbstractMorphedPanel {
return MaterialShapes.customPolygon(points, 1, new Offset.Offset(root.screenWidth / 2, edgeGap + contentHeight / 2)) return MaterialShapes.customPolygon(points, 1, new Offset.Offset(root.screenWidth / 2, edgeGap + contentHeight / 2))
} }
// Keybinds // // Keybinds
GlobalShortcut { // GlobalShortcut {
name: "searchToggle" // name: "searchToggle"
description: "Toggles search on press" // description: "Toggles search on press"
onPressed: { // onPressed: {
GlobalStates.overviewOpen = !GlobalStates.overviewOpen; // GlobalStates.overviewOpen = !GlobalStates.overviewOpen;
} // }
} // }
GlobalShortcut { // GlobalShortcut {
name: "searchToggleRelease" // name: "searchToggleRelease"
description: "Toggles search on release" // description: "Toggles search on release"
onPressed: { // onPressed: {
GlobalStates.superReleaseMightTrigger = true; // GlobalStates.superReleaseMightTrigger = true;
} // }
onReleased: { // onReleased: {
if (!GlobalStates.superReleaseMightTrigger) { // if (!GlobalStates.superReleaseMightTrigger) {
GlobalStates.superReleaseMightTrigger = true; // GlobalStates.superReleaseMightTrigger = true;
return; // return;
} // }
GlobalStates.overviewOpen = !GlobalStates.overviewOpen; // GlobalStates.overviewOpen = !GlobalStates.overviewOpen;
} // }
} // }
GlobalShortcut { // GlobalShortcut {
name: "searchToggleReleaseInterrupt" // name: "searchToggleReleaseInterrupt"
description: "Interrupts possibility of search being toggled on release. " + "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. " + "To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything." // description: "Interrupts possibility of search being toggled on release. " + "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. " + "To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything."
onPressed: { // onPressed: {
GlobalStates.superReleaseMightTrigger = false; // GlobalStates.superReleaseMightTrigger = false;
} // }
} // }
Connections { // Connections {
target: GlobalStates // target: GlobalStates
function onOverviewOpenChanged() { // function onOverviewOpenChanged() {
if (GlobalStates.overviewOpen) { // if (GlobalStates.overviewOpen) {
root.requestFocus(); // root.requestFocus();
} else { // } else {
root.dismissed(); // root.dismissed();
} // }
} // }
} // }
} }
@@ -2,8 +2,8 @@ import QtQuick
import Qt5Compat.GraphicalEffects import Qt5Compat.GraphicalEffects
import Quickshell import Quickshell
import Quickshell.Wayland import Quickshell.Wayland
import Quickshell.Hyprland import qs.modules.common
import qs import qs.modules.common.widgets
import qs.services import qs.services
import "../../common" import "../../common"
import "../../common/widgets/shapes" as S import "../../common/widgets/shapes" as S
@@ -33,6 +33,18 @@ PanelWindow {
mask: root.currentPanel.maskRegion mask: root.currentPanel.maskRegion
// HyprlandWindow.visibleMask: mask // TODO: use this later to optimize hyprland's rendering // HyprlandWindow.visibleMask: mask // TODO: use this later to optimize hyprland's rendering
///////////////// Focus dim //////////////////
FadeLoader {
z: 0
anchors.fill: parent
shown: GlobalFocusGrab.active
sourceComponent: Rectangle {
opacity: 0.4
color: Appearance.m3colors.m3scrim
}
}
///////////////// Content ////////////////// ///////////////// Content //////////////////
property alias roundedPolygon: backgroundShape.roundedPolygon property alias roundedPolygon: backgroundShape.roundedPolygon
@@ -50,6 +62,7 @@ PanelWindow {
} }
S.ShapeCanvas { S.ShapeCanvas {
id: backgroundShape id: backgroundShape
z: 1
anchors.fill: parent anchors.fill: parent
polygonIsNormalized: false polygonIsNormalized: false
roundedPolygon: MaterialShapes.customPolygon([new MaterialShapes.PointNRound(new Offset.Offset(root.screen.width, 0), new CornerRounding.CornerRounding(9999)),]) roundedPolygon: MaterialShapes.customPolygon([new MaterialShapes.PointNRound(new Offset.Offset(root.screen.width, 0), new CornerRounding.CornerRounding(9999)),])
@@ -125,13 +138,13 @@ PanelWindow {
shown: root.finishedMorphing shown: root.finishedMorphing
} }
HOverview { // HOverview {
id: overview // id: overview
load: root.currentPanel === this // load: root.currentPanel === this
shown: root.finishedMorphing // shown: root.finishedMorphing
onRequestFocus: root.currentPanel = overview // onRequestFocus: root.currentPanel = overview
onDismissed: root.dismiss() // onDismissed: root.dismiss()
} // }
} }
//////////////// Components ///////////////// //////////////// Components /////////////////
@@ -37,7 +37,7 @@ Scope {
PanelLoader { component: OnScreenDisplay {} } PanelLoader { component: OnScreenDisplay {} }
PanelLoader { component: OnScreenKeyboard {} } PanelLoader { component: OnScreenKeyboard {} }
PanelLoader { component: Overlay {} } PanelLoader { component: Overlay {} }
// PanelLoader { component: Overview {} } PanelLoader { component: Overview {} }
PanelLoader { component: Polkit {} } PanelLoader { component: Polkit {} }
PanelLoader { component: RegionSelector {} } PanelLoader { component: RegionSelector {} }
PanelLoader { component: ScreenCorners {} } PanelLoader { component: ScreenCorners {} }