mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 17:47:09 +00:00
quickshell and hyprland additions
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import qs.config
|
||||
import qs.modules.functions
|
||||
import qs.modules.components
|
||||
import qs.services
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
||||
SwipeView {
|
||||
id: view
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
// IntelligencePanel {}
|
||||
SystemOverview {}
|
||||
// WallpapersPage {}
|
||||
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
height: 2
|
||||
width: parent.width - Metrics.margin("verylarge")
|
||||
color: Appearance.m3colors.m3outlineVariant
|
||||
opacity: 0.6
|
||||
|
||||
anchors {
|
||||
top: view.top
|
||||
topMargin: segmentedIndicator.height + Metrics.margin("verysmall")
|
||||
horizontalCenter: view.horizontalCenter
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: activeTabIndicator
|
||||
|
||||
height: 2
|
||||
width: 96
|
||||
radius: Metrics.radius(1)
|
||||
color: Appearance.m3colors.m3primary
|
||||
x: (segmentedIndicator.width / view.count) * view.currentIndex + (segmentedIndicator.width / view.count - width) / 2
|
||||
|
||||
anchors {
|
||||
top: segmentedIndicator.bottom
|
||||
topMargin: Metrics.margin(8)
|
||||
}
|
||||
|
||||
Behavior on x {
|
||||
NumberAnimation {
|
||||
duration: Metrics.chronoDuration(220)
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Item {
|
||||
id: segmentedIndicator
|
||||
|
||||
height: 56
|
||||
width: parent.width
|
||||
|
||||
anchors {
|
||||
top: parent.top
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
Repeater {
|
||||
model: [
|
||||
// {
|
||||
// "icon": "neurology",
|
||||
// "text": "Intelligence"
|
||||
// },
|
||||
{
|
||||
"icon": "overview",
|
||||
"text": "Overview"
|
||||
},
|
||||
// {
|
||||
// "icon": "wallpaper",
|
||||
// "text": "Wallpapers"
|
||||
// }
|
||||
]
|
||||
|
||||
Item {
|
||||
width: segmentedIndicator.width / view.count
|
||||
height: parent.height
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: view.currentIndex = index
|
||||
}
|
||||
|
||||
// Icon (true center)
|
||||
MaterialSymbol {
|
||||
icon: modelData.icon
|
||||
iconSize: Metrics.iconSize("huge")
|
||||
color: view.currentIndex === index ? Appearance.m3colors.m3primary : Appearance.m3colors.m3onSurfaceVariant
|
||||
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
top: parent.top
|
||||
topMargin: Metrics.margin(12)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Label (independent centering)
|
||||
StyledText {
|
||||
text: modelData.text
|
||||
font.pixelSize: Metrics.fontSize("large")
|
||||
font.weight: Font.Medium
|
||||
color: view.currentIndex === index ? Appearance.m3colors.m3primary : Appearance.m3colors.m3onSurfaceVariant
|
||||
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
bottom: parent.bottom
|
||||
bottomMargin: 0
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user