aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/appearance/WallpaperTab.qml
AgeCommit message (Collapse)AuthorFilesLines
32 hourswallpaper: keep the pair the engine put upDanilo M.1-0/+9
The engine's ticks are light runs: udt-accent leaves GRUB, the homepage and SDDM on the home pair. When a tick lands on a combination worth keeping, there was no way to promote it short of re-picking both images by hand. "Keep this pair" reruns wallp on the current pair without UDT_ROTATION, so the full run brings those three along, and makes it the engine's home, so switching the engine off does not undo it. The timer restarts, as after a pick by hand. The button shows only while the engine is on and the pair up differs from home, so it hides once kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 dayswallpaper: upscale a too-small staged image in placeDanilo M.1-0/+30
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>
3 dayswallpaper: the heart is back, for the engine's per-screen listsDanilo M.1-0/+22
A heart on each gallery thumbnail adds or removes the image from the engine's list for the screen the picker targets. It is the last child of the thumbnail, so it sits above the pick MouseArea and takes its own click, and it is outlined so it reads on a light image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 dayscompanion: remove from the tree, archived as tag archive/companionDanilo M.1-20/+0
The chibi 2B companion is retired for now. Its last state is kept in the signed tag archive/companion (the commit before this one), so it can be revisited with `git checkout archive/companion`; hypr-theme carries a tag of the same name for its compositor hooks (typing/delete events and the SUPER+\ bind). Removed with it, since nothing else used them: the Companion, phrases and artists settings pages, the five companion prefs in Prefs.qml and Prefs.ready, the wallpaper heart (Admired.qml's list), the assistant's replied() signal and cardTop, and the keybinds reminder's name for the code:49 bind. The design specs and plans under docs/ stay as history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9 dayswallpaper: a bigger, outlined heartDanilo M.1-2/+5
At the label's size it was hard to spot. An outline in the base colour keeps it readable on a light image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9 dayswallpaper: a heart on each thumbnail, for the companion's listDanilo M.1-0/+18
Shown on hover, and always on a listed one. It toggles the path in the list file and leaves the rest of the file as it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 daysdesktop: report save results in the SaveBar, not at the page's footDanilo M.1-11/+0
A save's outcome sat at the bottom of the page, out of sight on a long one, while "unsaved changes" was already in the header. SaveBar gains notice, shown once the page is clean, and error, shown in red over the unsaved mark, since a refused or failed write leaves the draft dirty. Wired for notifications, HyprIdle, Sunset, Wallpaper and the four Mail pages, with their longer messages shortened to fit the header. Messages that are not save results stay in their pages: the icon theme's immediate apply, Sunset's location detection, the assistant restart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 dayswallpaper: row-per-notch wheel and a sticky folder headerDanilo M.1-30/+86
The thumbnail list scrolled a fraction of a thumbnail per wheel notch, which is ListView's default step and slow with rows this tall. A MouseArea over the list (acceptedButtons: Qt.NoButton, so clicks and hovers still reach the thumbnails) now moves one row per notch, and keeps a touchpad's pixel delta as it is. An open folder with many images scrolled its header out of view, so folding it meant scrolling back to the top. A copy of the header is now pinned over the list while the topmost row belongs to a folder whose own header has scrolled off; clicking it folds that folder and positions the view at its header. The header row became an inline component so the list and the pinned copy draw the same thing. Loads clean; not yet confirmed by eye. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17settings: every page commits from the headerDanilo M.1-12/+3
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>
2026-10-17wallpaper: the preview above the listDanilo M.1-110/+107
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>
2026-10-17appearance moves into the settings windowDanilo M.1-0/+357
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>