-
-
Notifications
You must be signed in to change notification settings - Fork 60
Create Step By Step
Audience: wallpaper creators. This page walks through the Portal "Create" dialog, the canonical authoring path for every wallpaper type. It covers the inputs every type collects, the per‑type source requirements and accepted file extensions, the field‑level validation rules, and what the Portal does on disk when it imports your wallpaper. After you finish here, read Create Package Format to understand the SucroseInfo.json file the dialog writes for you.
- Opening the Create dialog
- Fields common to every type
- Validation rules
- Per‑type source input and extensions
- What the Portal does on import
- After creation
- See also
The "Create" (Create Theme) dialog is reached from the Portal top toolbar — see Portal Interface Tour. It is the recommended authoring path because it validates your inputs, copies your source files into a new wallpaper folder, and writes a correct SucroseInfo.json automatically.
📷 Screenshot needed: The Portal "Create Theme" dialog showing the Title/Description/Author/Contact fields, tag chips, thumbnail/preview pickers, and the type‑specific Source input.
Regardless of type, the Create dialog collects the following:
| Input | Goes to manifest field | Notes |
|---|---|---|
| Title | Title |
Display title. |
| Description | Description |
|
| Author | Author |
|
| Contact | Contact |
A URL or an email address (validated). |
| Tags (optional) | Tags |
1–5 tags, each 1–20 characters. |
| Thumbnail | Thumbnail |
Small static preview image; copied in as t_<name>. |
| Preview | Preview |
Animated preview (often a GIF); copied in as p_<name>. |
| Source (type‑specific) | Source |
A local file name or a URL, depending on type (see below). |
The dialog also stamps the manifest with AppVersion (the Sucrose version that created the wallpaper) and a Version for the wallpaper itself. See Create Package Format for the full field list and defaults.
The Create dialog enforces these constraints before it will create the wallpaper:
| Field | Rule |
|---|---|
Contact |
Must pass URL validation or email validation (the helpers Various.IsUrl / Various.IsMail). |
Tags |
Between 1 and 5 tags; each tag is 1–20 characters. |
Arguments (Application only) |
Maximum 250 characters. |
Source (Url) |
Must be a valid http/https URL. |
Source (YouTube) |
Must be a valid YouTube / YouTube‑Music video or playlist URL. |
Source (Web) |
Extension must be a recognized web extension (typically .html / .htm). |
Source (Video) |
Extension must be a recognized video extension (see table below). |
Source (Application) |
Extension must be a recognized application extension (e.g. .exe). |
| Web / Application source folder | The folder being imported must be writable / unlocked so the Portal can copy it. |
| Type |
Type value |
What you supply | Accepted extensions | Behavior |
|---|---|---|---|---|
Gif |
0 |
A .gif file |
.gif |
Source copied in as s_<name>.gif. Rendered through the built‑in GifContent.html wrapper (so it gets play/pause/filter properties) when on a browser engine. |
Url |
1 |
An http/https URL |
n/a |
Source is the URL itself; no files copied. |
Web |
2 |
A local web entry file (e.g. index.html) |
.html / .htm (web extensions) |
The entire containing folder is copied into the wallpaper; Source is just the file name. This is the type that receives the full JS bridge. |
Video |
3 |
A video file |
.mp4 .avi .mov .mkv .ogv .flv .wmv .hevc .webm .mpeg .mpeg1 .mpeg2 .mpeg4 (and other recognized video extensions) |
Source copied in as s_<name>. |
YouTube |
4 |
A YouTube / YouTube‑Music video or playlist URL | n/a |
Source is the URL; rendered via the built‑in YouTubeContent.html (YouTube IFrame API). |
Application |
5 |
An executable |
.exe (recognized application extensions) |
The whole folder is copied. Optional Arguments (≤250 chars) stored in the manifest. Launched as a native process. |
Important type‑specific notes:
-
Web and Application copy the whole folder. Keep your wallpaper self‑contained inside one directory, with the entry file at the path you select. After import,
Sourceholds only the entry file name relative to the wallpaper folder. - Url and YouTube ship no local files — only a URL string. See Type Url and Type YouTube for caveats.
-
Application wallpapers reject URLs — Aurora launches a real executable; a URL
Sourcewill not run.
When you confirm the Create dialog, the Portal:
- Generates a new wallpaper folder with a random 25‑character name inside your Library location.
- Copies your source file(s) in. Source files are renamed with prefixes: source =
s_<name>, thumbnail =t_<name>, preview =p_<name>. ForWebandApplicationtypes the entire containing folder is copied. - Writes
SucroseInfo.jsonwith the fields you entered (and theAppVersion/Versionstamps). - The new wallpaper appears in your Library, ready to Use and Customize.
The Create dialog only writes SucroseInfo.json. To add user‑adjustable controls and live data you author two optional sibling files by hand:
-
SucroseProperties.json— sliders, checkboxes, dropdowns, color pickers, and the property listener. See Create Customization Controls. -
SucroseCompatible.json— audio/system data hooks and engine‑state callbacks. See Create JS Bridge, Create Audio API, and Create System API.
For complete, shipping examples to copy from, see Create Example Wallpapers. When you are ready to share, see Create Sharing Publishing.
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