e8086e8528
plugins, new cursor, light/dark themes, new app launcher, ...
95 lines
1.8 KiB
QML
95 lines
1.8 KiB
QML
import Quickshell
|
|
import Quickshell.Hyprland
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
|
|
Scope {
|
|
id: root
|
|
property bool barVisible: false
|
|
|
|
Variants {
|
|
model: Quickshell.screens
|
|
|
|
Scope {
|
|
id: perScreen
|
|
required property var modelData
|
|
|
|
// invisible trigger zone at the top edge
|
|
PanelWindow {
|
|
id: trigger
|
|
screen: perScreen.modelData
|
|
visible: !root.barVisible
|
|
|
|
anchors {
|
|
top: true
|
|
left: true
|
|
right: true
|
|
}
|
|
|
|
exclusionMode: ExclusionMode.Ignore
|
|
implicitHeight: 4
|
|
color: "transparent"
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: root.barVisible = true
|
|
}
|
|
}
|
|
|
|
// the actual bar
|
|
PanelWindow {
|
|
id: bar
|
|
screen: perScreen.modelData
|
|
visible: root.barVisible
|
|
|
|
anchors {
|
|
top: true
|
|
left: true
|
|
right: true
|
|
}
|
|
|
|
exclusionMode: ExclusionMode.Ignore
|
|
implicitHeight: 32
|
|
color: "#e611111b"
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
propagateComposedEvents: true
|
|
// keep bar visible while mouse is on it
|
|
onExited: hideTimer.restart()
|
|
}
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.leftMargin: 12
|
|
anchors.rightMargin: 12
|
|
spacing: 0
|
|
|
|
Workspaces {
|
|
Layout.alignment: Qt.AlignLeft
|
|
}
|
|
|
|
Item { Layout.fillWidth: true }
|
|
|
|
SysTray {
|
|
Layout.alignment: Qt.AlignRight
|
|
Layout.rightMargin: 16
|
|
}
|
|
|
|
ClockWidget {
|
|
Layout.alignment: Qt.AlignRight
|
|
}
|
|
}
|
|
}
|
|
|
|
Timer {
|
|
id: hideTimer
|
|
interval: 500
|
|
onTriggered: root.barVisible = false
|
|
}
|
|
}
|
|
}
|
|
}
|