| Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|