162 lines
6.5 KiB
QML
162 lines
6.5 KiB
QML
import QtQuick
|
||
import qs.config
|
||
import qs.services
|
||
|
||
Item {
|
||
id: root
|
||
|
||
readonly property int openedHour: new Date().getHours()
|
||
readonly property string greeting: openedHour < 12 ? "Good morning" : (openedHour < 18 ? "Good afternoon" : "Good evening")
|
||
|
||
Flickable {
|
||
anchors.fill: parent
|
||
clip: true
|
||
contentWidth: width
|
||
contentHeight: content.implicitHeight + 64
|
||
boundsBehavior: Flickable.StopAtBounds
|
||
|
||
Column {
|
||
id: content
|
||
width: parent.width - 68
|
||
x: 34
|
||
y: 30
|
||
spacing: 16
|
||
|
||
Text {
|
||
text: `${root.greeting}, Gabriel`
|
||
color: Theme.fg
|
||
font.family: Theme.fontFamily
|
||
font.pixelSize: 27
|
||
font.weight: Font.DemiBold
|
||
}
|
||
|
||
Text {
|
||
text: "Your Panama desktop is configured and ready."
|
||
color: Theme.fgDim
|
||
font.family: Theme.fontFamily
|
||
font.pixelSize: Theme.fontSize
|
||
bottomPadding: 6
|
||
}
|
||
|
||
SettingsCard {
|
||
title: SystemSettings.monitorDescription || "Active display"
|
||
subtitle: SystemSettings.monitorName || "Detecting your display…"
|
||
|
||
Row {
|
||
width: parent.width
|
||
height: 164
|
||
spacing: 28
|
||
|
||
Item {
|
||
width: parent.width * 0.47
|
||
height: parent.height
|
||
|
||
Rectangle {
|
||
width: Math.min(parent.width - 24, 260)
|
||
height: width * 0.64
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.top: parent.top
|
||
anchors.topMargin: 5
|
||
radius: 12
|
||
color: Theme.alpha(Theme.bgDark, 0.94)
|
||
border.width: 1
|
||
border.color: Theme.alpha(Theme.accent, 0.34)
|
||
|
||
Rectangle {
|
||
anchors.fill: parent
|
||
anchors.margins: 10
|
||
radius: 7
|
||
gradient: Gradient {
|
||
orientation: Gradient.Horizontal
|
||
GradientStop { position: 0; color: Theme.mix(Theme.bg, Theme.accent, 0.08) }
|
||
GradientStop { position: 1; color: Theme.mix(Theme.bg, Theme.accentSecondary, 0.08) }
|
||
}
|
||
|
||
Text {
|
||
anchors.centerIn: parent
|
||
text: SystemSettings.monitorName || "DISPLAY"
|
||
color: Theme.fgMuted
|
||
font.family: Theme.fontFamily
|
||
font.pixelSize: Theme.fontSizeSmall
|
||
font.letterSpacing: 1.5
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
Column {
|
||
width: parent.width * 0.47
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
spacing: 13
|
||
|
||
Text {
|
||
text: `${SystemSettings.monitorWidth} × ${SystemSettings.monitorHeight}`
|
||
color: Theme.fg
|
||
font.family: Theme.fontFamily
|
||
font.features: Theme.tabularFigures
|
||
font.pixelSize: Theme.fontSizeLarge
|
||
font.weight: Font.DemiBold
|
||
}
|
||
Text {
|
||
text: `${SystemSettings.monitorRefreshRate.toFixed(0)} Hz · ${SystemSettings.monitorScale.toFixed(1)}× scale`
|
||
color: Theme.fgDim
|
||
font.family: Theme.fontFamily
|
||
font.features: Theme.tabularFigures
|
||
font.pixelSize: Theme.fontSize
|
||
}
|
||
Text {
|
||
text: `${SystemSettings.monitorFormat || "Detecting format"} · ${SystemSettings.colorPreset || "standard color"}`
|
||
color: Theme.fgDim
|
||
font.family: Theme.fontFamily
|
||
font.pixelSize: Theme.fontSize
|
||
}
|
||
Text {
|
||
text: SystemSettings.autoHdr ? "Game-aware HDR is ready" : "Game-aware HDR is off"
|
||
color: SystemSettings.autoHdr ? Theme.ok : Theme.warn
|
||
font.family: Theme.fontFamily
|
||
font.pixelSize: Theme.fontSize
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
Row {
|
||
width: parent.width
|
||
spacing: 16
|
||
|
||
SettingsCard {
|
||
width: (parent.width - parent.spacing) / 2
|
||
title: "Quiet focus"
|
||
subtitle: "Notifications and focused work"
|
||
|
||
SettingRow {
|
||
label: "Do Not Disturb"
|
||
detail: Notifs.doNotDisturb ? "Banners are currently quiet" : "Notification banners are visible"
|
||
divider: false
|
||
controlWidth: 48
|
||
SettingsToggle {
|
||
anchors.right: parent.right
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
checked: Notifs.doNotDisturb
|
||
onToggled: value => Notifs.doNotDisturb = value
|
||
}
|
||
}
|
||
}
|
||
|
||
SettingsCard {
|
||
width: (parent.width - parent.spacing) / 2
|
||
title: "Desktop services"
|
||
subtitle: "The essentials are running"
|
||
|
||
SettingRow {
|
||
label: "Sync & remote access"
|
||
detail: `${SystemSettings.nextcloudActive ? "Nextcloud ready" : "Nextcloud stopped"} · ${SystemSettings.rustdeskActive ? "RustDesk ready" : "RustDesk stopped"}`
|
||
divider: false
|
||
value: SystemSettings.nextcloudActive && SystemSettings.rustdeskActive ? "Healthy" : "Review"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|