Phase 4, first slice. Theme.qml hardcoded the Prism pair, so the one thing that carries every state meaning in the desktop -- focused, active, on -- was the one thing nobody could change. 74 files read Theme.accent, so making it a setting moves all of them at once. Named accents rather than a colour picker, which is the design decision worth defending. One hex cannot serve both schemes: a colour legible on the Moon background is usually illegible on the Day one, and a picker that lets someone build an unreadable desktop is not a feature. So each name carries a curated pair per scheme, and every one of the sixteen resulting colours measures at least 3:1 against the ground it sits on -- checked, not assumed. It is also GNOME's model, which is the parity being chased. The focused window border comes with it, and only because the ownership rule made that safe. ColorScheme owns the inactive border as a scheme-relative contrast role; the focused Prism border is the accent role owned by the theme. Writing it from the accent would have been reckless before that boundary existed, since a scheme change would have erased the user's choice. Both borders are now pushed together, because each accent carries separate light and dark pairs, so switching schemes must restate the focused border too. The gradient is written as a Lua table, not a string. The string form carries only one stop, and passing two as a string is accepted and silently keeps the previous value. Swatches are drawn as the gradient they produce rather than as flat dots, because the gradient is what is being chosen. Each carries its name permanently rather than in a tooltip: telling swatches apart by colour is precisely what someone with a colour vision deficiency cannot do, which is also why the palette is named in the first place. Verified end to end by switching to rose and watching the compositor report eeff757f/eec099ff, then reverting. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
module qs.modules.settings
|
|
AboutPage 1.0 AboutPage.qml
|
|
AppearancePage 1.0 AppearancePage.qml
|
|
ConnectivityPage 1.0 ConnectivityPage.qml
|
|
HomePhonePage 1.0 HomePhonePage.qml
|
|
HomeFavoriteCard 1.0 HomeFavoriteCard.qml
|
|
AvailableLightRow 1.0 AvailableLightRow.qml
|
|
DesktopPage 1.0 DesktopPage.qml
|
|
DisplaysPage 1.0 DisplaysPage.qml
|
|
HomePage 1.0 HomePage.qml
|
|
NotificationsPage 1.0 NotificationsPage.qml
|
|
ScreenIntelligencePage 1.0 ScreenIntelligencePage.qml
|
|
HealthPage 1.0 HealthPage.qml
|
|
HealthSummary 1.0 HealthSummary.qml
|
|
HealthCheckRow 1.0 HealthCheckRow.qml
|
|
SettingRow 1.0 SettingRow.qml
|
|
SettingsCard 1.0 SettingsCard.qml
|
|
SettingsButton 1.0 SettingsButton.qml
|
|
SettingsShell 1.0 SettingsShell.qml
|
|
SettingsSidebar 1.0 SettingsSidebar.qml
|
|
SettingsToggle 1.0 SettingsToggle.qml
|
|
SettingsWindow 1.0 SettingsWindow.qml
|
|
ShortcutsPage 1.0 ShortcutsPage.qml
|
|
SoundPage 1.0 SoundPage.qml
|
|
SettingsPage 1.0 SettingsPage.qml
|
|
ToggleRow 1.0 ToggleRow.qml
|
|
SliderRow 1.0 SliderRow.qml
|
|
ChoiceRow 1.0 ChoiceRow.qml
|
|
ActionRow 1.0 ActionRow.qml
|
|
TextRow 1.0 TextRow.qml
|
|
DesktopPreview 1.0 DesktopPreview.qml
|
|
LockScreenPreview 1.0 LockScreenPreview.qml
|
|
PowerPage 1.0 PowerPage.qml
|
|
DateTimePage 1.0 DateTimePage.qml
|
|
AccessibilityPage 1.0 AccessibilityPage.qml
|
|
WallpaperPicker 1.0 WallpaperPicker.qml
|
|
WallpaperControls 1.0 WallpaperControls.qml
|
|
ApplicationsPage 1.0 ApplicationsPage.qml
|
|
AutostartAppPicker 1.0 AutostartAppPicker.qml
|
|
DockPinsEditor 1.0 DockPinsEditor.qml
|
|
DockAppPicker 1.0 DockAppPicker.qml
|
|
ShortcutCapture 1.0 ShortcutCapture.qml
|
|
ChoiceGrid 1.0 ChoiceGrid.qml
|
|
DisplayModePicker 1.0 DisplayModePicker.qml
|
|
DisplayArrangement 1.0 DisplayArrangement.qml
|
|
DisplayIdentify 1.0 DisplayIdentify.qml
|
|
WifiPanel 1.0 WifiPanel.qml
|
|
BluetoothPanel 1.0 BluetoothPanel.qml
|
|
PasswordField 1.0 PasswordField.qml
|
|
AudioBalance 1.0 AudioBalance.qml
|
|
SoundDeviceList 1.0 SoundDeviceList.qml
|
|
SoundDeviceRow 1.0 SoundDeviceRow.qml
|
|
ApplicationMixer 1.0 ApplicationMixer.qml
|
|
ApplicationVolumeRow 1.0 ApplicationVolumeRow.qml
|
|
TimeOfDayRow 1.0 TimeOfDayRow.qml
|
|
LocationPicker 1.0 LocationPicker.qml
|
|
FontPicker 1.0 FontPicker.qml
|
|
MousePage 1.0 MousePage.qml
|
|
TextEntryRow 1.0 TextEntryRow.qml
|
|
PrivacyPage 1.0 PrivacyPage.qml
|
|
RegionPage 1.0 RegionPage.qml
|
|
SearchPicker 1.0 SearchPicker.qml
|
|
OnlineAccountsPage 1.0 OnlineAccountsPage.qml
|
|
AccentPicker 1.0 AccentPicker.qml
|