Take one machine's fingerprints off everyone's desktop
The audit's second tier: values that were measurements of the author's desktop, shipped to every machine as if they were defaults. Settings greeted every human as Gabriel; it now greets whoever accountsservice says is signed in, and nobody when it says nothing. The weather shipped his home coordinates and confidently reported his forecast anywhere on earth; it now ships unset, fetches nothing until a location is chosen, and the location row says so. The GTK bookmarks carried seven /home/gib paths and his file server into every file dialog; they are now generated per machine from a template and gitignored -- Nautilus edits the instance freely, the way settings.ini already worked one file over. Web search routed through his personal bang redirector; the engine is now the webSearchUrl preference with a DuckDuckGo default, read by both the script command and the suggestions extension, which the launcher-search contract already pins to one another. The GPU vitals path defaulted to his card1 and lost the readout on any machine enumerated differently; a machine with exactly one GPU now adopts it. And the Containers and Snapshots pages hide once a scan proves their backing stack absent, instead of rendering permanently empty on machines that never had podman or snapper. Lesser residue swept in the same pass: the DP-2 hyprpaper block one machine needed, the author's username-typo expansions (moved to his personal seed in user/, where personal content belongs), a capture fallback into /home/gib, and a parity table asserting one machine's hardware as fact. Claude-Session: https://claude.ai/code/session_01Epx9ZC1gwm81K3jm9x9CKh
This commit is contained in:
@@ -207,6 +207,8 @@ SettingsPage {
|
||||
title: "Search"
|
||||
subtitle: "Applications, files, the calculator, clipboard history, emoji, and open windows are all searched from the launcher."
|
||||
|
||||
TextEntryRow { setting: "webSearchUrl"; placeholder: "https://duckduckgo.com/?q=" }
|
||||
|
||||
TextRow {
|
||||
label: "Launcher"
|
||||
detail: SystemSettings.vicinaeActive
|
||||
|
||||
@@ -96,7 +96,17 @@ SettingsPage {
|
||||
return match[2] ? match[1] + " " + match[2].toUpperCase() : match[1];
|
||||
}
|
||||
|
||||
title: `${root.greeting}, Gabriel`
|
||||
// Greets whoever is signed in, from the same accountsservice record the
|
||||
// lock screen shows. This once hardcoded the author's first name, which
|
||||
// made the first screen of Settings wrong for every other human.
|
||||
readonly property string greetingName: {
|
||||
if (!UserAccounts.me)
|
||||
return "";
|
||||
const full = UserAccounts.displayName(UserAccounts.me);
|
||||
return full.split(" ")[0] || "";
|
||||
}
|
||||
|
||||
title: root.greetingName !== "" ? `${root.greeting}, ${root.greetingName}` : root.greeting
|
||||
lede: Weather.available
|
||||
? Math.round(Weather.temperature) + Weather.unitSuffix + " and "
|
||||
+ Weather.description.toLowerCase() + " in " + Settings.weatherLocation
|
||||
@@ -275,7 +285,7 @@ SettingsPage {
|
||||
|
||||
label: "Location"
|
||||
detail: "Only the search term is sent; the name is a label kept on this machine"
|
||||
value: Settings.weatherLocation
|
||||
value: Settings.weatherLocation !== "" ? Settings.weatherLocation : "Not set — choose one to see weather"
|
||||
|
||||
LocationPicker {
|
||||
width: parent.width
|
||||
|
||||
@@ -55,6 +55,22 @@ Rectangle {
|
||||
{ page: "about", label: "About", icon: "\u{F02FD}" }
|
||||
]
|
||||
|
||||
// Pages whose entire backing stack can be absent hide once a scan has
|
||||
// proven it absent: a Containers page with no podman and a Snapshots page
|
||||
// with no snapper configuration render permanently empty, which reads as
|
||||
// broken rather than inapplicable. Until the scan lands they stay
|
||||
// visible, so machines that have the stack never see a blink -- and both
|
||||
// scans fire when Settings opens (HomePage.onCompleted).
|
||||
function pageAvailable(page: string): bool {
|
||||
switch (page) {
|
||||
case "containers":
|
||||
return !Containers.scanned || Containers.available;
|
||||
case "snapshots":
|
||||
return !Snapshots.scanned || Snapshots.configs.length > 0;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
width: 272
|
||||
color: Theme.alpha(Theme.bgDark, 0.96)
|
||||
border.width: 0
|
||||
@@ -236,6 +252,7 @@ Rectangle {
|
||||
Rectangle {
|
||||
id: navItem
|
||||
required property var modelData
|
||||
visible: root.pageAvailable(modelData.page)
|
||||
width: parent.width
|
||||
height: 40
|
||||
radius: 10
|
||||
|
||||
Reference in New Issue
Block a user