Watch
1
0
Fork
You've already forked souveraine
0

settings: register twelve pages nothing could reach

Written, deployed to the phone, absent from pages[] — the only registry.
13 to 25. Power, search, updates, VPN and saved networks were finished
all along. MonitorConfig and KdeConfig stay out: hyprctl and Plasma.

Two laptop-isms cut from GeneralConfig first — it sed'd a hyprlock.conf
nothing reads, and shelled to a hardcoded Gemini script.
This commit is contained in:
Fimeg 2026-08-16 14:02:22 -04:00
commit 89a34ad994
2 changed files with 87 additions and 38 deletions

View file

@ -54,6 +54,31 @@ ApplicationWindow {
icon: "wifi",
component: "modules/settings/NetworkConfig.qml"
},
{
name: Translation.tr("Wi-Fi"),
icon: "network_wifi",
component: "modules/settings/system/WifiConfig.qml"
},
{
name: Translation.tr("Saved networks"),
icon: "wifi_password",
component: "modules/settings/system/WifiKnownConfig.qml"
},
{
name: Translation.tr("Wi-Fi advanced"),
icon: "settings_ethernet",
component: "modules/settings/system/WifiAdvancedConfig.qml"
},
{
name: Translation.tr("VPN"),
icon: "vpn_key",
component: "modules/settings/system/VpnConfig.qml"
},
{
name: Translation.tr("Bluetooth"),
icon: "bluetooth",
component: "modules/settings/system/BluetoothConfig.qml"
},
{
name: Translation.tr("Display"),
icon: "display_settings",
@ -104,12 +129,63 @@ ApplicationWindow {
icon: "mic",
component: "modules/settings/SpeechConfig.qml"
},
{
name: Translation.tr("General"),
icon: "tune",
component: "modules/settings/GeneralConfig.qml"
},
{
name: Translation.tr("Services"),
icon: "cloud_sync",
component: "modules/settings/ServicesConfig.qml"
},
{
name: Translation.tr("Interface"),
icon: "palette",
component: "modules/settings/InterfaceConfig.qml"
},
{
name: Translation.tr("Quick toggles"),
icon: "toggle_on",
component: "modules/settings/QuickConfig.qml"
},
{
name: Translation.tr("Status bar"),
icon: "web_asset",
component: "modules/settings/BarConfig.qml"
},
{
name: Translation.tr("Background & colours"),
icon: "format_paint",
component: "modules/settings/BackgroundConfig.qml"
},
{
name: Translation.tr("Advanced"),
icon: "code",
component: "modules/settings/AdvancedConfig.qml"
},
{
name: Translation.tr("About"),
icon: "info",
component: "modules/settings/About.qml"
}
// Next: app permissions/health, storage, accounts, updates.
// Twelve of the fourteen unregistered pages, added 2026-08-16. They
// were finished, deployed to the phone, and reachable by nothing
// `pages[]` is the only registry and none of them were in it. Same
// shape as the subconscious surface stranded for a week
// (`SHELL-SURFACES.md`) and `pose` sitting eleven days with no caller:
// a surface that never instantiates and one that renders nothing are
// byte-identical from outside.
//
// Deliberately still out:
// system/MonitorConfig.qml `Quickshell.Hyprland` + `hyprctl`, which
// do not exist under viewtop. Needs output verbs through
// `ViewtopControl` first.
// system/KdeConfig.qml upstream's Plasma page.
//
// Next: app permissions/health, storage, accounts, updates and the
// schema pass in SETTINGS-AUTHORITY.md, which is what stops this list
// being hand-maintained at all.
]
visible: false

View file

@ -10,12 +10,6 @@ import qs.modules.common.widgets
ContentPage {
forceWidth: true
Process {
id: translationProc
property string locale: ""
command: [Directories.aiTranslationScriptPath, translationProc.locale]
}
ContentSection {
icon: "volume_up"
title: Translation.tr("Audio")
@ -164,31 +158,11 @@ ContentPage {
}
}
}
ContentSubsection {
title: Translation.tr("Generate translation with Gemini")
tooltip: Translation.tr("You'll need to enter your Gemini API key first.\nType /key on the sidebar for instructions.")
ConfigRow {
MaterialTextArea {
id: localeInput
Layout.fillWidth: true
placeholderText: Translation.tr("Locale code, e.g. fr_FR, de_DE, zh_CN...")
text: Config.options.language.ui === "auto" ? Qt.locale().name : Config.options.language.ui
}
RippleButtonWithIcon {
id: generateTranslationBtn
Layout.fillHeight: true
nerdIcon: ""
enabled: !translationProc.running || (translationProc.locale !== localeInput.text.trim())
mainText: enabled ? Translation.tr("Generate\nTypically takes 2 minutes") : Translation.tr("Generating...\nDon't close this window!")
onClicked: {
translationProc.locale = localeInput.text.trim();
translationProc.running = false;
translationProc.running = true;
}
}
}
}
// Upstream's "Generate translation with Gemini" subsection is cut. It
// shelled to `Directories.aiTranslationScriptPath` with its own API key
// and a hardcoded provider a second model path beside `services/Ai.qml`
// and the Bifrost server, which is the "no hardcoded models" rule and a
// two-writer shape besides.
}
ContentSection {
@ -308,13 +282,12 @@ ContentPage {
ConfigSelectionArray {
currentValue: Config.options.time.format
// The two `sed`s that used to rewrite `~/.config/hypr/
// hyprlock.conf` are gone. `lock.useHyprlock` is false on this
// device the lock surface is `modules/souveraine/lock` so
// they edited a file nothing reads, and did it by shelling out
// to bash on every selection.
onSelected: newValue => {
if (newValue === "hh:mm") {
Quickshell.execDetached(["bash", "-c", `sed -i 's/\\TIME12\\b/TIME/' '${FileUtils.trimFileProtocol(Directories.config)}/hypr/hyprlock.conf'`]);
} else {
Quickshell.execDetached(["bash", "-c", `sed -i 's/\\TIME\\b/TIME12/' '${FileUtils.trimFileProtocol(Directories.config)}/hypr/hyprlock.conf'`]);
}
Config.options.time.format = newValue;
}
options: [