From 70bbc970c75221c902c515efd124c47fd702e3b7 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 17 Oct 2026 10:16:40 +0200 Subject: appearance moves into the settings window 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 --- desktop/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'desktop/README.md') diff --git a/desktop/README.md b/desktop/README.md index 089f86f..1295746 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -61,7 +61,7 @@ and flashes it, so a page needs no highlight code of its own. modules/kdeconnect/ devices, battery, pairing, ping, clipboard, share, mount modules/mail/ unread per account, threads, the watcher dot modules/vm/ libvirt state, live stats, snapshots - modules/appearance/ a tile that opens the separate appearance shell + modules/appearance/ wallpaper, theme, icons, sunset, idle: settings pages modules/ai/ local AI engines, start/stop for the apps using them modules/perf/ CPU, temperatures, GPU, network, disks, ~/.cache modules/user/ the greeting row and the user's details page @@ -70,8 +70,7 @@ and flashes it, so a page needs no highlight code of its own. modules/autostart/ Hyprland's autostart.lua, in the settings window Sound, mail, vm, network, bluetooth, kdeconnect and ai each carry their own README. -Appearance is a tile onto the separate appearance shell, whose README covers the -picker it opens. +So does appearance, for its five settings pages. ## Writing a module @@ -98,11 +97,11 @@ which: it reads those properties and does the obvious thing. A page is wrapped in `Page.qml` for the header and back arrow, and a tile with no page is fire-and-forget, so its click calls `activate()` and closes the drawer. -`modules/appearance/AppearanceModule.qml` is the smallest complete example: a -name, an icon, a label, and an `activate()` that launches the separate -appearance shell. It has no page, and it owns only a `Process` that fires the -picker on click, no always-active service. Sound, mail, vm, network, bluetooth -and kdeconnect each add a service and a page on top of that same shape. +The settings gear in `shell.qml` is the smallest complete example: a name, an +icon, and an `activate()` that opens the settings window, with no page and no +service. Sound, mail, vm, network, bluetooth and kdeconnect each add a service +and a page on top of that same shape; `modules/appearance/ThemeModule.qml` is +a small settings page. Module files live under `desktop/modules//` and reference root types (`Module`, `Page`, `Button`, `Theme`), so each needs `import "../.."`. A plain @@ -149,7 +148,8 @@ below it sits where it will sit once notifications arrive. The bottom is a fourth row scrolls inside that box rather than pushing into the notification space, and a thin accent bar in the margin shows only when a row is hidden. The order is Sound, Network, Bluetooth, KDE Connect, Mail, Status, -Performance, Clipboard, VMs, AI, Appearance, the everyday ones first. +Performance, Clipboard, VMs, AI, then the settings gear, the everyday ones +first. A page can close the whole drawer by emitting `dismiss` from its `Page`, as the clipboard does after a copy; `back` returns to the grid. -- cgit v1.2.3