batocera-displaylisted
Install: claude install-skill t3chnaztea/batocera-skills
# Batocera Display
Shaders, bezels, and display mode — everything about how the picture looks.
Assumes the connection pattern, `batocera.conf`/configgen model, and verify loop
from `batocera-ops`. Because display changes are visual, the
`batocera-ops` **remote verify loop** (ES HTTP API launch + `batocera-screenshot`)
is your primary tool here: never declare a shader or bezel "working" from the
config alone — launch it and look.
## Shaders
Shaders are assigned per-system (or per-game) in `batocera.conf`. Two key
mechanisms and the traps around each.
### `shaderset` resolves against TWO search paths
`<system>.shaderset=<name>` is a **folder-name lookup** resolved against both:
1. `/userdata/shaders/configs/<name>/` (user-installed)
2. `/usr/share/batocera/shaders/configs/<name>/` (system-bundled)
Checking only one path is enough to wrongly declare a preset invalid. Some
built-in names are aliases that resolve to a preset deep under
`/usr/share/batocera/shaders/`. Before concluding a `shaderset` value is dead:
```bash
SSHB "find /userdata/shaders /usr/share/batocera/shaders -maxdepth 3 -iname '<name>*'"
```
And read the launch log for the shader actually used on the last launch — it is
authoritative:
```bash
SSHB "grep -i 'set-shader\|shader' /userdata/system/logs/es_launch_stdout.log | tail"
```
### Two shader keys: `shaderset` vs `-renderer.shader`
- `<system>.shaderset=<name>` — a Batocera shaderset folder (may bundle bezel
art, e.g. Koko-AIO/Duimon presets).
-