GNOME Online Accounts is a daemon plus a D-Bus API, and the daemon already runs in this session -- gvfs activates it, and all four accounts on this machine work without gnome-shell involved anywhere. Only the PANEL was GNOME's. The accounts themselves are ordinary D-Bus objects that anything may read and modify. So everything except the initial sign-in is now native: the account list, per-service toggles for mail, calendar, contacts, files, photos, music and chat, and removal. That is the whole Online Accounts panel apart from one OAuth handshake. Signing in is the exception, and only for OAuth providers. The daemon's AddAccount takes credentials as an argument -- it stores them, it does not obtain them -- and the code that runs Google's OAuth exchange lives in libgoa-backend, which Fedora ships without a GIR binding, so it is reachable from C only. Reimplementing it would mean our own Google client credentials. That step is handed to GNOME's panel and the page says so, because a hand-off the user does not expect reads as a bug. Password-based providers (Nextcloud, IMAP, WebDAV) could be added natively later; their credential keys are known now. Accounts needing re-authentication are surfaced first, which turned up something immediately: both Google accounts on this machine report attention_needed, meaning their tokens have expired and they have stopped syncing. GOA has known that all along and nothing outside its own panel ever said so. Every write re-reads the account list rather than assuming it landed. GOA can refuse, and a toggle that springs back is the honest outcome. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
55 lines
1.9 KiB
Plaintext
55 lines
1.9 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
|
|
ServicesPage 1.0 ServicesPage.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
|
|
PowerPage 1.0 PowerPage.qml
|
|
DateTimePage 1.0 DateTimePage.qml
|
|
AccessibilityPage 1.0 AccessibilityPage.qml
|
|
WallpaperPicker 1.0 WallpaperPicker.qml
|
|
ApplicationsPage 1.0 ApplicationsPage.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
|
|
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
|
|
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
|