Compare commits
2 commits
adb6c21135
...
d85b65c6d9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d85b65c6d9 | ||
|
|
1d92463819 |
4 changed files with 89 additions and 44 deletions
|
|
@ -138,6 +138,51 @@ Column {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Overall CPU utilization chart
|
||||||
|
Item {
|
||||||
|
width: root.width
|
||||||
|
height: 44
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: _totalLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 12
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
text: S.SystemStats.cpuUsage + "%"
|
||||||
|
color: S.Theme.loadColor(S.SystemStats.cpuUsage)
|
||||||
|
font.pixelSize: S.Theme.fontSize - 1
|
||||||
|
font.family: S.Theme.fontFamily
|
||||||
|
font.bold: true
|
||||||
|
width: 32
|
||||||
|
}
|
||||||
|
|
||||||
|
SparklineCanvas {
|
||||||
|
anchors.left: _totalLabel.right
|
||||||
|
anchors.leftMargin: 6
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 12
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
height: 32
|
||||||
|
history: root._cpuHistory
|
||||||
|
strokeColor: root.accentColor
|
||||||
|
colorAt: v => S.Theme.loadColor(v)
|
||||||
|
active: root.active
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
property var _cpuHistory: []
|
||||||
|
onActiveChanged: if (active)
|
||||||
|
_cpuHistory = []
|
||||||
|
Connections {
|
||||||
|
target: S.SystemStats
|
||||||
|
function onCpuUsageChanged() {
|
||||||
|
if (!root.active)
|
||||||
|
return;
|
||||||
|
const h = root._cpuHistory.concat([S.SystemStats.cpuUsage]);
|
||||||
|
root._cpuHistory = h.length > 60 ? h.slice(h.length - 60) : h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Separator {}
|
Separator {}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
|
||||||
|
|
@ -70,19 +70,6 @@ Column {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Memory history sparkline
|
|
||||||
SparklineCanvas {
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 12
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.rightMargin: 12
|
|
||||||
height: 32
|
|
||||||
history: S.SystemStats.memHistory
|
|
||||||
strokeColor: root.accentColor
|
|
||||||
colorAt: v => S.Theme.loadColor(v)
|
|
||||||
active: root.active
|
|
||||||
}
|
|
||||||
|
|
||||||
// Breakdown rows
|
// Breakdown rows
|
||||||
InfoRow {
|
InfoRow {
|
||||||
label: "Used"
|
label: "Used"
|
||||||
|
|
@ -101,6 +88,19 @@ Column {
|
||||||
value: root._fmt(root.totalGb)
|
value: root._fmt(root.totalGb)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Memory history sparkline
|
||||||
|
SparklineCanvas {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 12
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 12
|
||||||
|
height: 32
|
||||||
|
history: S.SystemStats.memHistory
|
||||||
|
strokeColor: root.accentColor
|
||||||
|
colorAt: v => S.Theme.loadColor(v)
|
||||||
|
active: root.active
|
||||||
|
}
|
||||||
|
|
||||||
Separator {}
|
Separator {}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,36 @@ WlSessionLockSurface {
|
||||||
|
|
||||||
color: S.Theme.base00
|
color: S.Theme.base00
|
||||||
|
|
||||||
|
// Keyboard input via TextInput - engages Qt's full input pipeline including
|
||||||
|
// text-input protocol, which is more reliable than Keys on a plain Item in
|
||||||
|
// layer-shell/lock surfaces where raw wl_keyboard delivery can be flaky.
|
||||||
|
// Declared BEFORE visual content so it's below in z-order - widget TapHandlers
|
||||||
|
// receive mouse events, while keyboard activeFocus is independent of stacking.
|
||||||
|
TextInput {
|
||||||
|
id: _keyInput
|
||||||
|
anchors.fill: parent
|
||||||
|
focus: true
|
||||||
|
color: "transparent"
|
||||||
|
selectionColor: "transparent"
|
||||||
|
selectedTextColor: "transparent"
|
||||||
|
cursorVisible: false
|
||||||
|
enabled: !root._unlocking && root.auth.state !== "max" && root.auth.state !== "busy"
|
||||||
|
|
||||||
|
onTextChanged: if (root.auth)
|
||||||
|
root.auth.buffer = text
|
||||||
|
|
||||||
|
Keys.onReturnPressed: root.auth.submit()
|
||||||
|
Keys.onEnterPressed: root.auth.submit()
|
||||||
|
Keys.onEscapePressed: {
|
||||||
|
text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
onActiveFocusChanged: {
|
||||||
|
if (!activeFocus)
|
||||||
|
forceActiveFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
property real _unlockFade: 1
|
property real _unlockFade: 1
|
||||||
|
|
||||||
// Threat level: eased curve so fails 1-2 are subtle, 3+ ramps up.
|
// Threat level: eased curve so fails 1-2 are subtle, 3+ ramps up.
|
||||||
|
|
@ -194,36 +224,6 @@ WlSessionLockSurface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keyboard input via TextInput - engages Qt's full input pipeline including
|
|
||||||
// text-input protocol, which is more reliable than Keys on a plain Item in
|
|
||||||
// layer-shell/lock surfaces where raw wl_keyboard delivery can be flaky.
|
|
||||||
// Declared before content so it's below in z-order - content TapHandlers
|
|
||||||
// receive mouse events, while keyboard activeFocus is independent of stacking.
|
|
||||||
TextInput {
|
|
||||||
id: _keyInput
|
|
||||||
anchors.fill: parent
|
|
||||||
focus: true
|
|
||||||
color: "transparent"
|
|
||||||
selectionColor: "transparent"
|
|
||||||
selectedTextColor: "transparent"
|
|
||||||
cursorVisible: false
|
|
||||||
enabled: !root._unlocking && root.auth.state !== "max" && root.auth.state !== "busy"
|
|
||||||
|
|
||||||
onTextChanged: if (root.auth)
|
|
||||||
root.auth.buffer = text
|
|
||||||
|
|
||||||
Keys.onReturnPressed: root.auth.submit()
|
|
||||||
Keys.onEnterPressed: root.auth.submit()
|
|
||||||
Keys.onEscapePressed: {
|
|
||||||
text = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
onActiveFocusChanged: {
|
|
||||||
if (!activeFocus)
|
|
||||||
forceActiveFocus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (visible)
|
if (visible)
|
||||||
_keyInput.forceActiveFocus();
|
_keyInput.forceActiveFocus();
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ M.BarModule {
|
||||||
id: root
|
id: root
|
||||||
active: S.Modules.clock.enable
|
active: S.Modules.clock.enable
|
||||||
spacing: S.Theme.moduleSpacing
|
spacing: S.Theme.moduleSpacing
|
||||||
tooltip: Qt.formatDateTime(clock.date, "dddd, dd. MMMM yyyy")
|
tooltip: Qt.formatDateTime(clock.date, "dddd, dd. MMMM yyyy HH:mm:ss")
|
||||||
panelNamespace: "nova-clock"
|
panelNamespace: "nova-clock"
|
||||||
panelContentWidth: 220
|
panelContentWidth: 220
|
||||||
panelComponent: Component {
|
panelComponent: Component {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue