-
-
Notifications
You must be signed in to change notification settings - Fork 60
README
This file is NOT a wiki page. It is an internal guide for the maintainer who publishes the contents of this
wiki/folder to the Sucrose GitHub Wiki. Do NOT copyREADME.mdinto the wiki clone — copy every other.mdfile.
This folder holds the source Markdown for the Sucrose
GitHub Wiki. GitHub serves a repository's wiki from a separate Git repository
(<repo>.wiki.git), so publishing is a copy-and-push operation, not a normal repo commit.
-
Enable the wiki on GitHub. In the Sucrose repository: Settings → Features → Wikis (check the box). Then open the Wiki tab once and create the first page (any content) so GitHub initializes the backing wiki repository. This only has to be done once.
-
Clone the wiki repository (note the
.wiki.gitsuffix — it is a different repo from the code):git clone https://github.com/Taiizor/Sucrose.wiki.git
-
Copy every
.mdfrom thiswiki/folder into the clone, EXCEPT thisREADME.md.PowerShell:
$src = "E:\MyProject\Sucrose\Pro\Sucrose\wiki" $dst = "<path-to>\Sucrose.wiki" Get-ChildItem -Path $src -Filter *.md | Where-Object { $_.Name -ne 'README.md' } | Copy-Item -Destination $dst -Force
bash:
cd <path-to>/Sucrose.wiki find <path-to-repo>/wiki -maxdepth 1 -name '*.md' ! -name 'README.md' -exec cp {} . \;
-
Commit and push:
cd <path-to>/Sucrose.wiki git add -A git commit -m "Publish Sucrose wiki" git push origin master # the wiki default branch is usually 'master'
The pages go live immediately on the repository's Wiki tab.
Three files are treated specially by GitHub Wikis — keep their exact names:
| File | Role |
|---|---|
Home.md |
The wiki landing page (the tab's default page). |
_Sidebar.md |
Renders as the navigation sidebar on every page. |
_Footer.md |
Renders as the footer on every page. |
All other *.md files become pages named after the file (e.g. Type-Web.md → the Type-Web page).
Internal links use the page name without the extension, e.g. [Type-Web](Type-Web).
Counts. This folder contains 91
.mdfiles. Excluding thisREADME.md, 90 files publish: the 3 GitHub-wiki special files (Home.md,_Sidebar.md,_Footer.md) plus 87 content pages.
The content pages contain 72 image placeholders (📷 screenshot / 🖼️ diagram) marked with
> 📷 **Screenshot needed:** or > 🖼️ **Diagram needed:** blockquotes. Before (or after)
publishing, capture/produce each asset, add it to the wiki, and replace the placeholder
blockquote with the image. Grouped by page:
- Architecture-Overview.md: Diagram — a "who-spawns-whom" map: Launcher (entry point) at the root, branching through Commandog to Portal, the live engine, Backgroundog, Reportdog, Update, Property, Watchdog, and Undo.
- Automation-Examples.md: Screenshot — the
Sucrose.Commandog.execonsole output after running✔Test✖true✖42✖hello, showing theTest Values:line and the three parsed values.
- Backgroundog-Service.md: Diagram — Backgroundog lifecycle (on-demand launch via Commandog → single-instance gate → Initialize loop with Specification + Performance/Condition/Attempt → self-exit when no live wallpaper).
- Backgroundog-Service.md: Diagram — Backgroundog data pump (Specification.Start() builds the 10-JObject payload → branches on PipeRequired/SignalRequired/TransmissionRequired → WebView/CefSharp Web.cs server → JS bridge ExecuteScriptAsync).
- Backup-Restore-Reset.md: Screenshot — Portal → Settings → System page showing the Export / Import / Reset buttons and the clear-cache/store/log actions with their live size hints.
- Bundle-Installer-Internals.md: Diagram — the single
Sucrose.Bundle.exewith its embedded resources (Packages\Sucrose.7z,SevenZip\7z.exe,Checksum\Hashes.json,Checksum\Template.html,Showcase\**) extracting to%TEMP%,%LocalAppData%\Sucrose, and%AppData%\Sucrose\Showcase.
- Cache-Management.md: Screenshot — Portal → Settings → System showing the Clear Cache / Clear Store actions with their live size hints.
- Choosing-Engines.md: Diagram — a type → engine mapping diagram (six type boxes on the left, seven engine boxes on the right, arrows showing which engines each type can use, defaults highlighted).
- Choosing-Engines.md: Screenshot — Portal → Settings → Wallpaper page showing the per-type engine selector ComboBoxes (Gif/Video/Url/Web/YouTube/Application Player).
- Command-Reference.md: Diagram — command flow (emitter builds a
✔Command✖valuestring → spawnsSucrose.Commandog.exe→ parse → switch dispatch toProcessor.Run/Processor.Killor a shared helper → target.exelaunches).
- Crash-Reporting.md: Diagram — crash flow (process throws → Watch.* logs locally → Watchdog.Start builds Base64(app✖exception✖show✖log) → Commandog spawns Watchdog.exe → Report/.json written + faulting process killed + optional dialog → Reportdog uploads later).
- Crash-Reporting.md: Screenshot — Watchdog crash dialog (dark theme) showing the exception message and the log/source/help fields.
- Create-Customization-Controls.md: Screenshot — the Portal "Customize" panel for a Web wallpaper showing a slider, a dropdown, a color picker, and a checkbox grouped under section labels.
- Create-Example-Wallpapers.md: Screenshot — the Portal Library showing the shipped Showcase wallpapers (Neo Matrix, Fluid Simulation, Simple System, Music Tunnel, Living Room, Ray Music Visualizer).
- Create-Overview.md: Diagram — a wallpaper folder shown as a box containing
SucroseInfo.json(required, highlighted) plus the optional siblings and source media files. - Create-Overview.md: Screenshot — a wallpaper folder open in File Explorer showing
SucroseInfo.json,SucroseProperties.json, an HTML source file, and thumbnail/preview images.
- Create-Package-Format.md: Diagram — annotated folder tree mapping each file to the manifest field that references it (Thumbnail →
Thumbnail, Preview →Preview, source file →Source, License.txt →License).
- Create-Step-By-Step.md: Screenshot — the Portal "Create Theme" dialog showing the Title/Description/Author/Contact fields, tag chips, thumbnail/preview pickers, and the type-specific Source input.
- Create-Web-Architecture.md: Diagram — sequence diagram (Backgroundog timer → build bundle → transport Pipe/Signal/Transmission → engine handler →
ExecuteScriptAsync→ page callbacks; with side branches for property push at init + change and raw-input forwarding).
- Customizing-Wallpaper.md: Screenshot — the Customize / Property editor window for a video wallpaper (MpvPlayer panel).
- Customizing-Wallpaper.md: Screenshot — the Customize / Property editor window for a web/browser wallpaper showing the filter sliders.
- Data-Locations.md: Screenshot — Windows File Explorer at
%AppData%\Sucrosewith theSetting,Log,Cache,Library, andShowcasefolders expanded one level.
- Discord-Rich-Presence.md: Screenshot — a Discord profile card showing the Sucrose Rich Presence with its state text, images, and the Browse / Download buttons.
- Discord-Rich-Presence.md: Screenshot — Portal → Settings → Other page showing the Discord Hook, Discord refresh, and Discord delay controls.
- Engine-Aurora.md: Screenshot — an Application wallpaper running via Aurora across two monitors (e.g. a game or screensaver embedded behind the desktop icons).
- Engine-Comparison.md: Diagram — a matrix/grid graphic mapping the six wallpaper types (rows) to the seven engines (columns), with cells marked "default" or "available".
- Engines-Overview.md: Diagram — Type → engine → process flow (a wallpaper's
SucroseInfo.jsonType feedsRun.cs, which resolves an engine setting and asks Commandog to launchSucrose.Live.<Name>.exe, which then attaches to the desktop). - Engines-Overview.md: Screenshot — Portal → Settings → Wallpaper page showing the per-type engine selectors (GifPlayer / VideoPlayer / UrlPlayer / WebPlayer / YouTubePlayer / ApplicationPlayer).
- Extending-Sucrose.md: Diagram — setting data-flow (Portal control → ViewModel →
Manager.Manage.<Area>accessor →SettingManager→ JSON file in%AppData%\Sucrose\Setting).
- Getting-Help.md: Screenshot — Portal → About dialog showing the version, framework, and architecture fields to include in a bug report.
- Installation.md: Screenshot — the Sucrose listing on the Microsoft Store (apps.microsoft.com) showing the Get/Install button.
- Installation.md: Screenshot — the GitHub Releases asset table for the latest Sucrose tag, showing the three per-architecture
.exefiles.
- IPC.md: Diagram — Producer (Backgroundog) → one of {Pipe, Signal, Transmission} → Consumer (WebView/CefSharp engine) →
ExecuteScriptAsync→ JavaScript in the wallpaper page; plus the tray-control side channel (Portal/Backgroundog → Signal → Launcher → TrayIconManager).
- Lifecycle.md: Diagram — a timeline/sequence diagram of the cold start (Launcher
OnStartup→Instance.Basic→Configure()→TrayIconManager.Start()with engine auto-restore, Reportdog, update check → signal channel → Discord).
- Logs-Diagnostics.md: Screenshot — Portal → Settings → System showing the log create/delete action used to produce the compressed log bundle.
- Managing-Library.md: Screenshot — Portal → Library page showing a grid of installed wallpaper cards.
- Managing-Library.md: Screenshot — LibraryCard right-click context menu open over a wallpaper.
- Multi-Monitor.md: Screenshot — the Display Preferences dialog showing the Screen/Expand/Duplicate radio group and the clickable monitor tiles.
- Performance-Rules.md: Diagram — state machine showing Resume → (condition trips) → Pause or Close → (condition clears) → Resume, with Backgroundog evaluating conditions each tick.
- Portal-Interface-Tour.md: Screenshot — the Portal main window with the top navigation, a populated Library, and the footer toolbar visible.
- Property-Service.md: Screenshot — the Property (Customize) window showing a mix of slider, dropdown, checkbox, and color-picker controls for a wallpaper.
- Publish-Pipeline.md: Diagram — flow from
.build/Sucrose.ps1→ publish 17 projects → install + trimSucrose.Runtime→ compress toSucrose-<arch>.7z→ consumed bySucrose.Bundle→ renamed installer.exe.
- Quick-Start.md: Screenshot — the Portal main window on the Library page right after first launch, showing the auto-imported Showcase wallpapers.
- Repository-Layout.md: Diagram — a tree of the
src/folder annotated with the logical layer each folder maps to.
- Settings-General.md: Screenshot — Portal → Settings → General page showing the Appearance & Behavior, Sound, and Library cards.
- Settings-Other.md: Screenshot — Portal → Settings → Other page showing the Data, Discord, Update, and Developer cards.
- Settings-Overview.md: Screenshot —
%AppData%\Sucrose\Setting\folder open in File Explorer showing the individual*.jsonfiles.
- Settings-Performance.md: Screenshot — Portal → Settings → Performance page showing the per-condition Close/Pause/Resume combo boxes and the threshold number boxes.
- Settings-Persistence.md: Diagram — settings read/write flow (
Manage.*accessor →SettingManagerwith freshness check / in-memory copy → mutex-guardedReader/Writer→%AppData%\Sucrose\Setting\<Category>.json).
- Settings-Personal.md: Screenshot — Portal → Settings → Personal page showing the Store, Library, and Appearance cards.
- Settings-System.md: Screenshot — Portal → Settings → System page showing the action cards with their live folder-size hints.
- Settings-Wallpaper.md: Screenshot — Portal → Settings → Wallpaper page showing the per-type engine selectors and global toggles.
- Shared-Item-Projects.md: Diagram — a shared project's
.shproj/.projitemspair on the left, arrows to several consuming.csprojfiles, each compiling the shared.csfiles into its own executable with a different preprocessor symbol.
- Theme-Tray-Startup.md: Screenshot — Portal footer toolbar with the light/dark theme toggle button highlighted.
- Theme-Tray-Startup.md: Screenshot — the Sucrose system-tray icon with its context menu expanded.
- Theme-Tray-Startup.md: Screenshot — Portal → Settings → General page showing the Application Startup, Notify Icon visibility, and Notify → Exit on close controls.
- Troubleshooting-Common.md: Screenshot — Portal → Settings → Wallpaper page showing the per-type engine selectors (used to switch engines while troubleshooting).
- Troubleshooting-Settings-Startup-GPU.md: Diagram — where Sucrose state lives (JSON settings files in
%AppData%\Sucrose\Setting, the Task Scheduler "Autorun for Sucrose" task, and the WindowsUserGpuPreferencesregistry key) and which control surface writes each.
- Type-Application.md: Diagram — Aurora launching one app instance per monitor and reparenting each window behind the desktop icons.
- Type-Gif.md: Screenshot — the Customize panel for a GIF wallpaper showing the MpvPlayer property sliders.
- Type-Url.md: Screenshot — a URL wallpaper showing a live external page on the desktop.
- Type-Video.md: Screenshot — the Customize panel for a Video wallpaper rendered by MpvPlayer.
- Type-Web.md: Diagram — sequence diagram (apply Web wallpaper → engine starts local HTTP server → Backgroundog pumps audio/system data over pipe → engine ExecuteScriptAsync into the page's Sucrose* callbacks).
- Type-YouTube.md: Screenshot — the Customize panel for a YouTube wallpaper showing the caption and playbackRate controls.
- Undo-Internals.md: Screenshot — the Sucrose Undo Yes/No/Cancel uninstall confirmation dialog.
- Undo-Internals.md: Diagram — Undo removal sequence (confirm dialog → kill all Sucrose processes in 3 passes → restore desktop → delete install keeping Undo/Runtime → optional data delete → remove shortcuts + registry key → spawn del_.bat → self-delete).
- Uninstalling-Sucrose.md: Screenshot — Windows "Installed apps" list with the Sucrose Wallpaper Engine entry and its Uninstall option.
- Update-Internals.md: Diagram — the update step pipeline flowchart (Cache → Network → Releases → Release → Comparing → Searching → (Silent) → Downloading → Extracting/Running, with the abort-on-false branches).
- Using-Store.md: Screenshot — Portal → Store page (FullStorePage) with the category navigation on the left and a grid of wallpaper cards.
- Using-Store.md: Screenshot — a StoreCard mid-download showing the progress ring.
- Wallpaper-Cycling.md: Screenshot — the Wallpaper Cycling dialog showing the active toggle, transition-time number box, transition-type dropdown, and the reset-exclusion button.
- Wallpaper-Types.md: Diagram — a 6-box row of the wallpaper types (Gif, Url, Web, Video, YouTube, Application), each with a representative icon, fanning out to the engines that can render them.
Inline screenshot/preview references such as
../.screenshots/Preview.pngand the per-type*.gifpreviews inHome.mdand theType-*pages point at existing repo assets and are not counted as placeholders above. On the GitHub Wiki those relative paths will not resolve — re-upload the images to the wiki (or use absolute raw URLs) when publishing.
These pages were generated from the research documents in docs/wiki-research/.
Those research files are an internal working source and can be deleted after the wiki is finalized.
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