-
-
Notifications
You must be signed in to change notification settings - Fork 60
Theme Tray Startup
This page covers three everyday behaviors of the Sucrose Portal: the light/dark theme (and the Windows 11 Mica/Acrylic window backdrop), the system-tray icon (including the first-time tray hint and the "exit vs. minimize" interplay), and the startup modes that decide whether and how Sucrose launches with Windows. These are configured mainly on the Settings General page; the tray icon itself is owned by the Launcher process, not the Portal.
- Theme: light, dark, and system
- Window backdrop (Mica / Acrylic) and background image
- The system-tray icon
- First-run tray hint
- Exit vs. minimize on close
- Startup modes
- See also
Sucrose's Portal can run in light or dark mode:
- The theme is stored as a
Skylark.Enum.WindowsThemeType(Light/Dark) under theThemeTypekey inGeneral.json. - The default is your current Windows system theme, detected at startup.
- You toggle it with the theme button in the Portal's top toolbar (on the right of the top navigation bar) — two buttons (
Dark/Light, only one visible at a time) using the sun (WeatherSunny16, switch to dark) and moon (WeatherMoon16, switch to light) icons.
Toggling applies the new theme immediately to the window. If the Window Backdrop is set to Auto, the Portal forces its theme to match the live Windows theme on startup.

The Portal window's translucent backdrop is configured on the General settings page:
| Setting | Key (file) | Default | Options |
|---|---|---|---|
| Window Backdrop |
BackdropType (Portal) |
Mica |
Any Wpf.Ui.Controls.WindowBackdropType. Items requiring Windows 11 (e.g. Mica, Acrylic) are disabled on unsupported systems. |
| → Background image |
BackgroundImage (Portal) |
empty | An image shown behind the window; a remove button clears it. |
| → Backdrop stretch |
BackgroundStretch (Portal) |
(default stretch) |
None / Fill / Uniform / UniformToFill. |
| → Backdrop opacity |
BackgroundOpacity (Portal) |
100 |
0–100 (%). |
Mica and Acrylic require Windows 11. On Windows 10 those backdrop options appear disabled; pick a supported backdrop type instead.
Do not confuse the Portal's BackgroundImage (Portal page — an image behind the Portal window) with the Wallpaper page BackgroundImage toggle (Engine — the static desktop wallpaper behind your live wallpaper). They are different settings in different files.
The actual tray icon is created and owned by the Launcher process (Sucrose.Launcher.exe), which has no main window and lives entirely in the system tray. The Portal merely configures it by sending the Launcher a Show/Hide signal.
| Setting | Key (file) | Default | Effect |
|---|---|---|---|
| Notify Icon visibility |
AppVisible (General) |
true (Show) |
Show / Hide. Sends the Launcher a Show/Hide signal to display or hide the tray icon. |
The tray icon's context menu routes user actions (Open, Customize, Reload, Update, Exit/Close, etc.) to the rest of the app through the Commandog dispatcher. When Backgroundog has paused or closed the engine, the tray icon reflects that state.

The first time you close the Portal window (while the HintTrayIcon flag in Warehouse.json is still true), Sucrose shows a one-time dialog explaining that the app minimizes to the tray rather than quitting. This dialog:
- Has a forced 5-second countdown before its close button becomes enabled.
- Blocks Enter and Escape during the countdown.
- Sets
HintTrayIcon = falseafterward, so it never appears again.
Two settings together decide what the window's close button does:
| Setting | Key (file) | Default | Effect |
|---|---|---|---|
| Notify Icon visibility |
AppVisible (General) |
true |
Whether the tray icon is shown (see above). |
| Notify → Exit on close |
AppExit (General) |
false |
When false, closing the Portal window minimizes to tray. When true, closing exits the app. |
The interplay also changes the tray menu's last item label:
- With
AppExit == false(default), the last tray item reads "Exit" and only the Launcher itself exits — the wallpaper engine and background services keep running. - With
AppExit == true, the last tray item reads "Close" and triggers a full teardown: the engine and its browser subprocesses are stopped, then (in order) Undo, Portal, Update, Property, Watchdog, Commandog, Reportdog, Backgroundog are killed, the tray is released, and the process exits.
If you want closing the window to fully quit Sucrose, enable Notify → Exit on close. Leave it off if you prefer the wallpaper to keep running in the background.
Whether Sucrose launches automatically with Windows is set by Application Startup on the General settings page. It is a single ComboBox stored under the RunStartup key in General.json:
| Value | Mode | Mechanism |
|---|---|---|
0 |
None (default) | Does not start with Windows. |
1 |
Normal | Current-user Run registry key (Startup command). |
2 |
Priority | Elevated / approved startup (StartupP command, runs as admin). |
3 |
Scheduler | A Windows Task Scheduler task (Scheduler command). |
All four modes are implemented by issuing commands to the Commandog dispatcher. The Scheduler option creates a logon-triggered task named Autorun for Sucrose (description "Sucrose Wallpaper Engine") under the \Sucrose\ task folder, scoped to the current user, with no execution time limit and start-on-battery allowed.
Removing autostart: if you used the Scheduler mode, the entry is a Task Scheduler task (
Autorun for Sucrose), not a registry Run entry — delete that task to stop Sucrose launching at logon. See Troubleshooting Settings, Startup and GPU.
When Sucrose launches at startup, the Launcher auto-restores your last wallpaper automatically — you do not have to re-apply it each boot.

Getting Started
- Installation
- System Requirements
- Quick Start
- Portal Interface Tour
- Updating Sucrose
- Uninstalling Sucrose
Wallpaper Types
Using Sucrose
- Managing Library
- Using Store
- Customizing Wallpaper
- Multi-Monitor
- Wallpaper Cycling
- Choosing Engines
- Performance Rules
- Theme, Tray & Startup
- Discord Rich Presence
Settings Reference
- Settings Overview
- Settings: General
- Settings: Personal
- Settings: Performance
- Settings: Wallpaper
- Settings: System
- Settings: Other
- Settings: All Keys
Creating Wallpapers
- Create Overview
- Create: Step By Step
- Create: Package Format
- Create: Customization Controls
- Create: JS Bridge
- Create: Audio API
- Create: System API
- Create: Property Listener & Filters
- Create: Web Architecture
- Create: Compatibility
- Create: Example Wallpapers
- Create: Sharing & Publishing
Engine Reference
- Engines Overview
- Engine: MpvPlayer
- Engine: VlcPlayer
- Engine: WebView
- Engine: CefSharp
- Engine: Nebula
- Engine: Vexana
- Engine: Xavier
- Engine: Aurora
- Engine Comparison
Automation & Command Line
Architecture & Internals
- Architecture Overview
- Lifecycle
- Commandog Dispatcher
- Single-Instance Mutexes
- IPC
- Backgroundog Service
- Crash Reporting
- Update Internals
- Property Service
- Undo Internals
Data, Files & Diagnostics
Building & Contributing
- Building From Source
- Repository Layout
- Shared Item Projects
- Code Conventions
- Preprocessor Symbols
- Publish Pipeline
- Bundle Installer Internals
- Extending Sucrose
- Contributing
- Translating with Localizer
- Localization Coverage
- Security Policy
- Privacy & Telemetry
Help & Support