# Create a Video Wallpaper

A `kind: video` wallpaper is a minimal project that loops a single video file fullscreen on the desktop. No React, no Vite, no build step — just `fluxlay.yaml` and the video file.

## Set up the directory

```bash
mkdir my-video-wallpaper && cd my-video-wallpaper
```

Put your video file in the project directory.

<FileTree
  items={[
    {
      name: "my-video-wallpaper",
      children: [{ name: "background.mp4" }, { name: "fluxlay.yaml" }]
    }
  ]}
/>

Supported formats: `.mp4` and `.webm`.

## Create the manifest

```yaml title="fluxlay.yaml"
schemaVersion: 1
name: My Video Wallpaper
slug: my-video-wallpaper
version: 0.1.0
kind: video
source: ./background.mp4
description: A fullscreen looping video wallpaper.
```

`source` is required and resolved relative to the project root.

## Build

<PackageManagerCommand type="exec" command="fluxlay build" />

This produces a `.fluxlay` package. No HTML is bundled — the Fluxlay desktop app generates fullscreen looping HTML for the video at delivery time.

## Preview

<PackageManagerCommand type="exec" command="fluxlay dev" />

The dev server works the same way as for web wallpapers.

## Notes

- Videos play muted, looped, and autoplaying. Audio is not included.
- Large files inflate package size and disk usage. Re-encode (lower resolution or bitrate) before distributing.
- Custom properties and shell commands are not available. For dynamic wallpapers, use `kind: web`.

See the [Manifest Reference](/en/studio/developer/reference/cli/manifest.md) for details.
