feat: dashboard show on hover, media and weather tabs added
This commit is contained in:
+36
-53
@@ -50,16 +50,17 @@ CustomWindow {
|
||||
readonly property alias menuRegion: regions.menuPopoutRegion
|
||||
readonly property HyprlandMonitor monitor: Hypr.monitorFor(screen)
|
||||
property var root: Quickshell.shellDir
|
||||
readonly property ScreenState screenState: ShellState.forScreen(screen)
|
||||
readonly property real sdfBorderOffset: 2 * fsTransitionProg
|
||||
readonly property real shadowOpacity: 0.7 * (1 - (bar.isHovered ? 0 : fsTransitionProg))
|
||||
property color surfaceColor: Colors.tPalette.m3surface
|
||||
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
WlrLayershell.keyboardFocus: visibilities.launcher || visibilities.settings ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None
|
||||
WlrLayershell.keyboardFocus: screenState.launcher || screenState.settings || screenState.sidebar ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None
|
||||
WlrLayershell.layer: (fsTransitionProg > 0 && Config.general.showOverFullscreen) || (hasSpecialWorkspace && hasFullscreenOnNormalWs) ? WlrLayer.Overlay : WlrLayer.Top
|
||||
color: "transparent"
|
||||
contentItem.focus: true
|
||||
mask: visibilities.isDrawing ? null : (hasFullscreen && !bar.isHovered ? emptyRegion : regions)
|
||||
mask: screenState.isDrawing ? null : (hasFullscreen && !bar.isHovered ? emptyRegion : regions)
|
||||
name: "Bar"
|
||||
|
||||
Behavior on fsTransitionProg {
|
||||
@@ -73,26 +74,26 @@ CustomWindow {
|
||||
|
||||
contentItem.Keys.onEscapePressed: {
|
||||
if (Config.bar.autoHide)
|
||||
visibilities.bar = false;
|
||||
visibilities.launcher = false;
|
||||
visibilities.sidebar = false;
|
||||
visibilities.dashboard = false;
|
||||
visibilities.osd = false;
|
||||
visibilities.settings = false;
|
||||
visibilities.resources = false;
|
||||
visibilities.dock = false;
|
||||
visibilities.clipboard = false;
|
||||
screenState.bar = false;
|
||||
screenState.launcher = false;
|
||||
screenState.sidebar = false;
|
||||
screenState.dashboard = false;
|
||||
screenState.osd = false;
|
||||
screenState.settings = false;
|
||||
screenState.resources = false;
|
||||
screenState.dock = false;
|
||||
screenState.clipboard = false;
|
||||
panels.popouts.hasCurrent = false;
|
||||
}
|
||||
onHasFullscreenChanged: {
|
||||
visibilities.launcher = false;
|
||||
visibilities.sidebar = false;
|
||||
visibilities.dashboard = false;
|
||||
visibilities.osd = false;
|
||||
visibilities.settings = false;
|
||||
visibilities.resources = false;
|
||||
visibilities.clipboard = false;
|
||||
visibilities.dock = false;
|
||||
screenState.launcher = false;
|
||||
screenState.sidebar = false;
|
||||
screenState.dashboard = false;
|
||||
screenState.osd = false;
|
||||
screenState.settings = false;
|
||||
screenState.resources = false;
|
||||
screenState.clipboard = false;
|
||||
screenState.dock = false;
|
||||
panels.popouts.hasCurrent = false;
|
||||
}
|
||||
|
||||
@@ -144,44 +145,26 @@ CustomWindow {
|
||||
HyprlandFocusGrab {
|
||||
id: focusGrab
|
||||
|
||||
active: visibilities.dock || visibilities.resources || visibilities.launcher || visibilities.sidebar || visibilities.dashboard || visibilities.settings || visibilities.clipboard || (panels.popouts.hasCurrent && panels.popouts.currentName.startsWith("traymenu") && (!Config.bar.tray.showOnHover || (panels.popouts.current as StackView)?.depth > 1))
|
||||
active: root.screenState.dock || root.screenState.resources || root.screenState.launcher || root.screenState.sidebar || (!Config.dashboard.showOnHover && root.screenState.dashboard) || root.screenState.settings || root.screenState.clipboard || (panels.popouts.hasCurrent && panels.popouts.currentName.startsWith("traymenu") && (!Config.bar.tray.showOnHover || (panels.popouts.current as StackView)?.depth > 1))
|
||||
windows: [root]
|
||||
|
||||
onCleared: {
|
||||
visibilities.launcher = false;
|
||||
visibilities.sidebar = false;
|
||||
visibilities.dashboard = false;
|
||||
visibilities.osd = false;
|
||||
visibilities.settings = false;
|
||||
visibilities.resources = false;
|
||||
visibilities.clipboard = false;
|
||||
visibilities.dock = false;
|
||||
root.screenState.launcher = false;
|
||||
root.screenState.sidebar = false;
|
||||
root.screenState.dashboard = false;
|
||||
root.screenState.osd = false;
|
||||
root.screenState.settings = false;
|
||||
root.screenState.resources = false;
|
||||
root.screenState.clipboard = false;
|
||||
root.screenState.dock = false;
|
||||
panels.popouts.hasCurrent = false;
|
||||
}
|
||||
}
|
||||
|
||||
PersistentProperties {
|
||||
id: visibilities
|
||||
|
||||
property bool bar
|
||||
property bool clipboard
|
||||
property bool dashboard
|
||||
property bool dock
|
||||
property bool isDrawing
|
||||
property bool launcher
|
||||
property bool notif: NotifServer.popups.length > 0
|
||||
property bool osd
|
||||
property bool resources
|
||||
property bool settings
|
||||
property bool sidebar
|
||||
|
||||
Component.onCompleted: Visibilities.load(root.screen, this)
|
||||
}
|
||||
|
||||
Binding {
|
||||
property: "bar"
|
||||
target: visibilities
|
||||
value: visibilities.sidebar || visibilities.dashboard || visibilities.osd || (!Config.bar.hideWhenNotif && visibilities.notif) || visibilities.resources || visibilities.settings || bar.isHovered
|
||||
target: root.screenState
|
||||
value: root.screenState.sidebar || root.screenState.dashboard || root.screenState.osd || (!Config.bar.hideWhenNotif && NotifServer.popups.length > 0) || root.screenState.resources || root.screenState.settings || bar.isHovered
|
||||
when: Config.bar.autoHide
|
||||
}
|
||||
|
||||
@@ -348,7 +331,7 @@ CustomWindow {
|
||||
|
||||
anchors.fill: parent
|
||||
layer.enabled: true
|
||||
visibilities: visibilities
|
||||
screenState: root.screenState
|
||||
z: 2
|
||||
|
||||
layer.effect: MultiEffect {
|
||||
@@ -389,7 +372,7 @@ CustomWindow {
|
||||
panels: panels
|
||||
popouts: panels.popouts
|
||||
screen: root.screen
|
||||
visibilities: visibilities
|
||||
screenState: root.screenState
|
||||
|
||||
Panels {
|
||||
id: panels
|
||||
@@ -399,7 +382,7 @@ CustomWindow {
|
||||
drawingItem: drawing
|
||||
geometry: geometry
|
||||
screen: root.screen
|
||||
visibilities: visibilities
|
||||
screenState: root.screenState
|
||||
|
||||
clipboard.transform: Matrix4x4 {
|
||||
matrix: clipboardBg.deformMatrix
|
||||
@@ -442,14 +425,14 @@ CustomWindow {
|
||||
anchors.bottom: geometry.barOnBottom ? parent.bottom : undefined
|
||||
anchors.left: parent.left
|
||||
anchors.top: geometry.barOnBottom ? undefined : parent.top
|
||||
enabled: !visibilities.isDrawing
|
||||
enabled: !screenState.isDrawing
|
||||
fullscreen: root.hasFullscreen
|
||||
height: geometry.horizontal ? implicitHeight : parent.height
|
||||
popouts: panels.popouts
|
||||
popoutsWrapper: panels.popoutsWrapper
|
||||
position: geometry.position
|
||||
screen: root.screen
|
||||
visibilities: visibilities
|
||||
screenState: root.screenState
|
||||
width: geometry.horizontal ? parent.width : implicitWidth
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user