diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-17 10:16:40 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-17 10:16:40 +0200 |
| commit | 70bbc970c75221c902c515efd124c47fd702e3b7 (patch) | |
| tree | d35f6b1ffbb506b65430af7fc1eca2c432879a22 /desktop/shell.qml | |
| parent | e5399f3e8d8572f1db7c4391a7c571d4845500f1 (diff) | |
| download | quickshell-70bbc970c75221c902c515efd124c47fd702e3b7.tar.gz quickshell-70bbc970c75221c902c515efd124c47fd702e3b7.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'desktop/shell.qml')
| -rw-r--r-- | desktop/shell.qml | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/desktop/shell.qml b/desktop/shell.qml index 0d56e87..bb8c1df 100644 --- a/desktop/shell.qml +++ b/desktop/shell.qml @@ -72,9 +72,7 @@ ShellRoot { UpdatesModule {}, VmModule {}, AiModule {}, - AppearanceModule {}, UserModule {}, - GitModule {}, NotesModule {}, // The settings window's entry point, a tile like the others. Module { @@ -83,7 +81,13 @@ ShellRoot { icon: "\uf013" function activate() { settings.show(""); } }, + WallpaperModule {}, + ThemeModule {}, + IconsModule {}, + SunsetModule {}, + IdleModule {}, AutostartModule {}, + GitModule {}, ] } @@ -94,6 +98,10 @@ ShellRoot { modules: drawer.modules } + // unified-desktop-theme's manual steps, its own window on DP-3. See + // modules/appearance/README.md. + StepsWindow { id: stepsWindow } + // The island on DP-1. It reads the sound module's service rather than // binding PipeWire a second time. Island { @@ -114,7 +122,7 @@ ShellRoot { // and a parameter with a JS default registers as QVariant, which IPC // rejects. So the page name cannot be optional: `open` always takes a // page, and the page-less grid is `toggle`, the zero-argument shape the - // appearance shell uses for its routes and the waybar launcher calls. + // waybar launcher called. IpcHandler { target: "drawer" function open(page: string) { drawer.show(page); } @@ -130,6 +138,23 @@ ShellRoot { function toggle() { if (settings.open) settings.close(); else settings.show(""); } } + // The verbs of the appearance shell this replaced, so its callers only + // change the path: udt-steps calls `steps`. + // qs -p <this dir> ipc call appearance wallpaper + IpcHandler { + target: "appearance" + function toggle() { settings.show("wallpaper"); } + function wallpaper() { settings.show("wallpaper"); } + function theme() { settings.show("theme"); } + function sunset() { settings.show("sunset"); } + function idle() { settings.show("idle"); } + function icons() { settings.show("icons"); } + function steps() { stepsWindow.poke(); } + function selftest(): string { + return Hyprsunset.selftest() + "\n" + Hypridle.selftest() + "\n" + Icons.selftest() + "\n" + Steps.selftest(); + } + } + // qs -p <this dir> ipc call assistant toggle -> SUPER+Home IpcHandler { target: "assistant" |
