Workspace overview
This commit is contained in:
74
Panes/Overview.qml
Normal file
74
Panes/Overview.qml
Normal file
@@ -0,0 +1,74 @@
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Widgets
|
||||
import Quickshell.Wayland
|
||||
|
||||
Grid {
|
||||
id: overview
|
||||
anchors {
|
||||
top: parent.top
|
||||
horizontalCenter: parent.horiontalCenter
|
||||
}
|
||||
spacing: 6
|
||||
padding: 6
|
||||
columns: 5
|
||||
horizontalItemAlignment: Grid.AlignHCenter
|
||||
verticalItemAlignment: Grid.AlignVCenter
|
||||
component WorkspaceView: ClippingRectangle {
|
||||
color: "#282828"
|
||||
width: 192
|
||||
radius: 8
|
||||
topLeftRadius: modelData == 0 ? 12 : this.radius
|
||||
topRightRadius: modelData == 4 ? 12 : this.radius
|
||||
bottomLeftRadius: modelData == 5 ? 12 : this.radius
|
||||
height: this.width * Hyprland.focusedMonitor?.height / Hyprland.focusedMonitor?.width
|
||||
border {
|
||||
width: 2
|
||||
color: {
|
||||
if (Hyprland.focusedWorkspace?.id == modelData + 1) {
|
||||
return "#ffffffff"
|
||||
}
|
||||
if (hover.hovered) {
|
||||
return "#aaffffff"
|
||||
}
|
||||
return "#00ffffff"
|
||||
|
||||
}
|
||||
Behavior on color { ColorAnimation {duration: 150} }
|
||||
}
|
||||
required property var modelData
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
source: Quickshell.shellPath('assets/wallpaper')
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
Repeater {
|
||||
model: Hyprland.toplevels.values.filter(tl => tl.workspace?.id == modelData + 1)
|
||||
delegate: ClippingRectangle {
|
||||
x: modelData.lastIpcObject.at[0] / 10 - 2
|
||||
y: modelData.lastIpcObject.at[1] / 10 - 2
|
||||
width: modelData.lastIpcObject.size[0] / 10
|
||||
height: modelData.lastIpcObject.size[1] / 10
|
||||
ScreencopyView {
|
||||
anchors.fill: parent
|
||||
captureSource: modelData.wayland
|
||||
live: background.index == 7
|
||||
}
|
||||
}
|
||||
}
|
||||
TapHandler { onTapped: {
|
||||
Hyprland.dispatch(`hl.dsp.focus({workspace = ${modelData + 1}})`)
|
||||
root.close()
|
||||
}}
|
||||
HoverHandler { id: hover }
|
||||
}
|
||||
Repeater {
|
||||
model: 9
|
||||
WorkspaceView {}
|
||||
}
|
||||
WorkspaceView {
|
||||
modelData: -100
|
||||
bottomRightRadius: 12
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user