mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 17:47:09 +00:00
487 lines
14 KiB
QML
487 lines
14 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import qs.modules.functions
|
|
import qs.services
|
|
import qs.config
|
|
import qs.modules.components
|
|
|
|
Item {
|
|
id: root
|
|
|
|
implicitWidth: 300
|
|
implicitHeight: parent ? parent.height : 500
|
|
|
|
ColumnLayout {
|
|
anchors.topMargin: Metrics.margin(90)
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("normal")
|
|
spacing: Metrics.margin("small")
|
|
|
|
// Header
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
|
|
RowLayout {
|
|
spacing: Metrics.margin("normal")
|
|
|
|
StyledText {
|
|
text: SystemDetails.osIcon
|
|
font.family: Metrics.fontFamily("nerdIcons")
|
|
font.pixelSize: Metrics.fontSize(48)
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
|
|
StyledText {
|
|
text: SystemDetails.osName
|
|
font.pixelSize: Metrics.fontSize("large")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
StyledText {
|
|
text: `${SystemDetails.username}@${SystemDetails.hostname}`
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
StyledText {
|
|
text: `qs ${SystemDetails.qsVersion}`
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
StyledText {
|
|
text: `nucleus-shell v${Config.runtime.shell.version}`
|
|
font.pixelSize: Metrics.fontSize("smaller")
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 56
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
|
|
StyledText {
|
|
text: "Uptime"
|
|
font.pixelSize: Metrics.fontSize("normal")
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.uptime
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 56
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
|
|
StyledText {
|
|
text: "Operating System"
|
|
font.pixelSize: Metrics.fontSize("normal")
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.osName
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
elide: Text.ElideRight
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 320
|
|
radius: Metrics.radius("large")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("large")
|
|
spacing: Metrics.margin("normal")
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(6)
|
|
|
|
RowLayout {
|
|
StyledText {
|
|
text: "CPU Usage"
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
animate: false
|
|
text: SystemDetails.cpuLoad
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
height: 10
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colLayer1
|
|
|
|
Rectangle {
|
|
width: parent.width * SystemDetails.cpuPercent
|
|
height: parent.height
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(6)
|
|
|
|
RowLayout {
|
|
StyledText {
|
|
text: "Ram Usage"
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
animate: false
|
|
text: SystemDetails.ramUsage
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
height: 10
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colLayer1
|
|
|
|
Rectangle {
|
|
width: parent.width * SystemDetails.ramPercent
|
|
height: parent.height
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(6)
|
|
|
|
RowLayout {
|
|
StyledText {
|
|
text: "Disk Usage"
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
animate: false
|
|
text: SystemDetails.diskUsage
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
height: 10
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colLayer1
|
|
|
|
Rectangle {
|
|
width: parent.width * SystemDetails.diskPercent
|
|
height: parent.height
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(6)
|
|
|
|
RowLayout {
|
|
StyledText {
|
|
text: "Swap Usage"
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.swapUsage
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
height: 10
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colLayer1
|
|
|
|
Rectangle {
|
|
width: parent.width * SystemDetails.swapPercent
|
|
height: parent.height
|
|
radius: Metrics.radius(5)
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 72
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
spacing: Metrics.margin("large")
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
|
|
StyledText {
|
|
text: "Kernel"
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.kernelVersion
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
StyledText {
|
|
text: "Architecture"
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.architecture
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 72
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
visible: UPower.batteryPresent
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
spacing: Metrics.margin("large")
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
|
|
StyledText {
|
|
text: "Battery"
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
}
|
|
|
|
StyledText {
|
|
text: `${Math.round(UPower.percentage)}%`
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: Metrics.spacing(2)
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
StyledText {
|
|
text: "AC"
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.colors.colSubtext
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
StyledText {
|
|
text: UPower.acOnline ? "online" : "battery"
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 56
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
|
|
StyledText {
|
|
text: "Running Processes"
|
|
font.pixelSize: Metrics.fontSize("normal")
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.runningProcesses
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
implicitHeight: 56
|
|
radius: Metrics.radius("normal")
|
|
color: Appearance.colors.colLayer2
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: Metrics.margin("small")
|
|
|
|
StyledText {
|
|
text: "Logged-in Users"
|
|
font.pixelSize: Metrics.fontSize("normal")
|
|
color: Appearance.colors.colPrimary
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
StyledText {
|
|
text: SystemDetails.loggedInUsers
|
|
font.pixelSize: Metrics.fontSize("small")
|
|
color: Appearance.m3colors.m3onSurface
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Item {
|
|
Layout.fillHeight: true
|
|
}
|
|
|
|
}
|
|
|
|
}
|