ui-sim

Builds, boots, drives, and screenshots the PlxNative desktop simulator to verify UI changes.

39|7|Updated Jul 3, 2026
One-click install
npx skills add https://github.com/GLinnik21/plx-native --skill ui-sim-glinnik21
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ui-sim
Source: https://github.com/GLinnik21/plx-native/tree/main/.agents/skills/ui-sim
Command: npx skills add https://github.com/GLinnik21/plx-native --skill ui-sim-glinnik21

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Verifying every UI change on a single shared LG television serializes the whole dev loop, so this Skill lets you build, boot, drive, and screenshot the PlxNative desktop simulator on macOS or Windows/WSLg to validate UI and Plex-data-layer work without the TV. ## Core Features & Use Cases - Build and boot the simulator: Use make sim-macos targets or tools/sim.ps1 on Windows/WSLg to build the SDL2/OpenGL app, stage a PMS token, and boot headless or interactive sessions. - Drive and screenshot screens: Arm boot triggers in an isolated instance root (SIM_DIR), send key tokens through the remote FIFO, and capture numbered PNG screenshots at authored 1920x1080 resolution. - Parallel-safe verification: Run multiple simulator instances concurrently, each with its own runtime directory, so several agents never collide or queue behind the single television. - Use Case: You changed the library grid spacing and the TV is in use. Run make sim-macos-shot SIM_W=1920 SIM_H=1080, inspect the PNG, iterate, then hand off to the tv-session skill for final on-device verification. ## Quick Start Ask the assistant to build the simulator with make sim-macos, boot it to the home screen, and take a 1920x1080 screenshot so you can review the layout.

Frequently Asked Questions about ui-sim

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I screenshot the PlxNative simulator on macOS?

Run make sim-macos-shot with SIM_W=1920 SIM_H=1080 and a SIM_SHOT output path to boot headless, settle, and write one PNG. Always request the full 1920x1080 size, since the default fitted window produces 960x540 shots that lose hairline and glyph detail.

How do I run multiple simulator instances at the same time?

Give each instance its own SIM_DIR instance root, for example /tmp/sim-a and /tmp/sim-b, and they run safely in parallel. Each root holds its own triggers, remote FIFO, and event log, so concurrent agents never collide.

Does the simulator work on Windows?

Yes, through tools/sim.ps1, which builds inside the Ubuntu 22.04 WSL distribution and opens the SDL/OpenGL window via WSLg. It covers UI, sign-in, Plex browsing, and screenshots, but playback stops at the host no-video path; use macOS for demux and clock-sink simulation.

Can I trust frame rate numbers from the simulator?

No. Every simulator heartbeat carries sim=1, and the FPS gates are calibrated to the television's Mali GPU, so simulator fps or loop numbers are never performance evidence. Frame rates, text rasterization, and LG decoder behavior must be verified on the device with the tv-session skill.

Why does writing to the simulator remote FIFO hang?

Opening the FIFO with a plain redirect like printf x > fifo blocks forever in open(2) when the app is not running, because there is no reader. Always open it read-write first with exec 3<> $SIM_DIR/plxnative-remote and write to descriptor 3.

Why does the simulator build fail on a network or external drive?

Network shares and some external disks do not implement flock, so a Cargo target dir there fails with a session lock error. Set SIM_TDIR to a local path such as $HOME/plxnative-sim-target and leave the checkout where it is.