aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/user/UserPage.qml
AgeCommit message (Collapse)AuthorFilesLines
6 daysName the project Keystone, and move its paths and namespacesDanilo M.1-1/+1
The repository had no name of its own, only the framework's. It is now Keystone, in the README, AGENTS.md, the settings window, notes commit messages, calctl's PRODID and the user page's User-Agent. Its files move off quickshell's name too: ~/.config/quickshell/greetings -> ~/.config/keystone/ ~/.config/quickshell/obs-scene-icons.json -> ~/.config/keystone/ $XDG_STATE_HOME/quickshell/desktop.json -> $XDG_STATE_HOME/keystone/ ~/.config/quickshell is Quickshell's own default config directory (a bare qs loads its shell.qml), so sharing it was a collision rather than a home. There is no fallback to the old paths: the files are moved once. The layer namespaces become keystone-*, and the Hyprland blur rules in hypr-theme are renamed to match in the same change. A running shell keeps its old namespaces until restarted. Left alone: the retired standalone mail and vm shells' namespaces, which their READMEs keep as history; Quickshell's own app id, binary and process name; and the repository directory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssettings: every page commits from the headerDanilo M.1-6/+7
The Mail, Assistant and Ask presets pages got a Save and Discard pair in the page header; the rest still had their own buttons wherever their page put them: User's Save at the bottom, Wallpaper's Apply and Reset beside the mock screens, Icons' Apply and Reset under the cursor cards, HyprSunset's and HyprIdle's Save + Restart in the page. They now all sit in the header SaveBar, which takes the page's own verbs (Apply and Reset, Save + Restart) and a busy state. HyprSunset and HyprIdle had no notion of an unsaved change, so their button was always live. They now count as changed when what save() would write differs from what was read, which enables Save only then, gives Discard (a reload) something to drop, and marks them in the sidebar; a window open no longer reloads them over unsaved edits. The staged cursor moved from IconsTab into the Icons singleton so the header and the sidebar can see it. Git and autostart act a row at a time, and a theme applies on click, so those have no bar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(user): open the git config page from the Git sectionDanilo M.1-0/+9
A "More git settings" button under the Git fields. The page emits moreGit and the module turns it into Page.go("git"), since the page itself has no reach into the drawer. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8 daysfeat(user): keyboard for the location suggestionsDanilo M.1-6/+29
Up and Down move through the list, wrapping, and light the row as hover does; Enter takes it; Escape closes the list. With no list open the keys pass on, so Escape still leaves the page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(user): location suggestions from OpenStreetMapDanilo M.1-3/+71
There is no place database on this machine, and the user chose Nominatim over a tz city list for coverage. It is asked 1s after typing stops (its policy: one request a second, an identifying User-Agent, nothing personal sent), from three characters, in the desktop's language, and a reply to an older query is dropped. places() turns its JSON into 'place, region, country' labels and treats an error page as no suggestions; test_user.js covers it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(user): a Git section with the values git will carryDanilo M.1-16/+35
The one-line preview became a section: the git name and email as read-only fields that follow the Name and Email edits as they are typed, and the signing key, which is git's too, moved under them. A derived field is computed from the draft and never saved on its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(shared): one faded glow for hovers across the shellsDanilo M.1-17/+37
Hover and attention effects were solid: a flat accent ring round the user page's avatar, a flat quarter-disc in the hot corner, and thick accent or white borders on window cards, keycaps and knobs. Glow.qml is a RectangularShadow in the accent, fading out from the shape's edge and in over 140ms, linked into desktop, window-switcher and keybinds like Theme.qml, and all five places use it. Selection borders in the appearance tabs stay: they mark state, not hover. The avatar also gains the hover cue in the first place: the hand cursor never showed under a hyprcursor-only theme, so without it the picture gave no sign it could be clicked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysstyle(user): a larger avatar and dropdowns in the themeDanilo M.1-5/+22
The avatar had room to spare at 96px; 160 fills the page better. The two ComboBoxes rendered in the default style's light colours on a dark page; a palette takes the theme into the control and its popup, and the background matches the text fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfix(user): the page retries partial saves and survives leaving mid-saveDanilo M.1-5/+12
A key whose write half-failed (AccountsService took it, git did not) reloads as unchanged and Save went dead. A key with an error now counts as changed, and editing a field clears its error. Processes were parented to the page, so leaving it mid-save killed userctl between stores. They hang off the module now, passed in as owner (not the module's id, which would bind to itself). busy now clears when the reload lands, so Save cannot be clicked again before saved is fresh, and the fields and avatar picker are disabled while busy. Avatar paths with # or % broke the preview under a bare file:// prefix; each segment is now URI-encoded for the Image source (page and row), while draft.avatar stays a plain path for userctl. Dropped a redundant saved clear in load. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8 daysfeat(user): a drawer page for the user's detailsDanilo M.1-0/+256
Name, email, avatar, language, location and the git signing key, each saved through userctl to every store that holds it. Only changed fields are sent; a field whose write failed keeps its edit and its error, so the next Save retries it. A failed userctl get reports a single error= line. The page shows it in red under the avatar, leaves saved and draft untouched, and disables Save until a later load succeeds. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>