Finish the wonderland: System told truthfully, in eight tabs instead of ten
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -8,7 +8,17 @@ SettingsPage {
|
||||
objectName: "system-health-page"
|
||||
|
||||
title: "System Health"
|
||||
lede: "Checks the parts of the desktop this app owns, and explains what needs attention."
|
||||
lede: root.ledeText
|
||||
|
||||
readonly property string ledeText: {
|
||||
if (Health.checks.length === 0)
|
||||
return "Checks the parts of the desktop this app owns, and explains what needs attention.";
|
||||
const count = Health.checks.length + (Health.checks.length === 1 ? " check" : " checks");
|
||||
if (root.issueChecks.length === 0)
|
||||
return count + " · everything healthy.";
|
||||
return count + " · " + root.issueChecks.length
|
||||
+ (root.issueChecks.length === 1 ? " needs" : " need") + " a look.";
|
||||
}
|
||||
|
||||
property var pendingConfirmation: null
|
||||
property string instructionTarget: ""
|
||||
@@ -43,11 +53,17 @@ SettingsPage {
|
||||
"integration.bluebubbles": "bluebubbles"
|
||||
})
|
||||
|
||||
function statusLabel(status: string): string {
|
||||
if (status === "ok") return "Healthy";
|
||||
if (status === "warning") return "Needs attention";
|
||||
if (status === "error") return "Action required";
|
||||
return "Not set up";
|
||||
// What a row says under its title. For a repair, that includes the command
|
||||
// the button would run -- said before it runs rather than in a log
|
||||
// afterwards. "Restart Vicinae" is what the button says; what it does is
|
||||
// run something as the person pressing it, and by the time a log could
|
||||
// tell them, the decision is already made.
|
||||
function repairDetail(check: var): string {
|
||||
const detail = String(check.detail ?? "");
|
||||
const command = String(check.repairCommand ?? "");
|
||||
if (command === "" || check.action?.kind !== "repair")
|
||||
return detail;
|
||||
return detail + " · Repair runs: " + command;
|
||||
}
|
||||
|
||||
function checksForGroup(group: string): var {
|
||||
@@ -285,6 +301,7 @@ SettingsPage {
|
||||
|
||||
width: issueRows.width
|
||||
check: modelData
|
||||
detailText: root.repairDetail(modelData)
|
||||
issue: true
|
||||
divider: index < issueRepeater.count - 1
|
||||
onActionRequested: check => root.handleAction(check)
|
||||
@@ -379,6 +396,7 @@ SettingsPage {
|
||||
|
||||
width: groupRows.width
|
||||
check: modelData
|
||||
detailText: root.repairDetail(modelData)
|
||||
divider: index < groupRepeater.count - 1
|
||||
onActionRequested: check => root.handleAction(check)
|
||||
}
|
||||
@@ -388,6 +406,26 @@ SettingsPage {
|
||||
}
|
||||
}
|
||||
|
||||
// Copying the report lives on the hero, where it has always been. Saving
|
||||
// one is the other half: a clipboard survives until the next copy, and a
|
||||
// report somebody is going to attach to a message has to be a file.
|
||||
SettingsCard {
|
||||
title: "Report"
|
||||
subtitle: "Everything the last check saw, with the repair commands, redacted the same way the clipboard copy is."
|
||||
|
||||
ActionRow {
|
||||
objectName: "health-save-report-row"
|
||||
label: "Save the report to a file"
|
||||
detail: Health.lastSaveResult !== ""
|
||||
? Health.lastSaveResult
|
||||
: Health.defaultReportPath
|
||||
action: "Save"
|
||||
enabled: Health.checks.length > 0
|
||||
divider: false
|
||||
onTriggered: Health.saveReport(Health.defaultReportPath)
|
||||
}
|
||||
}
|
||||
|
||||
SettingsCard {
|
||||
title: "Fedora system settings"
|
||||
subtitle: "These areas remain owned by Fedora and GNOME's mature system panels."
|
||||
@@ -427,14 +465,12 @@ SettingsPage {
|
||||
}
|
||||
}
|
||||
|
||||
ActionRow {
|
||||
objectName: "health-fedora-handoff:color"
|
||||
label: "Color profiles"
|
||||
detail: "Assigning an ICC profile here has no visible effect in this session: the colord daemon that loads it onto a display isn't running under Hyprland"
|
||||
action: "Open color"
|
||||
onTriggered: SystemSettings.openGnomePanel("color")
|
||||
}
|
||||
|
||||
// Color profiles used to have a row here whose own detail explained
|
||||
// that pressing it changed nothing -- the colord daemon that applies an
|
||||
// ICC profile is not running under Hyprland. A handoff that documents
|
||||
// its own uselessness is not a boundary, it is a dead button with an
|
||||
// apology attached, so it is gone. Digital wellbeing stays: GNOME
|
||||
// genuinely owns screen time, and that button genuinely works.
|
||||
ActionRow {
|
||||
objectName: "health-fedora-handoff:wellbeing"
|
||||
label: "Digital wellbeing"
|
||||
|
||||
Reference in New Issue
Block a user