Reference
Use the Rayslides controls.
Use this page during editing or a live presentation.
Command-line options
rayslides [options] [deck.sld]
| Option | Action |
|---|---|
--studio | Open the deck in Studio. |
--no-crowd | Disable the Crowdplay server. |
--crowd-host=HOST | Bind Crowdplay to the given host. |
--crowd-port=PORT | Change the Crowdplay port. The default is 7331. |
--presenter-host=HOST | Advertise the given Presenter address. |
--presenter-port=PORT | Change the Presenter port. The default is 7332. |
--showtime-report=JSON | Preflight the exact deck, write stable JSON, and exit nonzero on blockers. |
--portable-show=DIR | Create an ordinary deck-and-assets folder, independently re-open it, preflight it, and write its report. |
-h, --help | Show the complete option list. |
-v, --version | Show the version. |
A deck path can appear before or after the options. Use -- before a path that starts with a hyphen.
Presentation controls
| Control | Action |
|---|---|
| Right, Page Down, Space, or click | Show the next step or slide. |
| Left, Page Up, or Backspace | Hide the current step or show the previous slide. |
| 1 or G | Show the first slide. |
| 0 or Shift + G | Show the last slide. |
| F | Turn fullscreen on or off. |
| D | Identify and explicitly choose the presentation display. |
| L | Turn the laser pointer on or off. |
| Shift + L | Select the next pointer size. |
| C | Clear the pointer drawing. |
| M | Play or pause the videos on the current slide. |
| Shift + M | Stop the videos on the current slide and rewind them. |
| B | Turn Beast Mode on or off. Beast Mode removes the 60 FPS limit. |
| E | Enter or leave Studio. |
| Cmd/Ctrl-O | Browse for and open another .sld deck. |
| F3 | Show or hide the diagnostics display. |
| Q or Esc | Quit. |
Save images and PDFs
| Control | Output |
|---|---|
| S | Save the current slide as a PNG file. |
| Shift + S | Save screenshots and export the deck as a PDF. |
The PDF contains one page for each logical slide. Rayslides uses the final reveal and morph state.
Showtime preflight
Open Studio's Commands menu and choose Showtime preflight. Showtime walks every base scene, reveal endpoint, cumulative morph scene, reusable definition, and deterministic poster-frame export graph without navigating, seeking, playing media, editing source, or changing history and selection.
Blockers include malformed source, unavailable presentation pixels, missing glyphs, and unavailable required services. Warnings identify reviewable conditions such as text overflow, off-canvas staging, non-portable paths, display mismatch, or an unmeasured Presenter rehearsal. Findings link to a slide/object or editable Library definition when possible.
| Control | Action |
|---|---|
| Up/Down or wheel | Review findings. |
| Enter | Open the selected slide, object, definition, or source location. |
| R | Rerun against the current exact document and venue state. |
| P | Create a portable show folder. |
| Esc | Close Showtime. |
Create portable show copies literal image, video, and custom-font dependencies beneath assets/, handles equal basenames deterministically, rewrites only the copied references in a readable .sld, then re-opens and preflights the copy. It refuses an existing destination and never edits the original. Presenter latency evidence contains only bounded counts, median/p95 values, and failures—never notes, private URLs, capabilities, sessions, or client identity.
Studio tools
| Tool | Key | Action |
|---|---|---|
| Select | V | Select, move, and resize an object. |
| Text | T | Add a text box. |
| Bullets | B | Add one bullet for each source line. |
| Image | I | Browse for and place an image. |
| Video | M | Browse for and place a video. |
| Rectangle | R | Add a colored shape. |
| Line | L | Add a plain line; A adds one with an end arrow. |
| Library | U | Place a reusable item. |
Image and Video prompts include a Browse… file picker on every platform: the same Rayslides-drawn chooser used by Open deck… (Cmd/Ctrl-O), filtered to images or videos. Manual path entry remains available everywhere. Dropping a supported image or video over the Studio canvas creates that media item at the drop position. Saved decks use a relative path when possible.
SVG files use the Image path, including picker, replacement, fitting, reusable ownership, diagnostics, and export. The embedded vector subset does not render SVG <text>; convert type to paths first.
When an image or video is selected, Properties shows its effective IMAGE or VIDEO kind, its filename/path, and a separate ... replacement button. Click ..., or press Enter while Properties is visible, to choose a new source through the same picker and path policy without changing the object's geometry, ID, ordering, or other properties. On reusable instances, an amber R beside a local source override restores the inherited image or video.
Both media kinds share Stretch, Fit, and Fill controls. Fit preserves the complete picture inside the box; Fill preserves aspect ratio while cropping to cover it. FX and FY choose the normalized focal position from 0 to 1, and the panel shows natural pixels beside the authored box size.
Video Properties also has a Playback page for Auto, Loop, Mute, poster time and scrubbing, volume, and opacity. Poster changes select the still shown before playback; playback itself still begins at the start. Authored volume and mute are restored on slide entry, while presenter adjustments remain temporary for that visit. Amber R markers reset local source, Fit, focus, poster, volume, and playback-toggle overrides independently.
A live camera is a normal transformed video object: @box cam=0 video_size=1920x1080 poster_image=assets/camera-off.png x=520 y=180 w=880 h=560 fit=cover rotation=-12. It supports Fit/Fill, focal position, opacity, rotation, and morph geometry. The poster is used while stopped and in passive/export views. On macOS, run the bundled Rayslides.app so the system can request camera permission; after allowing the first prompt, press Play again if that initial start timed out. On Linux, identify the built-in or USB V4L2 device with v4l2-ctl --list-devices and prefer its stable /dev/v4l/by-id/... path; add cam_format=mjpeg to reach a mode the camera offers in MJPEG alone, commonly every mode above 640×480. See the live camera guide and tested rotated-feed screenshot.
If media cannot load, Studio keeps a selectable fallback box while the filename and ... replacement action remain available. It distinguishes missing or unreadable files, unsupported image data, missing ffmpeg/ffprobe, probe or codec failures, and poster decode failures. Out-of-range or recoverable poster choices receive amber warnings without losing their pixels, and silent videos are identified without being treated as broken. These diagnostics are Studio chrome and do not enter presentation or export pixels.
Properties also exposes text alignment, rectangle radius, line stroke/direction/arrow heads, and exact clockwise rotation=. Drag the connected handle above a selected text, shape, image, video, or line object to rotate it; hold Shift for 15° steps. Painted hit testing, bounds, smart-guide targets, reusable/local ownership, morphing, Showtime, screenshots, and PDF export use the same rotation.
Studio editing controls
| Control | Action |
|---|---|
| Cmd/Ctrl + K | Open the command palette. |
| Cmd/Ctrl + F | Find a slide, library item, or object. |
| Cmd/Ctrl + O | Open an existing deck through the built-in file chooser; also available as Open existing deck… on the starter chooser. |
| Cmd/Ctrl + S | Name an untitled deck or save the named deck. |
| Shift + Cmd/Ctrl + S | Save a unique *.edited.sld copy. |
| Cmd/Ctrl + Z | Undo the last source edit. After choosing a starter, return to the chooser. |
| Shift + Cmd/Ctrl + Z | Redo the last source edit. |
| Cmd/Ctrl + C / V | Copy or paste supported objects. |
| Cmd/Ctrl + D | Duplicate the selection or the current slide. |
| Backspace | Delete the selected objects. |
| Cmd/Ctrl + L | Lock or unlock the selected objects. |
| Cmd/Ctrl + A | Select every editable object in the scene. |
| Shift + click | Add or remove an object from the selection. |
| Drag empty canvas | Select each object that overlaps the marquee. |
| Arrow keys | Move the selection by one logical pixel. Hold Shift for ten. |
| Cmd/Ctrl + [ / ] | Move the selection one layer down or up. |
| Shift + Cmd/Ctrl + [ / ] | Move the selection to the back or front. |
| Enter | Edit text or use the selected library item. |
| P | Promote the selected object for reuse. |
| F2 | Rename the selected library definition and its uses. |
| Cmd/Ctrl + N | Add a slide after the current slide. |
| Page Up / Page Down | Select the previous or next slide. |
| [ / ] | Select the previous or next morph scene. |
| Tab | Turn Focus Canvas on or off. |
| G | Turn the grid and grid snapping on or off. |
Move around the canvas
| Control | Action |
|---|---|
| Cmd/Ctrl + mouse wheel | Zoom around the pointer. |
| Cmd/Ctrl + + / - | Zoom around the canvas center. |
| Cmd/Ctrl + 0 | Fit and center the complete slide. |
| Mouse wheel or trackpad | Pan the canvas. |
| Space + drag or middle-button drag | Pan the canvas directly. |
| Hold Cmd/Ctrl while dragging | Bypass the guides and grid snapping. |
| Hold Shift while resizing | Preserve the displayed aspect ratio. |
| Drag the handle above an object | Rotate clockwise around its effective center; hold Shift for 15° steps. |
| Hold Alt while editing a template item | Edit the shared definition. |
Phone and audience controls
| Control | Action |
|---|---|
| P | Show or hide the private Presenter pairing panel. |
| Shift + P | Unpair the phone and stop the Presenter server. |
| N while pairing | Select another active network address and rotate the private capability. |
| L while pairing | Copy the complete private link for an intentional laptop companion. |
| D | List, identify, and choose the projector display without guessing. |
| O | Open or lock the active Crowdplay poll. |
| V | Show or hide the poll results. |
| R | Reset the active poll votes. |
Limits and defaults
| Area | Value |
|---|---|
| Slide coordinate system | 1920 × 1080 |
| Default reveal | fade, by=item, 0.3 seconds |
| Default morph | smooth, 0.6 seconds |
| Default transition | 0.4 seconds |
| Morph easing | linear, smooth, or spring |
| Reveal and transition effects | appear, fade, and four slide directions |
| Poll choices | Up to 8 choices |
| Polls in one deck | Up to 32 polls |
| Active participants | Up to 512 participants |
| Poll ID | 48 bytes; use letters, digits, -, or _ |
| Poll prompt | Up to 192 bytes |
| Poll choice label | Up to 64 bytes |
| Crowdplay panel | x=100 y=80 w=1720 h=920 by default |
Use one Crowdplay item on each slide. Give every poll a unique ID.
Diagnostics
Press F3 or use --diagnostics. The display shows frame, rebuild, cache, deck, and window data.
The CLI also provides deterministic capture options. Run rayslides --help for the current list.