ADR 0008: GnomeProfile shell, clock and keyboard settings
Status: accepted (2026-10-04)
Context
Organizations want to set the hot corners, the workspace count, app grid folders, the clock and a
terminal shortcut, which an image of this shape sets today with GSettings overrides and dconf keyfiles.
Without semantic fields they would need raw dconf keys, which GnomeProfile does not accept.
Decision
GnomeProfile.spec.defaults gains shell.hotCorners, shell.workspaces, shell.appFolders,
clock.showWeekday, clock.format, keyboard.numLock and keyboard.terminal. Each is one scalar
setting with the usual layer precedence, conflict detection and locks.
shell.workspacesisdynamicor a fixed count; a count setsdynamic-workspacesfalse andnum-workspaces.shell.appFoldersis one list. GNOME Shell 49.5 does not create its default folders whenfolder-childrenis non-empty (_ensureDefaultFoldersinappDisplay.js), so declared folders replace them. GNOME Shell 49.4 checks only the user's own value and writes its defaults over the administrator's at first login (fixed upstream in 4b1d80383c, released in 49.5). The Platform factgnome.appFolderssays whether the shell keeps them; RHEL 10.2 ships 49.4, so its Platform rejects the setting.keyboard.terminalnames a desktop file. The binding is fixed at Ctrl+Alt+T and the command is the Platform'sgnome.appLauncherfollowed by the desktop file id; the launcher's package is installed. A Platform without a launcher rejects the setting.
Core sets none of them.
Consequences
- No new kind;
GnomeProfilestays the only GNOME resource. - A custom shortcut is stored at
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/deskos-terminal/. Users' own shortcuts are added to the same list by GNOME Settings. - The desktop file is not checked at build time: it may come from a Flatpak installed at first boot.