rewrite bar with quickshell
This commit is contained in:
178
quickshell/Modules/Misc/Corners.qml
Normal file
178
quickshell/Modules/Misc/Corners.qml
Normal file
@@ -0,0 +1,178 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
import qs.Constants
|
||||
import qs.Modules.Misc
|
||||
import qs.Services
|
||||
|
||||
Scope {
|
||||
id: rootScope
|
||||
|
||||
property var shell
|
||||
property string namespace: "quickshell-corners"
|
||||
property int topMargin: 45
|
||||
property int cornerHeight: 20
|
||||
property real cornerSize: 1
|
||||
property real opacity: Niri.noFocus ? 0 : 1
|
||||
|
||||
Item {
|
||||
id: cornersRootItem
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
||||
Item {
|
||||
property var modelData
|
||||
|
||||
PanelWindow {
|
||||
id: fakeBar
|
||||
|
||||
anchors.top: true
|
||||
anchors.left: true
|
||||
anchors.right: true
|
||||
color: "transparent"
|
||||
screen: modelData
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
visible: true
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
aboveWindows: false
|
||||
WlrLayershell.namespace: namespace
|
||||
implicitHeight: topMargin
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: Colors.base
|
||||
opacity: rootScope.opacity
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PanelWindow {
|
||||
id: topLeftPanel
|
||||
|
||||
anchors.top: true
|
||||
anchors.left: true
|
||||
color: "transparent"
|
||||
screen: modelData
|
||||
margins.top: topMargin
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
visible: true
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
aboveWindows: false
|
||||
WlrLayershell.namespace: namespace
|
||||
implicitHeight: cornerHeight
|
||||
|
||||
Corner {
|
||||
id: topLeftCorner
|
||||
|
||||
position: "bottomleft"
|
||||
size: rootScope.cornerSize
|
||||
offsetX: -32
|
||||
offsetY: 0
|
||||
anchors.top: parent.top
|
||||
opacity: rootScope.opacity
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PanelWindow {
|
||||
id: topRightPanel
|
||||
|
||||
anchors.top: true
|
||||
anchors.right: true
|
||||
color: "transparent"
|
||||
screen: modelData
|
||||
margins.top: topMargin
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
visible: true
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
aboveWindows: false
|
||||
WlrLayershell.namespace: namespace
|
||||
implicitHeight: cornerHeight
|
||||
|
||||
Corner {
|
||||
id: topRightCorner
|
||||
|
||||
position: "bottomright"
|
||||
size: rootScope.cornerSize
|
||||
offsetX: 32
|
||||
offsetY: 0
|
||||
anchors.top: parent.top
|
||||
opacity: rootScope.opacity
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PanelWindow {
|
||||
id: bottomLeftPanel
|
||||
|
||||
anchors.bottom: true
|
||||
anchors.left: true
|
||||
color: "transparent"
|
||||
screen: modelData
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
visible: true
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
aboveWindows: false
|
||||
WlrLayershell.namespace: namespace
|
||||
implicitHeight: cornerHeight
|
||||
|
||||
Corner {
|
||||
id: bottomLeftCorner
|
||||
|
||||
position: "topleft"
|
||||
size: rootScope.cornerSize
|
||||
offsetX: -32
|
||||
offsetY: 0
|
||||
anchors.top: parent.top
|
||||
opacity: rootScope.opacity
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PanelWindow {
|
||||
id: bottomRightPanel
|
||||
|
||||
anchors.bottom: true
|
||||
anchors.right: true
|
||||
color: "transparent"
|
||||
screen: modelData
|
||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
||||
visible: true
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
aboveWindows: false
|
||||
WlrLayershell.namespace: namespace
|
||||
implicitHeight: cornerHeight
|
||||
|
||||
Corner {
|
||||
id: bottomRightCorner
|
||||
|
||||
position: "topright"
|
||||
size: rootScope.cornerSize
|
||||
offsetX: 32
|
||||
offsetY: 0
|
||||
anchors.top: parent.top
|
||||
opacity: rootScope.opacity
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Behavior on opacity {
|
||||
NumberAnimation {
|
||||
duration: 1000
|
||||
easing.type: Easing.InOutCubic
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user