forked from Shinonome/dots-hyprland
hefty: use ii overview for now; add global focus scrim
This commit is contained in:
@@ -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 {} }
|
||||||
|
|||||||
Reference in New Issue
Block a user