We now own the pinned shell, so the runtime patches that the pacman-hook + patch-script machinery re-applied after every caelestia-shell upgrade are baked directly into source. Folds in all five caelestia-shell-targeting patches from the builder's `os updates/`: - Lock PAM (F1, blocker): ship faillock-free assets/pam.d/caelestia and point modules/lock/Pam.qml's passwd PamContext at it (config "passwd" -> "caelestia"). A desktop screen-lock must never lock the user out of their own session. - Updates page: add modules/nexus/pages/UpdatesPage.qml + register it in the first System slot of PageCompRegistry.qml. - Additions page: add modules/nexus/pages/AdditionsPage.qml + register it in the Plugins slot; relabel Plugins -> Additions in PageRegistry.qml. - Sudo toggle: add modules/nexus/common/SudoToggleRow.qml + insert it into ServicesPage.qml after the Smart colour scheme toggle. - Wi-Fi wrong-password recovery: NetworkConnection.qml saved-profile branch now passes a real callback that forgets the bad profile and reopens the dialog. The builder will drop the corresponding patch-*.sh calls + pacman hooks and bump NOSIGNAL_SHELL_COMMIT to this commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
190 lines
4.6 KiB
QML
190 lines
4.6 KiB
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import Caelestia.Config
|
|
import qs.components
|
|
import qs.services
|
|
import qs.modules.nexus.common
|
|
import qs.modules.nexus.pages
|
|
import qs.modules.nexus.pages.audio
|
|
import qs.modules.nexus.pages.bluetooth
|
|
import qs.modules.nexus.pages.panels
|
|
import qs.modules.nexus.pages.wallandstyle
|
|
import qs.modules.nexus.pages.panels.taskbar
|
|
|
|
QtObject {
|
|
id: root
|
|
|
|
readonly property list<Component> pageComps: [
|
|
// Appearance
|
|
Component {
|
|
// Wallpaper & style
|
|
StackPage {
|
|
Component {
|
|
WallpaperAndStyle {}
|
|
}
|
|
Component {
|
|
WallpaperSelect {}
|
|
}
|
|
Component {
|
|
WallpaperCategory {}
|
|
}
|
|
Component {
|
|
ColourSelect {}
|
|
}
|
|
}
|
|
},
|
|
|
|
// Connectivity
|
|
Component {
|
|
// Network
|
|
StackPage {
|
|
Component {
|
|
NetworkPage {}
|
|
}
|
|
}
|
|
},
|
|
Component {
|
|
// Bluetooth
|
|
StackPage {
|
|
Component {
|
|
BluetoothPage {}
|
|
}
|
|
Component {
|
|
BtDeviceInfo {}
|
|
}
|
|
Component {
|
|
BluetoothPairing {}
|
|
}
|
|
}
|
|
},
|
|
Component {
|
|
// Audio
|
|
StackPage {
|
|
Component {
|
|
AudioPage {}
|
|
}
|
|
Component {
|
|
AppVolumes {}
|
|
}
|
|
}
|
|
},
|
|
|
|
// System
|
|
Component {
|
|
// Updates (NoSignal)
|
|
StackPage {
|
|
Component {
|
|
UpdatesPage {}
|
|
}
|
|
}
|
|
},
|
|
Component {
|
|
// Additions (NoSignal)
|
|
StackPage {
|
|
Component {
|
|
AdditionsPage {}
|
|
}
|
|
}
|
|
},
|
|
|
|
// Shell
|
|
Component {
|
|
// Panels
|
|
StackPage {
|
|
Component {
|
|
PanelsPage {}
|
|
}
|
|
Component {
|
|
DashboardPanel {}
|
|
}
|
|
Component {
|
|
TaskbarPanel {}
|
|
}
|
|
Component {
|
|
LauncherPanel {}
|
|
}
|
|
Component {
|
|
SidebarPanel {}
|
|
}
|
|
|
|
// Taskbar component sub-pages
|
|
Component {
|
|
BarWorkspaces {}
|
|
}
|
|
Component {
|
|
BarActiveWindow {}
|
|
}
|
|
Component {
|
|
BarTray {}
|
|
}
|
|
Component {
|
|
BarStatusIcons {}
|
|
}
|
|
Component {
|
|
BarClock {}
|
|
}
|
|
}
|
|
},
|
|
Component {
|
|
// Services
|
|
StackPage {
|
|
Component {
|
|
ServicesPage {}
|
|
}
|
|
}
|
|
},
|
|
Component {
|
|
// Language & region
|
|
StackPage {
|
|
Component {
|
|
LanguageAndRegion {}
|
|
}
|
|
}
|
|
},
|
|
|
|
// About
|
|
Component {
|
|
StackPage {
|
|
Component {
|
|
AboutPage {}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
readonly property Component placeholderComp: Component {
|
|
PlaceholderComp {}
|
|
}
|
|
|
|
component PlaceholderComp: Item {
|
|
property NexusState nState // To avoid the warning from non-existent property
|
|
|
|
ColumnLayout {
|
|
anchors.centerIn: parent
|
|
spacing: Tokens.padding.extraSmall
|
|
|
|
MaterialIcon {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
text: "handyman"
|
|
color: Colours.palette.m3outlineVariant
|
|
font: Tokens.font.icon.extraLarge
|
|
}
|
|
|
|
StyledText {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
text: qsTr("Page under construction")
|
|
color: Colours.palette.m3outlineVariant
|
|
font: Tokens.font.title.large
|
|
}
|
|
|
|
StyledText {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
text: qsTr("This page will be available in a future update.")
|
|
color: Colours.palette.m3outlineVariant
|
|
font: Tokens.font.body.large
|
|
}
|
|
}
|
|
}
|
|
}
|