The welcome page displays a rotating banner carousel with slides for events, sponsorship, and tips. Slide content and display configuration are loaded from JSON resource files at runtime rather than being hardcoded.
| Path | Purpose |
|---|---|
Default slide deck and configuration shipped in the source tree. | |
JSON Schema for validating slide files. | |
Banner images referenced by slides. All files in this directory are
automatically embedded via | |
| |
JSON loading, config merging, rotation logic, and rendering. | |
QRC resource generation for Wireshark. | |
QRC resource generation for Stratoshark. |
Slide files use the following structure:
{
"schema_version": 1,
"config": {
"colors": {
"default": { "start": "#333333", "end": "#222222", "degrees": 145 },
"events": { "start": "#1a4a6e", "end": "#234d6e", "degrees": 145 },
"seasonal": {
"start": "#781E32", "end": "#641E64", "degrees": 145,
"steps": ["#781E32", "#8C5014", "#327832", "#1E5A82", "#3C2882", "#641E64"]
}
},
"types": {
"events": { "randomized": false, "maxdisplay": 0, "only": false },
"tips": { "randomized": true, "maxdisplay": 3 }
}
},
"slides": [
{
"type": "events",
"tag": "Conference",
"title": "SharkFest'26 US",
"description": "Nashville, Tennessee",
"description_sub": "July 18-23, 2026",
"body_text": "Join the annual Wireshark developer...",
"button_label": "Learn More",
"url": "https://sharkfest.wireshark.org/sfus/",
"image": "sharkfestus.png",
"date_from": "2025-12-01",
"date_until": "2026-07-23"
}
]
}
A formal JSON Schema is available at resources/json/slides.schema.json for editor-based and CI validation.
The type, title, description, and url fields are required per slide.
Slides missing any of these are skipped with a warning. The type must be one
of "events", "sponsorship", "tips", or "seasonal". Note that
"sponsorship" and "seasonal" are reserved for the predefined slides.json and cannot be used in custom slide files. All other slide fields are optional and default to empty strings.
The image field is a filename resolved at runtime under :/json/banners/. If
empty or missing, a generic semi-transparent overlay is shown instead.
The application field filters a slide to either "wireshark" or
"stratoshark". If omitted, the slide is shown in both applications.
The date_from and date_until fields use ISO 8601 format (YYYY-MM-DD).
Slides are hidden before date_from and after date_until. Omitting either
field removes that constraint.
date_month (1-12) and date_day (1-31) specify the exact day the slide should be shown each year. date_from and date_until will be ignored if these fields are present. For example, date_month=12 and date_day=25 will show the slide only on December 25th of each year.
The optional config section controls slide display behavior and colors.
Colors (config.colors): Per-type gradient color overrides with "start" and
"end" fields in #RRGGBB format. The "default" entry provides fallback
colors for types without explicit colors. Available keys: "default",
"events", "sponsorship", "tips", "seasonal".
Each color entry also supports the optional fields "degrees" (integer, 0-360)
for the gradient angle and "steps" (array of #RRGGBB hex strings) for
intermediate gradient color stops. When "steps" is provided, the colors are
distributed evenly across the gradient from 0.0 to 1.0 instead of using a
simple start/end pair.
Type settings (config.types): Per-type display settings. Available keys:
"events", "sponsorship", "tips", "seasonal". Each entry supports:
| Field | Description |
|---|---|
| Boolean (default |
| Integer (default |
| Boolean (default |
| Boolean (default |
All config fields are optional. Missing values use defaults. Config from a custom file merges over the predefined config on a per-type basis.
slides array.
date_from and date_until to time-limit slides for specific events.
file(GLOB).
Distributors can inject additional slides without modifying the source tree
using the CUSTOM_SLIDES_JSON CMake variable:
cmake -DCUSTOM_SLIDES_JSON=/path/to/my_slides.json ..
The custom file uses the same JSON schema. Custom slides are merged with
predefined slides per type, respecting only and hidden flags. If the path
does not exist, it is silently ignored.
Custom file restrictions:
hidden flag in config.types is only valid in custom files.
only flag in a custom file only takes effect if the predefined
slides.json does not set only=true for that type.
| Important | |
|---|---|
|
Custom slides in publicly distributed binaries (e.g. Linux distribution packages) must adhere to the Wireshark Code of Conduct. Slides must not link to deceptive downloads, trick users into purchasing unrelated products, or otherwise exploit or mislead users. The welcome page is a trust surface — users expect its content to be relevant and honest. |
See also doc/README.slides for a standalone reference.