| Age | Commit message (Collapse) | Author | Files | Lines |
|
A staged wallpaper smaller than its screen (yellow or red border) gets an
"Upscale 4x" button. It rewrites the file with Real-ESRGAN through
stable-diffusion.cpp's `sd-cli -M upscale`, keeping the name, so wallp's
state and the engine's lists, which name it by path, still find it.
sd-cli writes to a dot-named sibling the scan skips, and only a
successful run is moved over the original.
Success needs no [E] line as well as exit 0: with a model that fails to
load, sd-cli logs "[E] new_upscaler_ctx failed", saves the input
unscaled and exits 0 (measured).
The button takes two clicks so the model choice shows before anything is
rewritten. The first runs Imajev-4B, a small Jev-style vision decision
model, through llama-mtmd-cli on a 512 px thumbnail, with a grammar that
allows only A (anime) or B (photo or render); greedy decoding then
returns the higher-logit option, about 1.7 s. The label becomes
"Upscale 4x (anime)" or "(photo)", and the second click upscales with
the anime or the general model. Anything but A, including a failed
decider, picks the general model, safe on any image.
Imajev-4B was chosen by measurement on 22 wallpapers: all 12 anime and 4
photos right, 4 of 6 painted 3D renders called anime (those come out
smoother than painted). The 2B got 17 of 22, leaning to photo; a
three-way prompt adding "painted or render" dropped both to 15 or
fewer, with most anime called painted.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The appearance README gains the burn (the cover, the covered()
handshake and why, the shader cache trap) and the engine (sources,
shuffle, light run, homes, the draft page, where its state lives and
what starts it). The spec records what changed while building it: Prefs
instead of list files, a page of its own, folder sources, the header
buttons, the cover handshake.
AGENTS.md gains the Field.edited trap, which applies to every page with
a field and a button: a click does not end editing, so the value a
button acts on must be read on every change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The Theme page applied a scheme on click, so a stray click reinstalled the
whole theme, and it was the one settings page without the header's
commit point. Clicking now stages the scheme (outlined yellow, "selected"),
and Reset / Apply in the header drop or apply it, as the wallpaper page
does. The applied notice and any failure moved into the SaveBar, and the
sidebar marks the page dirty while a scheme is staged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Shows the live scheme, accent and both wallpapers, the scheme and
wallpapers linking to their own pages, then every udt consumer in a
software and a hardware list, each with a Re-apply button running
`install.sh <name>`, and Re-apply all in the header. The list comes from
`install.sh --list`, so a consumer added in unified-desktop-theme shows up
here with no edit. One run at a time, and none during a scheme switch.
QML's JS engine has no Object.fromEntries either: it threw a TypeError
that only reached the log and left the page without its list. Noted in
AGENTS.md beside String.matchAll.
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>
|
|
The mock screens took a third of the width beside the list, which left
both cramped in the settings window. They now sit on top, sized to half
the width and capped so the upright screen stays under 200px, with the
notes and the actions beside them; the folder list takes the full width
and the rest of the height below. The actions are a Flow, so they wrap
instead of clipping in a narrow window.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The labels and page titles only; the module names, and so the IPC verbs
and search keys, stay sunset and idle.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The appearance shell existed because a wallpaper picker needed more room
than the 600px drawer, so it ran as its own process with a full-screen
overlay. The settings window now gives it that room, and its five tabs
become five settings pages in the desktop process: Wallpaper, Theme,
Icons & cursor, Sunset and Idle. appearance/ is gone, and with it a
process, a keepalive window and a layer blur rule.
The files move to desktop/modules/appearance/ unchanged in what they do.
Each tab gets a small *Module.qml; the window's refresh-on-open calls the
singletons' refresh(), which the panel's show() used to. The two tabs that
were inline Components in AppearancePanel become ThemeTab and
WallpaperTab, owning the notices the panel printed. Sunset, Idle and
Icons drop their own Flickable so the page scrolls them and search can
reveal a row; the wallpaper list virtualises its rows and scrolls itself,
so it takes the page's new viewHeight instead.
Search finds a colour scheme and an icon or cursor theme by name.
The appearance IPC target moves to desktop/shell.qml with the same verbs,
so udt-steps and any keybind change only the path. Git now follows the
appearance pages and autostart in the sidebar.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|