> For the complete documentation index, see [llms.txt](https://docs.bluefletch.com/bluefletch-enterprise/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bluefletch.com/bluefletch-enterprise/product-guides/bluefletch-launcher/theming/screen-saver.md).

# Screen Saver

## Overview

Screen Saver is a Launcher feature that activates after a specified period of user inactivity. Once active, it displays a rotating playlist of videos and/or images to provide a dynamic visual experience during idle time. This allows customers to display informational media on idle tablets or other Launcher devices.

## User Guide

1. If this feature is enabled in the configuration, the device will display a Screen Saver after a set period of inactivity.
2. Tapping the screen dismisses the Screen Saver and returns the user to Launcher.
3. When in secured zone and Screen Saver activates, it will also activate a session idle timer that will log a user out when idle timer expires.

## Feature Configuration

To set up the Screen Saver feature, please follow the steps below.

### Enabling Screen Saver

Launcher 4 has a new configuration block for the Screen Saver feature. To enable this feature, set it to `true` within the Launcher configuration file. Screen Saver feature is disabled by default.

```json
"screenSaver": {
  "enabled": true,
  ...
}
```

### Configuring Asset Directory/Folder

To configure the asset directory, the customer must designate a remote or local directory/folder to host the Screen Saver assets.This folder must contain a <kbd>screenSaverAssets.json</kbd> configuration that describes each asset.\
\
Launcher will use this <kbd>json</kbd> configuration to determine which assets to copy locally and the order in which they loop through during the Screen Saver.

#### Remote Hosted Directory

```json
"screenSaver": {
  ...
  "assetsPath": "https://example.com/${siteNumber}/screensaver",
  ...
}
```

#### Locally Hosted Directory

```json
"screenSaver": {
  ...
  "assetsPath": "/sdcard/Download/screenSaverAssets",
  ...
}
```

### Configuring Idle Timeout

This specifies how long the device must be inactive, in seconds, before the Screen Saver starts. <kbd>idleTimeoutSeconds</kbd> is 60 seconds by default.

```json
"screenSaver": {
  ...
  ...
  "idleTimeInSeconds": 60
}
```

### Disabling Muted Video Assets

To disable Screen Saver's muted audio on video assets, set <kbd>shouldMuteVideos</kbd> to `false`. Screen Saver's video is muted by default.

```json
"screenSaver": {
  ...
  ...
  ...
  "shouldMuteVideos": false
}
```

### Putting It All Together

```json
"screenSaver": {
  "enabled": true,
  "assetsPath": "/sdcard/Downloads/screenSaverAssets",
  "idleTimeInSeconds": 60,
  "shouldMuteVideos": false
}
```

## Screen Saver Asset Configuration

The Screen Saver asset configuration should be named `screenSaverAssets.json`. This file will include a version code, which must be updated each time an asset is changed.

It will also contain an array of assets describing their name and assetType (video or image). If the asset is an image, the duration must be specified; for video assets, no duration is needed.

The json file will have the following format:

```json
{
    "version": "1.0.0",
    "screenSaverAssets": [
        {
            "enabled": true,
            "name": "how_to_cook_bacon.mp4",
            "assetType": "video"
        },
        {
            "name":"employee_of_the_month_nov_2025.jpeg",
            "assetType": "image",
            "durationSeconds": 30
        }
    ]
}
```

#### Version Control and Assets Update

Launcher checks the `screenSaverAssets.json` file each time the screensaver activates.

* **If the version changes:** Launcher clears locally stored screensaver assets and redownloads updated assets from the new JSON file.
* **If the version remains the same:** Launcher uses locally stored assets without redownloading.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bluefletch.com/bluefletch-enterprise/product-guides/bluefletch-launcher/theming/screen-saver.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
