Fold thirty-one settings pages into fifteen categories with tabs
The sidebar was a flat scan of thirty-one rows; now it reads like a settings app. Multi-subject categories (Input, Network & Sharing, Applications, Users & Accounts, Privacy & Security, System) carry an Appearance-style tab strip above the page, drawn by the shell so the leaf pages themselves are untouched. The taxonomy lives in one new file, services/SettingsRoutes.qml; the sidebar, the strip, route validation, search breadcrumbs, and both generators derive from it. ShellState.settingsPage still holds leaf ids, so every deep link, IPC call, and search result keeps working — and now lands on the exact tab. Dictation moves out of Sound onto its own page under Input, with a handoff back to Sound for the microphone. The strip scrolls when System's nine tabs outgrow a tiled window. All 161 contracts pass. Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -42,8 +42,11 @@ rg -Fq 'HealthCheckRow 1.0 HealthCheckRow.qml' "$settings_dir/qmldir" \
|
||||
! rg -Fq 'ServicesPage 1.0 ServicesPage.qml' "$settings_dir/qmldir" \
|
||||
|| fail 'retired ServicesPage remains registered in the Settings QML module'
|
||||
|
||||
rg -Fq 'label: "System Health"' "$settings_dir/SettingsSidebar.qml" \
|
||||
|| fail 'sidebar does not label the stable services route System Health'
|
||||
# The route is named in SettingsRoutes now that it is a tab of System rather
|
||||
# than a sidebar row; the sidebar reads its labels from there.
|
||||
rg -Fq '{ page: "services", label: "System Health" }' \
|
||||
"$repo_dir/config/dot/quickshell/services/SettingsRoutes.qml" \
|
||||
|| fail 'the settings taxonomy does not label the stable services route System Health'
|
||||
rg -Fq 'onTapped: root.pageRequested("services")' "$settings_dir/SettingsSidebar.qml" \
|
||||
|| fail 'health footer does not open the stable services route'
|
||||
rg -Fq 'height: 54' "$settings_dir/SettingsSidebar.qml" \
|
||||
|
||||
Reference in New Issue
Block a user