Skip to content

Latest commit

 

History

History
664 lines (535 loc) · 120 KB

settings.md

File metadata and controls

664 lines (535 loc) · 120 KB

Settings reference

Documentation

This page is the reference for every setting in Nightjar for Android, Android TV and Fire TV, followed by Nightjar for Windows and Linux. Both clients use the same sections, Video, Display & image, Controls, Audio, Streaming, App, Advanced and Debug at the end for settings whose default is right for nearly everyone, and the same layers of values: the main settings, a named profile, this PC and this game.

Each row shows its current value; the explanation appears with the setting or behind its info or Help button. Search matches titles, explanations and section names, including everything in Advanced. Selecting a result opens its section, and Back returns first to the search, then to the section where you started. Changes save automatically. Nightjar shows only the options the device supports.

On a TV, and on screens at least 840 dp wide, Settings uses two panes: sections on the left, the selected section on the right. Moving the D-pad or controller over a section shows it on the right at once; Center or Right moves into it, Left or Back returns to the list, and Back from the list leaves Settings. Touching a section shows it without moving focus. The list starts with Search settings, a focusable row (also on phones with a controller attached); results fill the right pane. On a TV, focus starts on Controls, never on the toolbar. Links from other screens open the setting they name, selected and, with two panes, focused.

Profiles, Controller buttons, Keyboard shortcuts, GPU driver and Latency benchmark put the first focus on their content when a remote, controller or keyboard drives them. Every focused button or row shows the same amber outline.

Defaults are those of a fresh installation, before any preset or PC override. Changes to stream settings apply from the next stream; the stream menu holds the controls that can change during a session.

The tables between the markers below are generated by generate-settings.py from preferences.xml, the English strings and arrays, and the Java defaults and preset values. Regenerate them after changing preferences instead of editing rows by hand; the documentation checks detect stale output.

Global settings

These tables include every preference, including actions, grouped as the Settings screens show them. On/Off choices have no units; action rows have no stored default. Device capability checks can hide or disable a row.

Tier: Main rows show when a section opens; More rows fold behind the section's last row, More … settings, and search still finds them (res/values/settings_tiers.xml).

Video

Setting / preference key Tier Default Choices and units When to change or use
Resolution
list_resolution
Main This screen's native resolution; follows the screen used for each stream 360p (640 × 360 pixels); 480p (854 × 480 pixels); 720p (1280 × 720 pixels); 1080p (1920 × 1080 pixels); 1440p (2560 × 1440 pixels); 4K (3840 × 2160 pixels) Choose Custom to enter a fixed width and height (64–16384 pixels each) for every stream without a resolution override. Named profiles, PC and game overrides retain their priority. Custom dimensions stay fixed when the screen changes. Raise for detail; lower for less network and decoding load. The picker also includes screen and standard sizes; larger fixed presets stay listed while chosen. Changing resolution preserves an explicitly chosen bitrate.
Frame rate
list_fps
Main Screen maximum (rounded, 1–1000 FPS) 30 FPS; 60 FPS; 90 FPS; 120 FPS Raise for smoother motion on a fast screen. Open the list and choose Show all frame rates to include rates the screen may not support (possible stutter; compare rendered FPS in the overlay), or Show supported frame rates only to go back. Stored as checkbox_unlock_fps. The screen's own refresh rate is added as Screen refresh rate. Changing resolution or FPS preserves an explicitly chosen bitrate.
Automatic bitrate
automatic_bitrate
Main No stored default On; Off On until you move the bitrate slider: the bitrate is the default for the resolution, frame rate and codec, and follows them when they change. Turn it on again to go back to that default; turn it off to keep the bitrate shown when those change. Stored as bitrate_user_set (inverted) with seekbar_bitrate_kbps.
Bitrate
seekbar_bitrate_kbps
Main Calculated for the native resolution and screen maximum FPS; with PyroWave, PyroWave's own (about 400 Mbps at 1080p60, at most 900 Mbps or 90% of a known wired link, never below its minimum); follows changes until bitrate is chosen explicitly 0.5 Mbps–2000 Mbps; step 0.5 Mbps; buttons 1 Mbps; presets 10 Mbps, 20 Mbps, 40 Mbps, 80 Mbps, 150 Mbps, 280 Mbps Raise for image quality on a stable link; lower for network loss. The slider is logarithmic; the buttons make fine adjustments.
Lower bitrate when the network is busy
checkbox_auto_bitrate
Main Off On; Off Off by default. Lowers the bitrate when the connection, decoder or device heat can't keep up and raises it again when things recover, never above Bitrate and never below a built-in floor (2 Mbps, or more for large streams). The host's own adjustment stands down while it runs. This is the default for every PC; the stream menu's Turn on or Turn off Lower bitrate when the network is busy saves a choice for one PC, and changing this switch makes every PC follow it again. Needs a host that reports its stream bitrate and accepts bitrate changes (Rubylight). A Sunshine-based PC with its own automatic bitrate runs that instead, following the network reports Nightjar sends every three seconds.
Bitrate on mobile data
list_mobile_bitrate_kbps
Main Off Off; 3 Mbps; 5 Mbps; 10 Mbps; 15 Mbps; 20 Mbps; 30 Mbps; 50 Mbps Choose a cap for streams that start on mobile data or on Wi-Fi that Android marks as metered, such as a phone's hotspot. It caps the bitrate from every layer, including profiles, PC and game values; Off uses the same bitrate on every network. Read once at stream start. See named profiles.
Video codec
video_format
Main Automatic (recommended) Automatic (recommended); Prefer AV1; Prefer HEVC; H.264; PyroWave (needs PC support) Start with Automatic. Choose a specific codec to compare decoder performance; Prefer AV1 and Prefer HEVC fall back when the PC or device lacks them. PyroWave requires a host that supports it (Rubylight, or Vibepollo with PyroWave available) and Vulkan capabilities; on a PC whose host has none, that PC uses the setting for all PCs or Automatic instead.
HDR
checkbox_enable_hdr
Main Off On; Off Enable with an HDR screen, a compatible decoder and HDR configured on the host display. HDR10 works with any host that streams HDR; HDR10+, HLG and Dolby Vision are used where the screen, the decoder and the PC support them (Rubylight 3.0). Availability is device-filtered.
More settings
more_video
Main Closed Action Shows or hides the Video rows that are not main, such as automatic quality and 10-bit SDR. Settings search and links find them while it is closed.
Sharper colored text
sharp_color
More Off Off; On Off by default. On streams full color detail (4:4:4) so colored text and thin lines stay crisp: native 4:4:4 where this device decodes it and the PC encodes it, else packed full chroma where both offer it (New streaming engine, HEVC or AV1), else neither, and the app says once per PC why not. HDR keeps priority: packed full chroma runs with HDR only where both sides have a 10-bit packed mode. Hidden while the codec is PyroWave, whose own 4:4:4 choice applies. Stored as checkbox_yuv444 and experimental_packed_444, both written; either one on from an older version reads as Automatic. The decision is nightjar-core's, the same as desktop Nightjar's.
Less color banding
checkbox_enable_sdr_10bit
More Off On; Off Enable if you see banding in gradients and the screen has no HDR, or HDR is off. Streams SDR in 10-bit HEVC or AV1 and needs a Main10 decoder on this device and a PC that offers 10-bit; otherwise the stream is 8-bit and the app says so. The PC's display must be in SDR: with HDR on it, the stream is HDR. Not used with PyroWave. Takes effect on the next stream.
Frame Warp
checkbox_frame_warp
More Off On; Off Off by default. Turn on to see a mouse or right-stick camera turn on the next refresh of this screen: each picture is shifted by the turn the PC has not drawn yet, and the game's HUD stays in place. Needs the New streaming engine and a host that offers Frame Warp (Rubylight); the host learns each game first, so the overlay reads learning until it locks. It draws through Vulkan (Android 10 and a GPU with Vulkan 1.1) or else OpenGL ES without upscaling, which adds a render pass; PyroWave streams draw it in their own renderer, with their upscaling and HDR. Off for HDR without Vulkan and for Full chroma, with a message. The shift is a translation: right for a turn, approximate near the edges at wide fields of view, and not used for movement.
Automatic quality
adaptive_quality_mode
More Off Off; Preserve motion; Preserve detail; Extend battery life Off by default. Motion preserves FPS first, Detail preserves resolution first, and Battery also reduces work on healthy links. Lowers resolution or frame rate when the network, slow decoding or heat keep the stream from running well; not available with PyroWave. The stream menu can override the mode per PC.
Minimum resolution
adaptive_quality_min_resolution
More 720p 360p; 540p; 720p; 1080p; 1440p Sets the smallest short edge for automatic quality, with the aspect ratio preserved. The selected starting resolution is the ceiling; a minimum above that ceiling is clamped down. Shown while Automatic quality is not Off.
Minimum frame rate
adaptive_quality_min_fps
More 30 FPS 30 FPS; 45 FPS; 60 FPS; 90 FPS; 120 FPS Sets the lowest FPS automatic quality may request, including Battery mode. Recovery increases one step after 30 healthy seconds; reductions are at least 15 seconds apart. Shown while Automatic quality is not Off.
Thermal protection
checkbox_thermal_protection
More Off On; Off Turn on only if the device throttles or gets uncomfortably hot while streaming. When the device reports heat, Lower bitrate when the network is busy halves the bitrate in steps and automatic quality lowers the resolution, and PyroWave stops forcing the top clocks. Off by default, because most phones and TV sticks run hot in normal use.

Display & image

Setting / preference key Tier Default Choices and units When to change or use
Video size
checkbox_stretch_video
Main Fit Fit; Fill (crop); Stretch; 1:1 pixels How the stream fills a screen of another shape: Fit shows all of it with bars, Fill (crop) fills the screen and cuts off the edges that do not fit, Stretch fills it and distorts shapes, 1:1 pixels shows the stream at its own size, centred. The key is the older Stretch switch, still written (on only for Stretch) so older versions behave sensibly; the mode itself is stored as video_scaling. Also in the stream menu. See video scaling.
Orientation
stream_orientation
Main Automatic Automatic; Landscape; Portrait; Rotate with device Automatic uses landscape on phones and any orientation on tablets, squarish screens, windows and external displays. Landscape and Portrait lock the screen; Rotate with device follows it within the system rotation lock. A host streaming from its virtual display starts the stream in the screen's shape, and with Rotate with device asks for the turned size while the stream runs where the host takes in-stream reconfigure. Other hosts keep the stream's size and Video size fits it into the turned screen. Hidden on TVs. See orientation.
Variable refresh rate
checkbox_vrr
Main Off Off; On; Fastest Off by default. On and Fastest enable Android's automatic ARR policy, override pacing to Lowest latency and disable the lower refresh rate; hosts that support VRR are asked for it too. On (Real VRR) shows each frame at its host timestamp plus a steady delay, so the screen refreshes in step with the game rather than the network: the delay covers the frames that arrive together, a frame later than that is shown when it is ready, and the frames behind a late one keep the game's spacing. It adds that delay (about 1 to 4 ms in desktop Nightjar's measurements); choose Fastest, which shows each frame the moment it arrives, for the lowest latency. With On, hosts that announce clock sync (Rubylight) add the host-to-present latency to the performance overlay; PyroWave streams follow the choice too. Offered only on Android 16 with a screen that has ARR; elsewhere it is greyed and reads as Off, here and in PC, game and profile settings, and the saved choice is kept. Stored as checkbox_vrr (On for On and Fastest) and checkbox_real_vrr (Real VRR: On for On, Off for Fastest, on by default; Off keeps it); a PC, game or profile value sets both. Desktop Nightjar's Variable refresh rate (vrr and present_at_host_times) is the same setting.
More settings
more_display
Main Closed Action Shows or hides the Display & image rows that are not main: refresh, image and PC display settings. Settings search and links find them while it is closed.

Refresh rate

Setting / preference key Tier Default Choices and units When to change or use
Show frames at the PC’s frame times
checkbox_host_frame_times
More Off On; Off Shown with Variable refresh rate off. Enable for even motion on a fixed refresh when the network or decoder adds jitter. Each MediaCodec frame is released at its host timestamp plus a delay covering about 97% of recent frames, on the screen's vsync grid; later frames are shown at once. Adds that delay (usually a few milliseconds) and replaces Frame pacing. Hosts that announce clock sync (Rubylight) add the host-to-present latency to the performance overlay. PyroWave streams are not affected. Shown while Variable refresh rate is Off.
Frame pacing
frame_pacing
More Lowest latency Lowest latency; Balanced; Balanced with FPS limit; Smoothest video (more delay) Use Lowest latency for response, Balanced for cadence, Balanced with FPS limit to cap pacing, or Smoothest video to retain frames at the cost of delay. Greyed out while Host frame times or Variable refresh rate is on. Shown while Variable refresh rate is Off.
Keep only the newest frame
checkbox_drop_late_frames
More On On; Off Enable with Balanced pacing to discard older queued outputs. Favors response over smoothness. Shown beside Frame pacing only while it is Balanced.
Allow lower refresh rate
checkbox_reduce_refresh_rate
More Off On; Off Enable to allow a lower screen refresh for power savings. Shown while Variable refresh rate is Off.
Match the screen to the game’s frame rate
checkbox_content_rate_frame_rate
More Off On; Off Enable on a screen with several refresh modes, with Allow lower refresh rate (or a Balanced with FPS limit or Smoothest video pacing) on. Once the game's frame rate has held steady for two seconds, Android is told that rate and may move the screen to a mode that divides it evenly, for example 60 Hz for a 60 fps game in a 120 fps stream. Only seamless changes are requested (Android 11 or newer), at most one every two seconds, and never below the rate Allow lower refresh rate off keeps. Needs a host that announces clock sync (Rubylight); has no effect with Variable refresh rate, a TextureView or PyroWave. Shown while Allow lower refresh rate is On.
Take back display queue delay
checkbox_display_queue_recovery
More On On; Off On by default. With Lowest latency or Balanced pacing on a fixed refresh, where the device reports when frames are shown: when the screen keeps frames waiting a whole refresh longer than the stream's own level for 3 s, one frame is skipped and the wait is checked after; skips that change nothing turn it off for the stream. The log's Display queue: lines show each step. Turn it off to compare a stray skip against the added wait. Hidden while Show frames at the PC’s frame times is on: frames are scheduled then and nothing is skipped. Android only: desktop has no compositor display queue. Shown while Variable refresh rate is Off.

Image

Setting / preference key Tier Default Choices and units When to change or use
Upscaling
upscaling_mode
More Off Off; Smooth; Sharp (FSR); Sharp, Snapdragon (SGSR) Choose a stream resolution below the screen size for SDR upscaling. Smooth is bilinear; Sharp (FSR) and Sharp, Snapdragon (SGSR) add edge sharpening. PyroWave uses SGSR for both FSR and SGSR selections. HDR and 10-bit streams use direct output; the row says so.
Upscaling sharpness
upscaling_sharpness
More 50% 0%–100%; step 1% Reduce for halos or ringing; raise for soft edges. Applies on the next stream. At 0%, FSR skips extra sharpening; SGSR still reconstructs edges. Shown only with Sharp (FSR) or Sharp, Snapdragon (SGSR).
Video position
video_alignment
More Center Center; Top Top places a Fit or 1:1 picture at the top of the screen, leaving the space below for the soft keyboard or the lower half of a half-folded phone. No effect on Fill and Stretch, which cover the whole screen.

PC display

Setting / preference key Tier Default Choices and units When to change or use
Virtual display
checkbox_virtual_display
More Off On; Off Enable to request a host display matching the stream. Requires host support and a ready display driver.
PC render resolution
seekbar_virtual_display_scale
More 100% 50%–200%; step 5% Change the PC's render resolution relative to the stream. Desktop text size stays as set on the host. Shown while Virtual display is On.
PC display scaling
list_virtual_display_dpi
More PC’s own PC’s own; 100%; 125%; 150%; 175%; 200%; 225%; 250%; 300%; 350%; 400%; 450%; 500% Raise for larger text and interface on the virtual display, for example on a small screen; the resolution does not change. PC's own keeps the scale set on the PC. Rubylight PCs read it; other hosts ignore it.
Display arrangement
host_display_location
More No stored default Action How the PC places the streamed display beside its own screens, for every PC; a PC's own choice in its menu wins. Keep PC display primary preserves the monitor's primary role; make virtual display primary moves it to the stream. Needs host support. Stored as host_display_location, and per PC as before.

Controls

Setting / preference key Tier Default Choices and units When to change or use
Touch mode
checkbox_touchscreen_trackpad
Main Trackpad Trackpad; Direct mouse; Multi-touch; Local cursor; Touch off; Trackpad (touchpad gestures) Use Trackpad for relative cursor movement, Trackpad (touchpad gestures) for the same with a physical touchpad’s gestures (tap-and-a-half drag, flick momentum), Direct mouse to point at a screen location, Multi-touch for host touch input, Local cursor for a pointer drawn on this device with no round trip, or Touch off to ignore fingers while playing with a controller (Back still opens the stream menu). Unsupported native touch falls back to Direct mouse. The picker's Help explains each mode. See touch modes.
Mouse mode
checkbox_absolute_mouse_mode
Main Captured Captured; Desktop pointer Captured by default, for game mouse look. Desktop pointer moves the PC's pointer like a desktop mouse, with acceleration. Available on Android 8+ except devices using the separate raw pointer path. Stored as the switch checkbox_absolute_mouse_mode (on: Desktop pointer).
Controllers
controllers
Main A player each Off; One player; A player each A player each by default: each controller is its own player and the PC sees controllers as they connect. One player makes every controller player 1 and keeps one controller present on the PC, for games that need one before any connects. Off sends no controller to the PC. Stored as checkbox_send_controllers and checkbox_multi_controller; an older store with the multiple controllers switch off reads as One player.
Controller buttons
controller_button_mapping
Main No stored default Action Open Controller buttons, press a digital button and choose its output or Nothing, and choose what the controller connects as (Automatic, Xbox without motion or touchpad, PlayStation or Nintendo). Mappings default to the original button and Connect as to Automatic; both are saved per controller model and apply next stream.
Controller test
controller_test
Main No stored default Action Open Controller test to see buttons, sticks, triggers and the D-pad live and to try rumble, lights, motion sensors and the touchpad where the controller has them. Works with a D-pad or controller alone; hold B or Back for one second to leave. Leaving stops rumble and restores the lights. See controller test.
Show on-screen controls
checkbox_show_onscreen_controls
Main Off On; Off Enable a touchscreen gamepad. The group is hidden on devices without a touchscreen.
Keyboard follows text fields
checkbox_keyboard_follows_text_fields
Main On On; Off Opens the on-screen keyboard when a text field in the stream gets focus, with the field's type (numbers, no suggestions for passwords), and closes it when the field loses focus. Needs a host that sends text field notices; an attached hardware keyboard keeps typing instead.
Clipboard sync
checkbox_clipboard_sync
Main Off On; Off Off by default. Turn on to share copied text both ways while streaming. Android lets the app read the clipboard only while the stream is in front, so copies made in other apps go when you return. Needs a host that offers clipboard sync and lets this device read and write its clipboard. It carries text only: copy a PC image from the stream menu, and send large copies with Send clipboard to host.
More settings
more_input
Main Closed Action Shows or hides the Controls rows that are not main, such as dead zones, mouse emulation, USB controllers, trackpad and keyboard settings. Settings search and links find them while it is closed.

Controllers

Setting / preference key Tier Default Choices and units When to change or use
Nintendo button layout
checkbox_flip_face_buttons
More Off On; Off Enable to swap A/B and X/Y on physical and on-screen gamepads.
Buttons to leave the stream
list_gamepad_quit_combo
More Off Off; Select+LB+RB+Y; Start+LB+RB+A; Start+LB+RB+B; LB+RB+X+Y; LB+RB+A+B Off by default: Start+Select+LB+RB opens the stream menu, where Disconnect leaves. Choose a combination to leave the stream straight from the controller, for example on a TV; the stream ends once every button of it is let go, so none stays held on the PC. Pick one a game doesn't use. The stream menu's Controller mouse switch turns the controller mouse on or off whether or not holding Start does.
Stick dead zone
seekbar_deadzone
More 7% -20%–20%; step 1% Raise to suppress stick drift; lower for small movements. Games can add their own deadzone on top.
Trigger dead zone
seekbar_trigger_deadzone
More 2% 0%–30%; step 1% Raise if a resting trigger presses by itself; lower so light presses register. 0% sends every press. Games can add their own deadzone on top.
Gyroscope Mapping
gyro_mapping_profiles
More No stored default Action Choose a connected controller to use Automatic, Identity, Flydigi XYZ or a custom gyroscope profile. Custom profiles save independent axis mappings, inversion, and horizontal/vertical sensitivity from 0.10x to 3.00x. Changes apply on the next stream.
Motion controls
checkbox_gamepad_motion_sensors
More On; Off on Android 12 (API 31) On; Off Enable for controller gyro/accelerometer input on Android 12+. Fresh Android 12 (API 31) installations override this to Off because of an OS sensor bug.
Use device motion sensors
checkbox_gamepad_motion_fallback
More Off On; Off Enable to use this device's motion sensors when a controller lacks them. Player 1 also switches to them when the controller's gyroscope reports only zeros for a second. Hidden if the device has neither gyro nor accelerometer.
Turn off vibration
checkbox_disable_rumble
More Off On; Off Enable to stop every vibration the host asks for: controller and trigger rumble, USB DualSense waveform haptics and Vibrate device for rumble. Checked once at stream start.
Vibrate device for rumble
checkbox_vibrate_fallback
More Off On; Off Enable to feel host rumble on this device when the controller has no rumble motors.
Device vibration strength
seekbar_vibrate_fallback_strength
More 100% 1%–200%; step 1% Adjust device rumble strength; 100% is normal strength. Shown while Vibrate device for rumble is On.
Controller mouse mode
checkbox_mouse_emulation
More On On; Off Leave on to toggle controller mouse mode by holding Start.
Stick for scrolling
analog_scrolling
More Right analog stick Both sticks move the mouse; Right analog stick; Left analog stick Choose which stick scrolls in controller mouse mode. The other moves the pointer; with None, both move it. Shown while Controller mouse mode is On.
Precise controller mouse
checkbox_mouse_emulation_fixed_step
More Off On; Off Enable for precise pointing in controller mouse mode: hold X while moving the stick to move a fixed step; Y doubles the step from 1 to 128 pixels, then wraps to 1. Shown while Controller mouse mode is On.
Controller touchpad as mouse
checkbox_gamepad_touchpad_as_mouse
More Off On; Off Enable to always move the host pointer with the controller touchpad instead of forwarding native touchpad input.

Stream menu

Setting / preference key Tier Default Choices and units When to change or use
Hold Guide to open the stream menu
list_guide_menu_hold
More 1 s Off; 0.5 s; 1 s; 1.5 s; 2 s 1 s by default: holding a controller's Guide (Home/PS) that long opens the stream menu, also with Back button as Guide on. A shorter press still goes to the PC as Guide, and pressing another button while Guide is down sends Guide at once, so chords such as Guide+RB work as before. Turn it off if a game or the PC needs a long Guide press. Desktop has the same setting. Applies from the next stream.
Back opens the stream menu
checkbox_back_opens_menu
More Off On; Off Enable for a handheld's dedicated physical Back key, such as on AYN Thor, to open the stream menu instead of being forwarded as a controller button. Off preserves its existing mapping. Select/Start, mouse right-click and Keyboard Back sends Windows key keep their behavior. Applies from the next stream.
Back button as Guide
checkbox_back_as_guide
More Off On; Off Enable so Back on any controller sends Guide (Home/PS), as does a handheld's system button that acts as Back, such as the Retroid Pocket's: a built-in Back key and a Back the firmware injects. A controller whose Select is Back sends Guide instead; only a pad that uses Back as Start keeps it. Back opens the stream menu takes priority; Android's Back gesture and the controller menu chord still open the stream menu. Android only: desktop controllers report a real Guide button. Applies from the next stream.
Floating menu button
checkbox_floating_menu_button
More Off On; Off Off by default. Shows a round button over the stream that opens the stream menu with a tap; drag it to move it, and it keeps its place across sessions and rotations. Show menu button under the menu's More turns it on or off during a stream. Not shown on TVs. Android only: the desktop client opens the menu from the pointer and keys. See the stream menu.
Y in the stream menu
list_stream_menu_button_y
More Default Default; Off; Keyboard; PC keyboard; Mouse; Overlay; Shortcuts; Microphone; Touch mode; On-screen controls; Quality; Video output; Zoom; Send clipboard; Get clipboard; PC commands; Diagnostics; Session and graphics; Disconnect; Quit game Default runs Keyboard, as the tile's corner shows. Choose what the button runs while the stream menu's first page is open, or Off. A way out such as Disconnect also runs from the button and asks first, Disconnect too, so a stray press never ends the stream; it shows the button's letter.
X in the stream menu
list_stream_menu_button_x
More Default Default; Off; Keyboard; PC keyboard; Mouse; Overlay; Shortcuts; Microphone; Touch mode; On-screen controls; Quality; Video output; Zoom; Send clipboard; Get clipboard; PC commands; Diagnostics; Session and graphics; Disconnect; Quit game Default runs Mouse. See Y in the stream menu.
LB in the stream menu
list_stream_menu_button_lb
More Default Default; Off; Keyboard; PC keyboard; Mouse; Overlay; Shortcuts; Microphone; Touch mode; On-screen controls; Quality; Video output; Zoom; Send clipboard; Get clipboard; PC commands; Diagnostics; Session and graphics; Disconnect; Quit game Default runs Shortcuts. See Y in the stream menu.
RB in the stream menu
list_stream_menu_button_rb
More Default Default; Off; Keyboard; PC keyboard; Mouse; Overlay; Shortcuts; Microphone; Touch mode; On-screen controls; Quality; Video output; Zoom; Send clipboard; Get clipboard; PC commands; Diagnostics; Session and graphics; Disconnect; Quit game Default runs Overlay. See Y in the stream menu.
Keyboard shortcuts
keyboard_shortcuts_editor
More No stored default Action Create, edit or delete up to 32 named keyboard chords; they show as tiles in the stream menu and on the extra keyboard toolbar. Import/export JSON files to transfer them; importing asks before replacing the saved list. See custom keyboard shortcuts.

Touch & mouse

Setting / preference key Tier Default Choices and units When to change or use
Mouse speed
seekbar_mouse_speed
More 100% 25%–400%; step 1% Adjust physical relative mouse movement; 100% is normal speed.
Mouse back/forward buttons
checkbox_mouse_nav_buttons
More Off On; Off Enable to send mouse Back/Forward buttons. Disable if it interferes with right-click.
Trackpad speed
seekbar_trackpad_speed
More 100% 25%–400%; step 1% Adjust Trackpad movement; 100% is normal speed.
Local cursor speed
seekbar_local_cursor_speed
More 100% 25%–400%; step 1% Adjust Local cursor movement; at 100% the drawn pointer moves as far as your finger.
Pointer acceleration
checkbox_trackpad_acceleration
More Off On; Off Enable so slow finger movement aims precisely and fast swipes cover more distance. Trackpad and Local cursor; applies from the next stream.
Acceleration strength
list_trackpad_acceleration_curve
More Medium Gentle; Medium; Strong Choose how strongly fast swipes are sped up. Shown while Pointer acceleration is On.
Glide after a flick
checkbox_trackpad_momentum
More Off On; Off Enable so the pointer keeps gliding after a quick flick. A new touch, a mode change, the stream menu, picture-in-picture and disconnecting stop it at once. Trackpad and Local cursor.
Glide distance
list_trackpad_momentum_glide
More Medium Short; Medium; Long Choose how far the pointer glides. Shown while Glide after a flick is On.
Trackpad area
list_trackpad_area
More Full screen Full screen; Right half; Left half; Bottom half; Top half Limit where Trackpad and Local cursor gestures may start, for example to rest a thumb on one side; touches that start elsewhere are ignored.
Three-finger tap
list_three_finger_tap
More System keyboard System keyboard; Middle click; Keyboard & mouse; Off; PC keyboard Choose System keyboard (default), PC keyboard, Keyboard & mouse, Middle click or Off. Works in Trackpad, Direct mouse and Local cursor modes.
Four-finger tap
list_four_finger_tap
More Off System keyboard; Middle click; Keyboard & mouse; Off; PC keyboard Choose Keyboard & mouse, System keyboard, PC keyboard, Middle click or Off (default). Four fingers never also trigger the three-finger action.
Finger taps in Multi-touch
checkbox_multi_touch_finger_taps
More Off On; Off Off by default. In Multi-touch, three- and four-finger taps normally reach the PC as touches. Turn on to use them for the finger-tap actions instead; a tap counts only when all fingers land together, and the touches the PC already had are cancelled when it starts.
Trackpad sensitivity X
seekbar_trackpad_sensitivity_x
More 100% -200%–200%; step 10% Adjust the horizontal speed of a physical touchpad, such as a keyboard cover's, on top of Mouse speed; 100% is normal speed. Use a negative value to flip the direction. Touchscreen modes use Trackpad speed.
Trackpad sensitivity Y
seekbar_trackpad_sensitivity_y
More 100% -200%–200%; step 10% Adjust the vertical speed of a physical touchpad, such as a keyboard cover's, on top of Mouse speed; 100% is normal speed. Use a negative value to flip the direction. Touchscreen modes use Trackpad speed.
Trackpad scroll speed
seekbar_trackpad_scroll_speed
More 50% 10%–300%; step 10% Adjust how far two fingers scroll on a physical touchpad or in the Trackpad (touchpad gestures) touch mode; 50% is the default. Lower it if scrolling is too sensitive.
Swap trackpad X and Y
checkbox_trackpad_swap_axis
More Off On; Off Enable if a physical touchpad moves the pointer sideways when you swipe up or down. Swaps X and Y before Trackpad Sensitivity applies. Touchscreen modes are not affected.
Touchpad gestures on the PC
checkbox_native_touchpad
More Off On; Off Enable to send a physical touchpad's fingers, such as a keyboard cover's, to a PC that takes them, so the PC's own touchpad gestures (two-finger scroll, three- and four-finger swipes) work there. Needs New streaming engine and a PC that takes touchpad fingers; otherwise the touchpad moves the mouse as before and the stream says so once. Off by default.

Keyboard

Setting / preference key Tier Default Choices and units When to change or use
Stream hotkeys
stream_hotkeys
More No stored default Action Open to change, turn off or reset Nightjar's own key combinations in a stream (the same ones as desktop Nightjar): the stream menu (Ctrl+Alt+Shift+Tab), Disconnect, Release input, the performance overlay, the PC keyboard and the local cursor. Change records 2 to 4 keys, Ctrl, Alt or Shift and one other key; a combination that types, belongs to Windows or another hotkey has is refused. See stream hotkeys.
Send system keys
checkbox_capture_system_keys
More On On; Off On by default. Esc, Alt+Tab, the Windows key and similar go to the PC while input is captured, and an external keyboard's Back key (the Esc key of many Android keyboards) sends Esc on Android 10 and newer; a built-in keyboard's Back stays Back. Android hands Alt+Tab and the Windows key to apps only on Android 16 QPR2 and newer (keyboard capture) and on many Samsung devices; elsewhere, and for Home, power and volume, Android keeps them. Keyboard Back sends Windows key and Back opens the stream menu take priority for keyboard Back. The stream menu's hotkey (Ctrl+Alt+Shift+Tab by default) and Android's Back gesture open the stream menu. Matches desktop's Send system keys. Applies from the next stream.
System keys only in full screen
checkbox_system_keys_fullscreen_only
More Off On; Off Off by default; usable while Send system keys is on. While the stream is in split screen, a freeform window or picture-in-picture, the system keys and a keyboard's Back as Esc stay with Android; in full screen they go to the PC again. Keys held at the change are released. Matches desktop's System keys only in full screen. Applies from the next stream. Shown while Send system keys is On.
Keyboard Back sends Windows key
checkbox_back_as_meta
More Off On; Off Enable to send the Windows key from a physical keyboard's Back key. Android's Back gesture and TV remotes keep their local navigation; the controller menu chord remains available. See keyboard options.
Right Alt as Windows key
checkbox_right_alt_as_meta
More Off On; Off Enable on a Mac host so Right Alt acts as Command (the Windows key). Left Alt is unchanged; leave off if you type with AltGr.
Keyboard layout
list_pc_keyboard_layout
More Automatic Automatic; English (US); German (QWERTZ) Pick the legends of the on-screen PC keyboard. Automatic follows the system language (German or English). Keys send positions, so the PC's Windows layout decides the character: set both alike.
Keyboard size
seekbar_pc_keyboard_size
More 50% 30%–70%; step 5% How much of the screen height the PC keyboard may take, 30-70%. Smaller leaves more of the stream visible; larger gives bigger keys.
Keyboard opacity
seekbar_pc_keyboard_opacity
More 90% 30%–100%; step 5% How opaque the PC keyboard is, 30-100%. Lower shows more of the stream behind it.

On-screen controls

Setting / preference key Tier Default Choices and units When to change or use
Controller style
list_osc_style
More Classic Classic; Modern Pick Modern for analog sticks that follow your thumb, face buttons you can press two at a time and a layout you edit in place (stream menu → Edit controller layout), kept for all games or for one game. Classic keeps the original controller and its layout. Both send the same gamepad. Shown while Show on-screen controls is On.
Modern controller sticks
list_osc_stick_mode
More Floating Floating; Fixed Floating centers a stick where your thumb lands, so you need not hit it exactly; pick Fixed if you prefer to aim at the drawn stick. Shown only with Controller style Modern. Shown while Show on-screen controls is On.
Modern controller stick deadzone
seekbar_osc_stick_deadzone
More 8% 0%–30%; step 1% Raise if a resting thumb drifts the camera or character; lower for finer aim. 8% suits most phones. Shown only with Controller style Modern. Shown while Show on-screen controls is On.
Vibrate on press
checkbox_vibrate_osc
More On On; Off Vibrate when you press on-screen controls: the modern controller (not the classic one), the WASD stick (a light tick for W, A, S or D, a firmer click for a diagonal), the PC keyboard and the trackpads. Press feedback follows the phone's touch feedback setting. With on-screen controls on, a game's rumble also vibrates the phone when no physical controller takes it. Shown while Show on-screen controls is On.
Only show L3 and R3
checkbox_only_show_L3R3
More Off On; Off Enable when another controller supplies everything except stick clicks.
On-screen controls as their own player
checkbox_onscreen_own_player
More Off On; Off Enable to map the on-screen controls apart from physical controllers, for example with a Steam layout: they are controller 1 on the PC and physical controllers, built-in ones too, count from 2. Needs Controllers On, and has no effect with Only show L3 and R3. The gamepad controls of a game's own touch layout follow it only while Show on-screen controls is on; without it they keep sharing controller 1 with the first controller. Read once at stream start. Shown while Show on-screen controls is On.
Show Guide button
checkbox_show_guide_button
More On On; Off Enable to expose the virtual Guide/Home button. Shown while Show on-screen controls is On.
Show Touchpad button
checkbox_show_touchpad_button
More Off On; Off Off by default. Adds a Touchpad button to the on-screen controller (below Home in Modern, between Guide and Start in Classic) that clicks the touchpad of a PlayStation controller on the PC. While it is on, player 1 (the on-screen controller, or a handheld's built-in controls) connects as a PlayStation controller, so the PC gets a DualSense or DualShock 4 with the host on Automatic. Shown while Show on-screen controls is On.
Steam Controller controls
checkbox_osc_steam_controls
More Off On; Off Enable when the PC's controller type is the Steam Controller and your controller lacks its trackpads, back buttons or grip touch, for example to finish Steam Input's calibration. Adds both trackpads, L4, R4, L5, R5 and grip touch toggles to the on-screen controls, classic or modern; they join controller 1. With the PC's Automatic controller type the trackpads can make the PC pick a PlayStation controller. Read once at stream start. Shown while Show on-screen controls is On.
Opacity
seekbar_osc_opacity
More 90% 0%–100%; step 1% Lower to see more of the game beneath the controls. Shown while Show on-screen controls is On.
Reset controls layout
reset_osc
More No stored default Action Confirm to restore virtual button sizes and positions, for the classic and the modern controller, including layouts kept for one game. This layout is kept separately from a global settings reset.

USB

Setting / preference key Tier Default Choices and units When to change or use
USB controller driver
checkbox_usb_driver
More On On; Off Leave on for built-in Xbox USB support. Android requests USB access when needed.
Always use the USB driver
checkbox_usb_bind_all
More Off On; Off Enable to prefer the app's built-in Xbox USB driver even when Android already recognizes the controller. Shown while USB controller driver is On.
USB DualSense driver
checkbox_usb_dualsense
More Off On; Off Enable for direct USB DualSense/Edge input, feedback and adaptive triggers. Accept the explanation and Android USB permission during a stream; Bluetooth retains Android's input path.
USB DualSense audio and haptics
checkbox_usb_dualsense_haptics
More Off On; Off Enable alongside the USB DualSense driver for native waveform feedback. Hosts that support it (Rubylight) also forward controller speaker, headset and microphone audio. Microphone streaming needs its separate setting and Android permission; the controller mute button follows the stream mute. Reconnect after changing this option. USB only. Shown while USB DualSense driver is On.
USB Switch Pro driver
checkbox_usb_switch_pro
More Off On; Off Enable to read a wired Nintendo Switch Pro Controller directly: calibrated sticks, Home and Capture, motion, rumble, player lights and battery. Accept Android's USB permission during a stream; Bluetooth and Joy-Con keep Android's input path. See Switch Pro over USB.
Forward USB devices
checkbox_usb_forwarding
More Off On; Off Off by default. Adds USB devices to the stream menu, which hands a device plugged into this one (a drawing tablet, a security key) to the PC until you detach or unplug it or the stream ends. Needs the New streaming engine and a PC that offers USB forwarding (Rubylight 3.0); hubs and controllers the drivers above take are not listed.

Audio

Setting / preference key Tier Default Choices and units When to change or use
Channels
list_audio_config
Main Stereo Stereo; 5.1 Surround Sound; 7.1 Surround Sound; 7.1.4 Surround Sound Choose 5.1, 7.1 or 7.1.4 for a matching audio output and host configuration; use stereo for headphones or two speakers. 7.1.4 needs Android 12L or newer, a 12-channel output and a Rubylight 3.0 PC; it is hidden for an output with fewer channels, and other PCs and outputs get 7.1.
Play audio on the PC too
checkbox_host_audio
Main Off On; Off Enable to hear audio on the PC as well as Android.
Send microphone to the PC
checkbox_enable_mic
Main Off On; Off Enable to talk in games and chat apps on the PC. Asks for microphone access; if it is not allowed, the setting stays off. The PC hears it as its streaming microphone. Mute it from the stream menu; the overlay shows whether it is sending.
Microphone button
checkbox_mic_button
Main On On; Off Leave on for a round button on the stream that mutes and unmutes with one tap; drag it anywhere and it stays there. Shown only while the PC takes the microphone. Turn off to mute from the stream menu only; the menu's Input section can show or hide it during a stream. Shown while Send microphone to the PC is On.
More settings
more_audio
Main Closed Action Shows or hides the Audio rows that are not main: microphone processing, audio effects and passthrough. Settings search and links find them while it is closed.
Echo cancellation
list_mic_echo_cancel
More Automatic Automatic; On; Off Leave on Automatic: it cancels echo with the speaker and turns off with headphones or a Bluetooth headset, following a switch during the stream. Pick On if the PC hears its own game sound through a headset. Shown while Send microphone to the PC is On.
Noise suppression
checkbox_mic_noise_suppression
More On On; Off Enable to filter fans and other steady noise out of the microphone. Shown while Send microphone to the PC is On.
Automatic gain
checkbox_mic_auto_gain
More Off On; Off Enable when your voice swings between quiet and loud. Some devices level speech on their own. Shown while Send microphone to the PC is On.
Microphone gain
seekbar_mic_gain
More 100% 25%–400%; step 5% Raise if the PC hears you too quietly, lower if it hears you too loudly. Applied before sending; loud peaks are rounded off rather than clipped. 100 % leaves the sound as it is. Shown while Send microphone to the PC is On.
Mute audio
checkbox_mute_audio
More Off On; Off Enable to stream without sound on this device, for example while the PC plays it (see Play audio on the PC too) or the device sits in a quiet place. Audio passthrough is not asked for. Applies to the next stream.
Allow system audio effects
checkbox_enable_audiofx
More Off On; Off Enable for Android equalizers or effects. Can add delay and changes the audio output path.
Audio passthrough
checkbox_audio_passthrough
More Off On; Off Enable for a receiver, soundbar or TV that decodes Dolby Digital or Dolby Digital Plus, or takes multichannel PCM as is. Asks a Rubylight PC for a format the audio output reports it plays, and keeps Opus otherwise. Dolby comes in 32 ms frames, so sound arrives later than Opus. Android 10 and later with the New streaming engine; hidden elsewhere.

Streaming

Setting / preference key Tier Default Choices and units When to change or use
Performance overlay
checkbox_enable_perf_overlay
Main Off Off; Compact; Statistics; Debug Choose Compact, Statistics or Debug while diagnosing frame rate, network loss or delay; Off hides the overlay. Compact is one line: rendered FPS, network round trip (RTT) and frame loss behind a green, amber or red dot. Statistics summarizes the stream with a status line of lasting facts. Debug shows detailed measured stages and is always available. Stored as checkbox_enable_perf_overlay (On for any choice but Off) and performance_overlay_mode (compact, statistics or debug; Off keeps the last mode). Can also be changed in the stream menu → Display → Overlay and diagnostics; Copy stats includes Debug details.
Overlay position
performance_overlay_position
Main Top left Top left; Top right; Bottom left; Bottom right Choose the corner the performance overlay starts in. It moves to a free corner when on-screen controls would cover it, and always stays inside the camera cutout. Right-hand corners align the text to the right. Can also be changed in the stream menu → Display → Overlay and diagnostics → Position, which takes effect at once.
Recover interrupted streams
checkbox_auto_reconnect
Main On On; Off On by default. Resume the same running game after transport failures or returning from screen lock, up to five attempts within one minute. Back or leaving during a retry cancels it. Graceful termination, pairing, permissions and decoder failures stay manual; recovery never launches or replaces a game. Installs that stored the old default (off) were switched on once; turning it off again is kept.
Connection test
network_tests
Main No stored default Action Opens a saved PC's Connection test on that PC's settings; with several saved PCs it asks which one first. Hidden until a PC is saved. Desktop has a Connection test row too, which measures the download speed. Stores nothing.
More settings
more_streaming
Main Closed Action Shows or hides the Streaming rows that are not main, such as picture-in-picture, network grace and client roaming. Settings search and links find them while it is closed.

Connection

Setting / preference key Tier Default Choices and units When to change or use
Keep streaming when the network changes
checkbox_client_roaming
More On On; Off On by default. When this device changes networks, the stream moves to the new address instead of waiting for the old one. Needs the New streaming engine and a PC that offers client roaming (Rubylight 3.0); other PCs keep the network grace period.
Continue on mobile data
checkbox_roaming_metered
More Off On; Off Off by default. Lets client roaming move the stream onto mobile data or another metered network. Leave off unless you want streams to keep running on mobile data; streaming uses a lot of data.
Wait through network dropouts
list_network_grace
More Off (10 seconds) Off (10 seconds); 15 seconds; 20 seconds; 30 seconds; 60 seconds Off by default: the stream ends after 10 seconds without contact. 15, 20, 30 or 60 seconds keeps it open through a Wi-Fi roam, a short dropout or a VPN moving between Wi-Fi and mobile data; the picture freezes until the network returns. Longer waits only help if the host waits too, so raise its own client timeout. When the wait runs out the stream ends with a message saying so, and Recover interrupted streams, if on, then reconnects. See network drops.
Group incoming video packets
checkbox_receive_coalescing
More On On; Off On by default. With the New streaming engine, the network stack hands over several video packets in one read (UDP GRO), which saves work at high bitrates. Turn it off if the picture turns blocky or black at some bitrates, which a network adapter that merges packets wrongly can cause. Applies to the next stream.
Play over the internet
checkbox_internet_play
More On On; Off On by default. Away from home, Nightjar reaches a PC that offers Play over the internet (Rubylight with the option on) without port forwarding: it tries the local network, then the PC's IPv6 address, then a forwarded port, and only then a direct internet path that both sides punch through their routers, found through a public peer-to-peer directory that holds only encrypted notes (see Privacy). Connect once on the PC's network so it can give this device its key. At home nothing changes: the local network answers first. The host list shows the path in use. Turn it off to never look up or punch a path.
Hide connection warnings
checkbox_disable_warnings
More Off On; Off Enable to hide stream connection warnings once your connection is tuned.

Other Streaming settings

Setting / preference key Tier Default Choices and units When to change or use
Dual screen mode
checkbox_dual_screen
More Off On; Off Enable on a device with a second screen to stream the same game to both: the second screen gets a stream of its own at its own resolution, while sound, controllers and microphone stay with the first and a touch mode change on either screen applies to both. The second stream is the same device as the first, so the PC pairs once. It needs a Rubylight host that supports it, which decides which of its screens each stream shows. Applies to the next stream.
Second screen resolution
list_resolution_screen2
More Second screen’s own size Second screen’s own size; 360p; 480p; 720p; 1080p; 1440p; 4K The resolution of the second screen's stream in Dual screen mode, apart from the first screen's: the second screen's own full size, or a standard size. Applies to the next stream. Shown while Dual screen mode is On.
Picture in picture
checkbox_enable_pip
More Off On; Off Enable to keep a small video window when leaving the app. Input and overlay are hidden there; requires device support.
Ready the decoder for folding
checkbox_covering_decoder_size
More Off On; Off Off by default, under Streaming's More rows, after Dual screen. Sizes the decoder up front for the largest picture a fold or turn can bring, to save the decoder restart and key frame on the first one. On foldables whose two screens are separate displays it changes nothing.
Input-only on any PC
checkbox_input_only_any_host
More Off On; Off Enable to add Input-only to a game's menu on PCs whose host has no Input-only mode of its own (Sunshine, GameStream, Apollo with its input-only mode off). The PC still streams video and audio at 640x360, 30 FPS and 500 kbps, about 0.7 Mbit/s with overhead; Nightjar discards both. Hosts with their own mode keep using their Input-only tile. See Input-only on any PC.

App

Setting / preference key Tier Default Choices and units When to change or use
Theme
checkbox_always_dark
Main System System; Dark; OLED black Choose System to follow the system theme, Dark for the dark grey theme on app screens, menus and dialogs even when the system uses a light theme (as most TVs do), or OLED black for pure black backgrounds. Applies immediately and stays separate from stream profiles. Stored as two switches, checkbox_always_dark and checkbox_oled_black; OLED black sets both, System clears both. High contrast keeps the app black whatever is chosen here.
Language
list_languages
Main System default System default; English; Deutsch; Español; Français; Italiano; Polski; Português (Brasil); Tiếng Việt; Türkçe; Русский; Українська; 日本語; 한국어; 简体中文; 繁體中文 Choose the interface language. Android 13+ uses the system per-app language setting.
When Nightjar opens
list_open_on_start
Main Home Home; Show my PCs; Continue my last game; A chosen game Home by default. Home opens the games to continue, your library across PCs and the PCs (it appears once a paired PC has supplied its app list); Show my PCs opens the list of PCs. Continue my last game and A chosen game count down 3 seconds into that game on a cold start from the launcher or at sign-in; A chosen game is offered once a game was chosen from its menu. Cancel, B, Back and Esc stop the countdown; an offline PC is woken. If the last automatic start failed or its stream died within 10 seconds, the next one is skipped and says so. A running game is never replaced without asking; a game playing on another device stops the start, and so does a network still away after a minute. Stored as list_open_on_start and checkbox_console_home, read as one choice (nightjar-policy's StartScreen).
Quick resume
checkbox_quick_resume
Main Off On; Off Enable to go straight back into the running game when you tap its PC, skipping the library. Use the PC's menu for the library while a game runs. Off keeps the tap opening the library.
PIN lock
pin_lock
Main No stored default Action Off until a PIN is set. Asks for a PIN to open Nightjar or to start a stream. A forgotten PIN can only be reset by clearing Nightjar's app data in Android's settings, which also removes paired PCs.
Help
help
Main No stored default Action Open the bundled help: connecting a PC, pairing, controls and the stream menu, common fixes and problem reports. Works offline; each topic links to these documents for detail.
Report a problem
report_problem
Main No stored default Action Preview the explanation and share a redacted event/crash report through Android's share sheet, or send it to a PC with file transfer (Send to PC).
Check for updates now
check_updates_now
Main No stored default Action Look for a newer release now, even if the automatic check ran recently. A release you skipped is shown again. Hidden when the app was installed from Google Play.
More settings
more_app
Main Closed Action Shows or hides the App rows that are not main, such as small icons, automatic update checks, about, reset and accessibility. Settings search and links find them while it is closed.
Check for updates automatically
checkbox_check_updates
More On On; Off Leave on to look for a newer release on GitHub when the PC list opens, at most every 12 hours; you choose whether to install it. Hidden when the app was installed from Google Play, which updates it.
Use small box art
checkbox_small_icon_mode
More On below 500 dp smallest screen width; Off on TVs and larger screens On; Off Enable to fit more games in the library grid.
About
about_app
More No stored default Action View the installed app version and open Source and licenses.
Reset all settings
reset_all
More No stored default Action Confirm to reset global preferences. Keeps pairing, PC profiles, controller mappings, control layout and language.

Accessibility

Setting / preference key Tier Default Choices and units When to change or use
Text and button size
list_ui_scale
More 100% 85%; 100%; 115%; 130%; 150% Raise for large, readable menus on a TV or a small phone; lower to fit more on screen. Scales the whole app layout, not the stream, and the system font size still applies on top. Applies immediately and stays separate from stream profiles.
Interface layout
list_ui_mode
More Automatic Automatic; TV; Handheld Automatic follows the device. Choose TV on a handheld or phone that is connected to a TV (a Retroid Pocket docked over HDMI, for example) to get the TV layouts with focus, a remote or gamepad and larger rows; choose Handheld to get the touch layouts on a TV. The stream is not changed. Applies immediately and stays separate from stream profiles.
High contrast
checkbox_high_contrast
More Off On; Off Enable for a black background, body-coloured secondary text and outlines (7:1 against the background) and a 4 dp focus ring on every app screen. The stream is unchanged. Applies immediately and stays separate from stream profiles.
Reduce motion
list_reduce_motion
More Follow system Follow system; Reduce; Full Follow system reduces motion when Android's animation scale is 0 or animators are off. Reduce always swaps the focus zoom and sheet slide for a plain ring; Full always animates. Applies immediately and stays separate from stream profiles.

Advanced

Setting / preference key Tier Default Choices and units When to change or use
New streaming engine
checkbox_rust_engine
Main On On; Off On by default. Streams with Nightjar's new engine (written in Rust), including PyroWave and remote monitor sessions. Turn it off to use the classic engine (moonlight-common-c) if a stream fails to start or misbehaves, and report the problem. Hosts older than GFE 3.22, and hosts that report no codec support, use the classic engine automatically. Installs that stored the old default were switched on once; turning it off again is kept. Applies from the next stream.
Low-latency decoding
low_latency_decoding
Main On (not stored: on while Android low-latency mode, Chipset low-latency mode, Phone performance hints are all on) On; Off Leave on. Sets Android low-latency mode, Chipset low-latency mode and Phone performance hints together; turn off only to test a decoding problem. The individual switches are behind Customize; the row says when one is off.
Customize
low_latency_customize
Main Closed Action Opens or closes the individual switches under Low-latency decoding: Android low-latency mode, Chipset low-latency mode, Phone performance hints, Decoder performance hints and HEVC low-latency flags. Settings search finds them while it is closed.
Android low-latency mode
checkbox_codec_low_latency
More On On; Off Leave on for supported Android 11+ decoders. Disable when comparing a decoder freeze or artifact.
Chipset low-latency mode
checkbox_vendor_low_latency
More On On; Off Leave on for supported chipset decoder keys. Disable to isolate vendor-specific instability.
Phone performance hints
checkbox_phone_performance_hints
More On On; Off On by default. On Android 12 and later, reports the decoder thread's work time against the frame time, so Android can raise CPU performance when decoding falls behind. Turn it off only to compare decode times with and without it.
Decoder performance hints
checkbox_codec_performance
More On On; Off Leave on for decoder priority/rate hints on Android 6+. Disable to compare heat or battery use.
HEVC low-latency flags
list_hevc_low_latency_mode
More Auto Auto; On; Off Auto by default: every HEVC decoder gets the Android and vendor low-latency flags except Amlogic's, which stall the display with them. On gives them to Amlogic decoders too, with a warning in the log. Off omits them on any device and disables HEVC reference-frame invalidation; choose Off if HEVC video stutters or freezes. H.264, AV1 and decoder performance hints keep their own settings. Off is stored in the older switch's key checkbox_disable_hevc_low_latency as true, so older saved values and profiles keep their meaning; this key only tells Auto from On. Applies to the next stream and decoder benchmark; changing it invalidates previous benchmark results.
Snapdragon GPU driver
gpu_driver
Main No stored default Action Import and select a compatible Snapdragon Vulkan driver for PyroWave. Shown on arm64 Adreno devices only. The system driver remains the default; changes apply to the next stream.
Boost GPU performance for PyroWave
checkbox_gpu_max_clocks
Main Off On; Off Off by default. Optionally request higher Adreno GPU clocks during PyroWave streaming to reduce decode time; this can increase power use and heat. Thermal protection remains active. Installs that already stored a choice keep it. Shown on Adreno devices only.
Compatibility video view
checkbox_texture_view
Main Off On; Off Try for black or flickering video or misplaced output. Adds composition work and is disabled for HDR, Less color banding and PyroWave.
Render through Vulkan
checkbox_vulkan_render
Main Off On; Off Presents H.264, HEVC and AV1 through Vulkan with its own frame pacing, for frame-generation overlays that hook Vulkan. It adds a render pass, so some latency, and needs Android 10 and a GPU with Vulkan 1.1. If it cannot be used (PyroWave, Android 9 or older, no Vulkan support, 4:4:4 video, or it fails to start) the stream uses direct output and a message says why. While it is on, client-side upscaling is off. If it stops working during a stream, the stream ends with a message that names it; turn this switch off to go back. Leave it off unless you need such an overlay.
More settings
more_advanced
Main Closed Action Shows or hides the Advanced rows that are not main: compatibility, More options and Diagnostics. Settings search and links find them while it is closed.

Compatibility

Setting / preference key Tier Default Choices and units When to change or use
Game optimization hint
checkbox_enable_sops
More On On; Off Leave on. Tells the PC whether it may optimize a game's settings for this stream. Rubylight only passes the choice on to commands you run on the PC, as SUNSHINE_CLIENT_ENABLE_SOPS; other hosts may change the game's settings themselves.
Chipset tuning
checkbox_experimental_chipset_tuning
More Off On; Off Off by default. Sends vdec-lowlatency to MediaTek Dimensity (c2.mtk) decoders and, with decoder performance hints on, asks Samsung Exynos decoders for the operating rate they declare next to the realtime priority hint. Needs vendor low-latency options on and HEVC low-latency flags not disabled. Only the first configure try carries them, so a decoder that rejects them falls back to the normal options. If video stops or stutters, turn it off.

Diagnostics

Setting / preference key Tier Default Choices and units When to change or use
Test the link before starting
checkbox_link_probe
More Off On; Off Off by default. A new stream at the automatic bitrate first times a short download from a Rubylight PC that offers it and starts at no more than 80 % of the result (never below 2 Mbit/s). Resumes, a bitrate you set and PyroWave are not tested. Off because it started streams lower, with more loss and freezes, in our measurement.
Show Gyro Diagnostics
checkbox_show_gyro_diagnostics
More Off On; Off Off by default. Shows controller motion values and troubleshooting controls while streaming. Enable only when investigating gyroscope behavior; recording and CSV sharing are available from the overlay.
PyroWave frame pace
pace_calibration
More No stored default Action Opens a saved PC's PyroWave frame pace on that PC's settings, where it is measured: the fastest pace at which the PC's PyroWave frames arrive whole. Shown while a paired PC can measure it or has one saved; with several it asks which one first. Stores nothing here.
Show decode time after streaming
checkbox_enable_post_stream_toast
More Off On; Off Enable to see the average decode time after a session ends; it is not end-to-end latency.
Latency benchmark
latency_benchmark
More No stored default Action Run a 10-second local frame-callback, timer and input-dispatch benchmark without a host. Use Measure input latency in the stream menu for end-to-end timing.
Export latency CSV
export_latency_csv
More No stored default Action Choose a destination for the latest local frame-timing CSV. Each row holds the measured stage timings.

Debug

Setting / preference key Tier Default Choices and units When to change or use
Error correction
list_fec_choice
Main PC’s setting PC’s setting; Automatic; 10 %; 20 %; 30 %; 50 % PC's setting by default: the PC adds the recovery data its own settings call for. Automatic asks it to follow the losses this device reports; 10, 20, 30 or 50 % fixes the share. Rubylight PCs and Sunshine-based PCs that accept it take this choice; other PCs use their own setting either way.
Lower bitrate when frames are lost
checkbox_rate_change_bitrate
Main Off On; Off Off by default, under Debug: turn on to let this device lower or raise the bitrate from its own frame loss and network delay readings, in place of Lower bitrate when the network is busy. Needs the New streaming engine and a host that offers bitrate changes; other streams use Lower bitrate when the network is busy.
Tell the PC when on Wi-Fi
checkbox_tell_host_wireless
Main On On; Off On by default. Tells a Rubylight PC when this device streams over Wi-Fi, so it paces the stream for Wi-Fi from the start. Other PCs are not told.
Tell the PC the link speed
checkbox_tell_host_link_speed
Main On On; Off On by default. Tells a Rubylight PC this device's wired port speed, so it never sends faster than the port can take. Other PCs are not told.
Prioritize stream traffic
checkbox_network_priority
Main On On; Off Enable to compare scheduling under load. Requests streaming thread priority on this device.
Instant mouse and pen input
checkbox_unbatched_input
Main On On; Off Enable to bypass display-rate input batching. High-rate input can increase CPU and network load.
Full color range
checkbox_full_range
Main Off On; Off Use when the host and display both send full-range color, for full shadow and highlight detail.
More settings
more_debug
Main Closed Action Shows or hides the Debug rows that are not main. Every Debug row is main today, so it stays hidden. Settings search and links find them while it is closed.

PyroWave

Setting / preference key Tier Default Choices and units When to change or use
PyroWave early screen image
checkbox_pyrowave_preacquire
More Off On; Off Off by default, under Debug's More rows. PyroWave takes the next screen image before the frame arrives. It measured no faster on our devices; turn it on to compare.

Decoder

Setting / preference key Tier Default Choices and units When to change or use
Speed up frame hand-off
checkbox_submit_hint
More Off On; Off Off by default, under Debug's More rows. Also reports the thread that hands frames to the decoder to Android's performance hints. It measured no faster on our devices; turn it on to compare.
Video data straight to the decoder
checkbox_codec_direct
More @bool/default_codec_direct On; Off On by default, under Debug's More rows. With the New streaming engine, H.264, HEVC and AV1 frames go into the decoder's buffer in place, one copy fewer. Turn it off if video stops or shows errors on this device.
Decoder priority for receiving
checkbox_receive_decode_priority
More Off On; Off Off by default, under Debug's More rows. With Prioritize stream traffic on and the New streaming engine feeding the decoder directly, gives the receive thread the decoder's priority. It measured slower under load on our devices; turn it on to compare.

Presets

Both presets stream at this screen's own resolution and keep the selected codec, HDR and Sharper colored text choices. Named profiles and saved PC and game values take priority. The selected chip says Custom when values do not match a preset.

Setting Native (recommended) Battery saver
Resolution This screen's resolution This screen's resolution
Frame rate Screen maximum (rounded, 1–1000 FPS) 30 FPS
Bitrate Default for that resolution, frame rate and codec Default for that resolution, frame rate and codec
Variable refresh rate Off Off
Upscaling Off Off
Frame pacing Lowest latency Balanced with FPS limit
Allow lower refresh rate Off On
Decoder performance hints On Off
Boost GPU performance for PyroWave Unchanged Off

Native also turns these back on: Android low-latency mode, Chipset low-latency mode, Phone performance hints, Keep only the newest frame, Instant mouse and pen input, Prioritize stream traffic.

Profiles

Profiles (stream_profiles), under the presets on the Settings overview: Open to create, rename, duplicate or delete named profiles (sets of stream values such as Home 4K120 or Hotel), pick the profile in use, and optionally let the network pick one when a stream starts. A profile sets only the values chosen in it. See named profiles.

Per-PC stream profiles

Long-press a PC and choose PC settings…; the screen is titled with the PC name. Every value under Video starts as Same as all PCs, which follows the main stream settings and the named profile in use, including later changes. A value that comes from a profile says so, for example from profile Hotel. Pick a value to give this PC its own; pick Same as all PCs again to follow the main settings. Same as all PCs for everything clears every value of this PC. Choose Save to keep the changes; leaving with unsaved changes asks whether to save or discard them.

Implementation: HostStreamSettings.java, validated by HostStreamProfile.java.

Setting Values When to change
Resolution Same as all PCs, Screen size (follows this screen), or width and height of 64–16384 pixels Match a host display or choose a lower decode workload. Use this screen fills in the device's landscape dimensions.
Frame rate Same as all PCs, or 1–1000 FPS with up to two decimal places Request fractional rates such as 59.94 or 119.88 Hz. Use this screen fills in maximum display refresh; VRR uses the panel maximum.
Bitrate Same as all PCs, or 0.5–2000 Mbps with up to three decimal places Set this PC's bandwidth budget. The host applies its own ceiling; Nightjar follows the bitrate it reports.
Video codec Same as all PCs, Automatic, Prefer AV1, Prefer HEVC, H.264, PyroWave Compare codecs on this PC and device. PyroWave is listed only for PCs that can stream it, and says why when this device can't decode it.
Upscaling Same as all PCs, Off, Smooth, Sharp (FSR), Sharp, Snapdragon (SGSR) Choose a scaler for this PC's lower-resolution SDR stream.
Upscaling sharpness Same as all PCs, or 0–100% Sharpening strength for the sharp scalers.
HDR / Variable refresh rate Same as all PCs, On, Off Enable for a compatible host and screen.
Frame pacing Same as all PCs, Lowest latency, Balanced, Balanced with FPS limit, Smoothest video (more delay) Pick this PC's trade-off between latency and smoothness. Variable refresh rate replaces it with Lowest latency.
Sharper colored text Same as all PCs, On, Off On streams full color detail (4:4:4) from this PC where it and this device can: native 4:4:4 first, else packed full chroma, as On does in the main settings.
RTX HDR / RTX Video PC’s setting, On, Off Turn RTX HDR (an SDR game's picture turned into HDR, for HDR streams) or RTX Video (the picture cleaned up and sharpened before it is encoded) on or off for this device's streams from this PC or of one game, over the PC's setting for the game. PC’s setting, the default, sends nothing. Shown only for PCs whose host reports them (NvidiaEnhancements in serverinfo); sent at launch as rlRtxHdr and rlRtxVideo. The desktop app has the same two rows in a PC's and a game's own Video settings.
Same as all PCs for everything Action Clears every stream value of this PC after a confirmation; Save applies it.
Display arrangement (under Display on the PC) See Display on the PC Shown for PCs whose host supports display modes. Saved on its own, when you confirm it.
Virtual display Same as all PCs, On, Off On asks the PC for a display matching this stream. Off leaves it to the PC's display settings. Shown for PCs whose host has a virtual display.
PC render resolution Same as all PCs, or 50–200% Change the PC's render resolution relative to the stream. Used with the virtual-display request.
PC display scaling Same as all PCs, PC’s own, or 100–500% in Windows' steps Larger text and interface on this PC's virtual display; the resolution does not change. Shown only for PCs whose host reads it; on an older host version it is disabled with the reason.
Full color range (under Debug, last, after the Connection and PC groups) Same as all PCs, On, Off Request full-range color for this PC.

Between Display on the PC and Debug, the PC's screen also holds its Connection group (Connection test, PyroWave frame pace for PCs that offer it, Play away from home, Wake-on-LAN, Other wake addresses) and its PC group (Open the PC's web UI, View details, Add games to a launcher, Add to home screen, Rename, Unpair, Remove PC). These are actions, except Other wake addresses: up to eight MAC addresses of the PC's other network adapters, which every wake also targets (Wake a sleeping PC).

A PC keeps only the values that differ from the main settings. The host's device and app policy may override a request. The performance overlay and the log show the PC's own values and the display choice for each stream.

Named profiles and game settings

A named profile is a set of stream values with a name, such as Home 4K120, Hotel or Mobile data. Open Settings → Profiles (under the presets) to manage them. Implementation: StreamProfilesActivity.java, stored by StreamProfiles.java and combined by StreamLayers.java.

Which value a stream uses

When a stream starts, each value comes from the first of these layers that sets it:

  1. This game: the game's own values on this PC (game menu → Stream settings for this game).
  2. This PC: the PC's own values (PC settings…, see per-PC stream profiles).
  3. The profile: the profile the network picked, or else the profile in use.
  4. The main settings: everything under Settings.

On mobile data, Bitrate on mobile data then caps the bitrate, whatever layer set it. A layer that sets nothing leaves every value to the layers below. Profiles, PC and game values apply when a stream starts and never change during it; a reconnect keeps the network, and so the profile, that the stream started with.

Every value screen says where a value it doesn't set comes from: from the main settings, from profile Hotel, set for this PC. The Debug overlay and the Statistics status line show which layers a stream used, for example Settings: profile Hotel, chosen for Mobile data + this game. A profile picked by the network is also announced when the stream starts.

Profiles

Control What it does
New profile Asks for a name (1–32 characters, unique) and opens the new, empty profile. Set only the values it should change. Up to 50 profiles.
A profile → Edit values The same rows as a PC's stream values: resolution, frame rate, bitrate, codec, upscaling and sharpness, HDR, variable refresh rate, frame pacing, sharper colored text and, under Debug at the end, full color range. Unset values say Not set and follow the main settings; Clear every value unsets them all. A profile leaves host display choices to each PC.
A profile → Rename / Duplicate / Delete Duplicate copies the values under a new name. Delete also clears the profile from Profile in use and every network choice; streams use the main settings instead.
Profile in use The profile every stream uses when no network choice applies. None (main settings) uses the main settings.
Choose by network Off by default. On, the network a stream starts on picks the profile below; Ethernet and networks without a choice use the profile in use.
Mobile data Mobile data, and Wi-Fi that Android marks as metered, such as a phone's hotspot.
Home Wi-Fi The Wi-Fi networks listed under Home Wi-Fi.
Other Wi-Fi Every other Wi-Fi, or every Wi-Fi while no home Wi-Fi is listed or the Wi-Fi name can't be read.
Home Wi-Fi → Add this Wi-Fi / Type a Wi-Fi name Lists a home Wi-Fi by name. Select a listed name to remove it.
Next stream on this network What a stream started now would use.

Android shows the Wi-Fi name only to apps with location access. Nightjar asks for it only when you add the Wi-Fi you're on, after explaining why; typing a name needs no access at that point. Without access, home Wi-Fi can't be recognized when a stream starts: the Wi-Fi counts as other Wi-Fi and the stream says so. Mobile data and metered Wi-Fi are recognized without any permission. Wi-Fi names stay on this device and are never sent or logged; see privacy.

Fallbacks

Nothing falls back silently. When the profile picked no longer exists or has a value this version can't read, the main settings apply and the stream says which profile was skipped. When a PC's or a game's stored values can't be read, that layer is skipped with a message and the layers below apply.

Game settings

Open a game's menu and choose Stream settings for this game. The note under it says how many values the game sets. The screen has the same stream rows as a PC, plus the PC's virtual display rows (Virtual display, PC render resolution, PC display scaling) where the host has them; the display arrangement stays per PC. Values not set come from this PC, the profile and the main settings, in that order. Removing a PC removes its game values too.

A game's screen starts with a Preset row. Each preset sets only the values it names and leaves every other value of the game as it was, including the other two of frame pacing, variable refresh rate and bitrate. Nothing new is stored: the row names the one preset whose values the game holds, and says Custom when none matches, when two presets' values are both present (Smoothness with Quality, for example), and for a game with no values of its own. Resolution, refresh rate, codec and HDR are never touched.

Preset Sets Leaves alone Trade-off
Competitive Frame pacing: lowest latency (the app default, set for this game so it holds if the main setting changes) Variable refresh rate, bitrate No extra delay.
Smoothness Frame pacing: smoothest video; variable refresh rate off for this game, because it replaces frame pacing Bitrate Frames are held back, so latency goes up.
Quality Bitrate: 150% of the PC's bitrate, or of the main settings' if the PC has none, at most the host's maximum (2000 Mbps) Frame pacing, variable refresh rate On a weak connection the larger frames can add delay. The bitrate is stored as a number, so a later change to the PC's or main bitrate shows the game as Custom. A named profile or the network never changes the base.
Custom Nothing Everything Set each value yourself.

Presets never change Radeon settings such as Anti-Lag and Chill; set those for a session in the Session and graphics menu.

Bitrate on mobile data

Settings → Video → Bitrate on mobile data (Off, 3, 5, 10, 15, 20, 30 or 50 Mbps) caps the bitrate of a stream that starts on mobile data or metered Wi-Fi. It is separate from the profiles, so it protects a data plan whatever profile, PC or game value applies. The cap is decided at stream start; switching networks during a stream doesn't change it.

Display on the PC

Long-press a PC, choose PC settings…, then Display arrangement under Display on the PC. The dialog is titled Display on and the PC's name. Select a mode and confirm Save display mode to apply it from the next stream. Cancel leaves the saved mode unchanged, and Help explains the modes. The display choice is saved separately from the stream profile, so it stays when you discard the PC's other changes.

Settings → Display & image → PC display → Display arrangement offers the same modes for every PC. A PC without a choice of its own uses it; choosing The PC’s own setting in a PC's dialog clears that PC's choice, so it follows the main settings again. Implementation: HostDisplaySettings.java, stored by HostDisplayChoice.java.

Choice Sent to the PC What the PC does
The PC’s own setting (initial) Nothing, or virtualDisplay=1 when Virtual display is on Follows Virtual display and the PC's display settings.
Exclusive — virtual display only (PC monitors off) hostDisplay=exclusive, virtualDisplay=1 Adds a virtual display and switches the PC's monitors off during the stream.
Extend — make virtual display primary hostDisplay=extended_primary, virtualDisplay=1 Adds a virtual display beside the monitors and makes it primary, where games and new windows usually open.
Extend — keep PC display primary hostDisplay=extended, virtualDisplay=1 Adds a virtual display beside the monitors; the PC keeps its primary display.
Extended and separated — PC stays primary hostDisplay=extended_isolated, virtualDisplay=1 Keeps the PC primary and places the virtual display away from the other displays.
Extended and separated — virtual display primary hostDisplay=extended_primary_isolated, virtualDisplay=1 Makes the virtual display primary and places the PC's other displays away from it.
Physical display (no virtual display) hostDisplay=physical Streams the PC's monitor, even when the PC or Virtual display would add a virtual display.

The PC puts its displays back when the stream ends. Separated displays still share the same Windows session; they are not separate user sessions. Only PCs whose host supports display modes (Rubylight 2.2.1 or later) offer the choice, and only those hosts are sent hostDisplay. Other PCs follow Virtual display, which their stream settings show as a switch when the host has a virtual display. Remote Monitor and Remote Input keep the PC's settings.

Settings available during a stream

Control Default / persistence Use
Touch mode Trackpad initially; saved globally Switch Trackpad, Direct mouse, Multi-touch, Local cursor or Touch off immediately.
Show on-screen controls / Edit controller layout Hidden initially; saved control preference/layout Show the virtual gamepad, move/resize it and save.
Overlay visibility / mode / position Off / Compact / top left initially; saved globally Show or hide from the menu's top row; choose Off, Compact, Statistics or Debug, pick a corner, or copy detailed stats under Display → Overlay and diagnostics.
Set bitrate Starts from the effective stream configuration; session adjustment Request 0.5–2000 Mbps, subject to host limits. A manual selection turns off Lower bitrate when the network is busy for the stream.
Lower bitrate when the network is busy (turn on or off) Follows the Lower bitrate when the network is busy setting (off by default); the menu's choice is saved per PC, separately for PyroWave and conventional codecs Lower bitrate under congestion and recover gradually within the selected and host cap. Needs a host that reports its encoder bitrate (Rubylight); a Sunshine-based PC with its own automatic bitrate runs that instead. Changing the setting in Settings drops every PC's own choice.
Keyboard, clipboard and host actions Actions, not factory preferences Open the keyboard, transfer text explicitly, view host status, open the host web UI, reconnect, disconnect or quit the game. Host permissions apply.

Reset scope

Settings → App → Reset all settings asks first, then restores every preference on the Settings screens, together with the values their pickers and the stream menu store (touch mode, video size, overlay mode, the frame-rate and theme choices, and the values behind Sharper colored text, Controllers and When Nightjar opens). It keeps paired PCs, per-PC stream profiles and each PC's own display choice, named profiles and their network choices, game stream settings, controller button mappings, the on-screen layout and the selected app language. Reset a PC profile with Same as all PCs for everything in its own screen, a profile or game with Clear every value, a controller in Controller buttons, and the layout with Reset controls layout.

Nightjar for Windows and Linux

This section covers the desktop client on Windows, Linux and macOS. Rows that exist on only some of them say so; every other row is on all three. On macOS, Command takes the place of Ctrl in the settings shortcuts below (Command+F, Command+=), and the stream's key combinations use Control and Option in place of Ctrl and Alt.

The desktop client's Settings has the same eight sections as Android, in the same order and with the same labels, Debug last, with Profiles above them. A wide window lists them on the left, with the open section's rows on the right; a narrow one shows them as chips above the rows. Each section shows its main rows first, the same ones as on Android, then More … settings (n), which opens the section's other rows in the same groups as on Android and reads Fewer … settings while open. A section without a main row on this computer (Advanced on most computers) lists its rows straight away. A row that depends on another (Minimum resolution on Automatic quality, for example) is hidden while it doesn't apply and is left out of the count; its value is kept. Search settings at the top (Ctrl+F) finds rows in every section by name, description, section or group, folded rows included; Escape leaves the field, then clears the search. A row changed from its default has Reset beside it, and App → Reset all settings puts every row back to its default after a confirmation. Above the main settings' rows, Presets offers Native (recommended) and Battery saver, as on Android. A preset asks first, then sets the resolution, frame rate, bitrate, variable refresh rate, upscaling and frame pacing; Native also turns Keep only the newest frame, Instant mouse and pen input and Prioritize stream traffic back on. The row reads Custom once any of them is changed.

PC, game and profile settings

A PC's, game's or profile's settings show the same rows, except the App section, Graphics card, Renderer, Bitrate on mobile data, Input-only on any PC and the rows that open other pages (Controller buttons, Controller test, Keyboard shortcuts, Stream hotkeys); Debug stays last. Each row has a box, For this PC, For this game or In this profile: ticked, the row keeps its own value and says what it would otherwise be; unticked, it says where its value comes from (From main settings, From profile …, Set for this PC). Choosing another value ticks the box; opening a menu and backing out changes nothing. The section list counts the rows set there, and Clear all for this PC (or game, or profile) at the top unticks every row after a confirmation. A PC's own settings also run Connection test (Streaming) and PyroWave frame pace (Advanced › Diagnostics) on that PC. The layers combine as on Android; see which value a stream uses.

Profiles, above the sections in the main settings, opens the profiles page; while a profile is active, the main settings say so at the top, with Manage profiles:

Control What it does
Active profile The profile streams use, or Main settings. While a profile is active, the main settings say so at the top.
New profile Asks for a name and opens the new, empty profile's settings.
Choose automatically Picks a profile when a stream starts, by network: Mobile or metered, Home Wi-Fi and Other Wi-Fi. A network left at Active profile follows the active profile.
Home Wi-Fi names Add a typed name, or Add current Wi-Fi; Remove takes one off. Up to 50 names of up to 32 characters; names are case-sensitive and stay on this device.
Mobile data bitrate limit 0–500000 kbps; 0 means no limit. Caps the bitrate on mobile data and on metered Wi-Fi or Ethernet, after all profile, PC and game values. Video → Bitrate on mobile data sets the same limit.
Saved profiles → Edit / More Edit opens the profile's settings; More holds Rename, Duplicate and Delete.

Settings are stored in settings.json in %APPDATA%\Nightjar\config on Windows, ~/.config/nightjar on Linux or ~/Library/Application Support/Nightjar on macOS; NIGHTJAR_CONFIG_DIR overrides the folder.

Defaults are those of a fresh installation. Main rows show when a section opens; More rows follow behind More … settings, under the group named in italics, in the order shown.

Video

Setting Tier Default Choices Notes
Resolution Main Native (this display) Native, 640x360 to 5120x1440 in 16:9, 16:10 and ultrawide sizes, Custom… The picture size the PC sends. Custom adds a Custom resolution row: width 320–7680 and height 240–4320 pixels.
Frame rate Main Display (the monitor's refresh rate) Display, 30, 60, 90, 120, 144, 165, 240 fps, Custom… Custom adds a Custom frame rate row: 10–500 fps. Fractional refresh rates are followed.
Automatic bitrate Main On On, Off On: Nightjar picks the bitrate for the resolution, frame rate and codec. Off adds a Bitrate row.
Bitrate Main The recommended bitrate 0.5–2000 Mbps With Automatic bitrate off. With PyroWave, a bitrate below PyroWave's minimum is flagged.
Lower bitrate when the network is busy Main Off On, Off Lowers the bitrate under sustained congestion and recovers gradually. Needs a compatible host, as on Android.
Bitrate on mobile data Main Off Off, 3, 5, 10, 15, 20, 30, 50 Mbps Main settings only, shown once this computer was on mobile data or a limit is set. The same limit as the Profiles page's Mobile data bitrate limit; a value set there is listed too.
Video codec Main Automatic (HEVC, then H.264) Automatic, H.264, HEVC, AV1, PyroWave 4:2:0, PyroWave 4:4:4 PyroWave is listed when this computer can render it on the GPU, and streams only from hosts that offer it.
HDR Main Off On, Off 10-bit HDR to an HDR-enabled display; turn HDR on in the operating system first. HDR10 on Windows, plus HLG and Dolby Vision from a Rubylight 3.0 PC.
Sharper colored text More Off Off, On Hidden with PyroWave, whose 4:4:4 is a codec of its own. On streams full color detail (4:4:4) where the PC and this computer can: the codec's own 4:4:4 where this computer decodes it and the PC encodes it, else full chroma packed into HEVC or AV1 where both offer it. HDR takes priority: with HDR on it packs only in a 10-bit mode both share. Switching it asks a PC that refused full chroma before again.
Less color banding More Off On, Off SDR in 10-bit HEVC or AV1. Needs a Main10 decoder; the PC's display must be in SDR. Hidden with PyroWave or with HDR on.
Automatic quality More Off Off, Prefer motion, Prefer detail, Save power Adjusts resolution and frame rate under sustained load; needs a host that supports live stream changes.
Minimum resolution More 720p 360p, 540p, 720p, 1080p, 1440p (shortest edge) Shown with Automatic quality. Never raises the selected size.
Minimum frame rate More 30 fps 30, 45, 60, 90, 120 fps Shown with Automatic quality.
HDR brightness follows the desktop More Off On, Off Linux only, shown with HDR on, for HDR on a Wayland desktop. Off: the stream shows at the absolute brightness the PC sends, as HDR10 defines it; Nightjar describes the picture to the compositor at the display's own reference white, so the compositor need not rescale each frame and can scan it out directly. On: the stream gets brighter or dimmer with the desktop's brightness, as the driver's description had it. NIGHTJAR_WAYLAND_HDR_DESCRIPTION=0 leaves the description to the driver and so always follows the desktop. Android hands HDR to the system and has no such row; Windows maps HDR itself.

Display & image

Setting Tier Default Choices Notes
Window Main Borderless Fullscreen, Borderless, Windowed Borderless covers the display without changing its mode.
Video size Main Fit Fit, Fill (crop), Stretch, 1:1 pixels
Variable refresh rate Main On Off, On, Fastest Uses G-Sync, FreeSync or HDMI VRR when the display has it on. On is Real VRR: each frame appears in step with the game, after a short steady delay (a little over 1 ms on a clean link, 3 to 4 ms over Wi-Fi), and whole; a frame more than 2 ms later than the typical one is shown when it is ready. Fastest shows each frame the moment it arrives, for the lowest latency; on Windows and Linux such a frame can tear. It is one choice over three values in settings.json (vrr, present_at_host_times, vrr_tear_free). A mix that is neither On nor Fastest, left by the separate switches of Nightjar up to 5.3.0 or written by hand, shows as Custom and works as before until another choice is made. Settings saved before Real VRR became the default had it turned on once. On Windows it needs a system that can present with tearing; where it can't, the row is hidden and the rows that apply without VRR show.
Refresh rate: Frame pacing More Lowest latency Lowest latency, Balanced, Balanced with FPS limit, Smoothest video (more delay) Shown with Variable refresh rate off. Every choice except Lowest latency waits for the display's refresh.
Keep only the newest frame More On On, Off Skips a frame the display can no longer show in time, so the picture never falls behind.
V-Sync More On On, Off Shown with Variable refresh rate off and Lowest latency pacing (the other pacings keep it on): waits for the display's refresh, so there is no tearing. Off accepts tearing: on a Linux Wayland desktop a VRR stream then also shows each picture at once instead of queueing it.
Image: Upscaling More Bilinear Bilinear, FSR 1, SGSR 1, AI enhancement For smaller SDR streams; HDR uses bilinear. AI enhancement is Windows only and listed when the GPU has video super resolution: it uses the GPU's video upscaling for SDR and HDR, and on NVIDIA with an HDR display also turns SDR streams into HDR.
Upscaling sharpness More 50 % 0–100 % Shown for FSR 1 and SGSR 1.
Video position More Center Center, Top Shown for Fit and 1:1 pixels: where the picture sits in the window. The stream menu's Video size keeps it; it has no row there.
PC display: Virtual display More Off On, Off Asks hosts that support it for a separate display matching the stream.
PC render resolution More 100 % 50–200 % in 5 % steps Shown with Virtual display on. The PC renders at this size; the transmitted video keeps its size.
PC display scaling More PC’s own PC’s own, 100–500 % in Windows' steps Text and interface size on the PC's virtual display. In a PC's own settings it is hidden when that PC's host can't apply it.
Display arrangement More The PC’s own setting The PC’s own setting, Virtual display only, Extend as primary, Extend, Extend, isolated, Extend as primary, isolated, Physical display The modes of Display on the PC, in the same order. Applied to normal streams on hosts that support display modes; a PC's own choice wins.

Controls

Setting Tier Default Choices Notes
Mouse mode Main Captured Captured, Desktop pointer Captured keeps the pointer in the stream and suits games; Desktop pointer moves like an ordinary mouse and suits remote work. Ctrl+Alt+Shift+M switches during a stream by default.
Controllers Main A player each Off, One player, A player each A player each: every connected controller is a player of its own on the PC. One player: every controller is player 1. Off sends no controller to the PC.
Controller buttons Main Controller buttons Main settings only. Opens each controller's button mapping, Connect as (Automatic, Xbox, PlayStation, Nintendo; Xbox sends no motion or touchpad), its own stick and trigger dead zones and axes.
Controller test Main Test Main settings only. Opens the controller page in test mode: the buttons, sticks and triggers a controller sends.
Clipboard sync Main Off On, Off Shares copied text both ways; see clipboard.
Controllers: Nintendo button layout More Off On, Off Swaps A with B and X with Y.
Buttons to leave the stream More Start+Select+LB+RB Start+Select+LB+RB, Select+LB+RB+Y, Start+LB+RB+A, Start+LB+RB+B, LB+RB+X+Y, LB+RB+A+B Hold the buttons together to leave the stream. The names follow the connected controller (Options+Share+L1+R1 on a PlayStation controller, for example).
Stick dead zone More 0 % 0–50 % For every controller whose Controller buttons page sets none of its own.
Trigger dead zone More 0 % 0–30 % As Stick dead zone, for the triggers.
Motion controls More On On, Off Sends gyro and accelerometer data when a game asks for it.
Turn off vibration More Off On, Off Turns off rumble, trigger rumble and waveform haptics.
Controller mouse mode More On On, Off Hold Start for 750 ms, then release, to drive the PC's pointer with the controller. A and B click, the D-pad scrolls.
Stick for scrolling More Right Off, Left, Right Shown with Controller mouse mode on; the other stick moves the pointer, and Off lets both move it.
Precise controller mouse More Off On, Off Shown with Controller mouse mode on. Hold X for fixed pixel steps; Y doubles the step, from 1 to 128 pixels.
Controller touchpad as mouse More Off On, Off One finger moves, two scroll; press for a left click, with two fingers for a right click.
Input in the background More Off On, Off Keeps controllers working while Nightjar is not focused.
Stream menu: Hold Guide to open the stream menu More 1 s Off, 0.5, 1, 1.5, 2 s A short press still goes to the PC.
Back opens the stream menu More Off On, Off The controller's or handheld's Back or Select button opens the stream menu.
Back button as Guide More Off On, Off Back sends Guide (Home or PS) to the PC. Not while Back opens the stream menu.
Y / X / LB / RB in the stream menu More Default Default, Off, Mouse, Overlay, Shortcuts, Microphone, Quality, Send clipboard, Get clipboard, PC commands, Session and graphics, Disconnect, End session, Quit game What each button runs while the stream menu is open. Default keeps the tile the button marks in the menu.
Keyboard shortcuts More Change Main settings only. Key combinations shown as tiles in the stream menu and sent to the PC with one press.
Touch & mouse: Mouse speed More 100 % 25–400 % Speed of the captured pointer.
Mouse back/forward buttons More On On, Off Sends the mouse's Back and Forward buttons.
Touchpad gestures on the PC More Off On, Off Sends the touchpad's fingers to a PC that takes them; other PCs get a normal pointer. Windows reads precision touchpads, Linux reads the touchpad's evdev device (your user needs the input group), macOS reads the trackpad's touches.
Keyboard: Stream hotkeys More Change Main settings only. Nightjar's own key combinations during a stream, such as the ones for the mouse mode and the overlay.
Send system keys More On On, Off Alt+Tab, the Windows key and similar go to the PC while input is captured.
System keys only in full screen More Off On, Off Shown with Send system keys on. While the stream is in a window, Alt+Tab, the Windows key and similar stay with this computer; they go to the PC in full screen (the Fullscreen and Borderless window modes).
Right Alt as Windows key More Off On, Off Right Alt sends the Windows key, which a Mac uses as Command.
USB: USB DualSense audio and haptics More Off On, Off Waveform haptics, speaker, headset and microphone of a wired DualSense; see USB DualSense audio and haptics.
Forward USB devices More Off On, Off Attaches USB devices to the PC from the stream menu; see USB devices. On Windows a device needs the WinUSB driver.

The Controllers group, the Stream menu group's controller rows and USB DualSense audio and haptics are shown while Controllers is not Off. On-screen controls are part of the Android app only; the desktop client has none.

Audio

Setting Tier Default Choices Notes
Channels Main Stereo Stereo, 5.1 surround, 7.1 surround, 7.1.4 surround 7.1.4 is Windows only, offered for a 12-channel output, and needs a Rubylight 3.0 PC.
Play audio on the PC too Main Off On, Off Keeps sound on the PC's speakers while streaming.
Send microphone to the PC Main Off On, Off Sends the default microphone to a host that accepts one.
Echo cancellation More Automatic Automatic, On, Off Shown with Send microphone to the PC on. Windows uses its own echo canceller; Automatic turns it off when sound plays through headphones or a headset. Linux and macOS record from an echo-cancel input when there is one (on Linux, PipeWire's or PulseAudio's echo-cancel module); without one the microphone is sent without echo cancellation and the stream says so.
Noise suppression More On On, Off Shown with Send microphone to the PC on. Filters steady background noise out of the microphone; adds about 7 ms to the microphone's delay.
Automatic gain More Off On, Off Shown with Send microphone to the PC on. Evens out quiet and loud speech.
Microphone gain More 100 % 25–400 % in 5 % steps Shown with Send microphone to the PC on. Makes the microphone quieter or louder before it is sent; 100 % leaves it as it is.
Mute audio More Off On, Off Plays no sound from the stream on this computer; the audio is still received. Play audio on the PC too and the microphone are unaffected, and Audio passthrough is not asked for.
Audio passthrough More Off On, Off Asks a Rubylight PC for uncompressed PCM instead of Opus: about 1.5 Mbps for stereo, up to 6 Mbps for 7.1. Other PCs keep Opus. The desktop client does not pass through Dolby.

Streaming

Setting Tier Default Choices Notes
Performance overlay Main Off (Compact when shown) Off, Compact, Statistics, Debug Ctrl+Alt+Shift+S (by default) and the stream menu change it too.
Overlay position Main Top left Top left, Top right, Bottom left, Bottom right Shown with the overlay on.
Recover interrupted streams Main On On, Off Resumes the same running app up to five times within one minute.
Connection test Main Test Measures ping, jitter and loss to a paired PC and, on PCs that offer the speed test, receives 32 MiB to measure the download speed. In the main settings, with several such PCs, a list beside the button chooses the PC (not saved); a PC's own settings test that PC.
Connection: Keep streaming when the network changes More On On, Off Keeps the stream when this device changes networks, with Rubylight PCs that support it.
Continue on mobile data More Off On, Off Shown with Keep streaming when the network changes on. Lets a roaming stream move onto a metered network.
Wait through network dropouts More Off Off, 15, 20, 30, 60 s Off: the stream ends after 10 seconds without contact, the connection's own timeout. 15, 20, 30 or 60 seconds keeps the session through a brief network interruption; the picture freezes until the network returns. Longer waits help only if the PC waits as long too. The same choices as on Android; a wait saved by an earlier version reads as the nearest one.
Group incoming video packets More On On, Off Windows and Linux. The network stack hands over several video packets in one read: receive coalescing on Windows, UDP GRO on Linux. On Windows, when the network adapter hands over such a read without the packets' size, Nightjar turns coalescing off for the rest of the stream and says so in nightjar.log. Turn it off if the picture still turns blocky or black at some bitrates. Applies to the next stream.
Hide connection warnings More Off On, Off Leaves the connection out of the stream's health notes.
Dual screen mode More Off On, Off With a second monitor and a PC that supports it, a second stream of the same game opens borderless full screen on the other monitor. Sound, controllers and the microphone stay with the first screen; it ends with the first stream and does not ask for the PIN again.
Second screen resolution More Second screen's own size Second screen's own size, 640x360, 854x480, 1280x720, 1920x1080, 2560x1440, 3840x2160 Shown with Dual screen mode on. The second stream's size, apart from the first's.
Input-only on any PC More Off On, Off Main settings only. Adds Input-only to a game's menu on hosts without an Input-only mode; the PC still sends video and audio at the smallest size, under 1 Mbit/s.

App

The App section is in the main settings only.

Setting Tier Default Choices Notes
Theme Main Dark System, Dark, OLED black System follows the system's light or dark setting; OLED black uses pure black surfaces. Applies at once.
Language Main System default System default, English, Deutsch, Español, Français, Italiano, 日本語, 한국어, Polski, Português (Brasil), Русский, Türkçe, Українська, Tiếng Việt, 简体中文, 繁體中文 The launcher and the stream menu. System default uses the operating system's language when Nightjar has it, else English. Each language is listed by its own name, or by its English name where the fonts in use can't draw it.
When Nightjar opens Main Home Home, Show my PCs, Continue my last game, A chosen game Home starts on Home; Show my PCs on the list of PCs. The two game choices open with a 3-second countdown into the game. Choose the game with Open this when Nightjar starts in its menu; A chosen game is listed once a game is chosen, and shows its title.
Quick resume Main Off On, Off Selecting a PC that runs a game returns straight to the game.
PIN lock Main Off Set up, Change PIN lock Asks for a PIN to open Nightjar or to start a stream.
Help Main Open help Opens the Help page: setup, pairing and common fixes.
Report a problem Main Save report Saves nightjar-problem.txt in the logs folder and opens the folder: this computer's system, Nightjar's version and this run's and the previous run's logs, with addresses, PC names, PINs and credentials removed. Nothing is sent.
Check for updates now Main Check now The same builds as Check for updates automatically. Asks GitHub's releases API once, at once; a newer release shows its notice, and nothing is downloaded until you choose Update now.
Check for updates automatically More On On, Off The Windows setup and portable copies and the Linux AppImage only. Once per launch, asks GitHub whether a newer release is out; nothing is downloaded until you choose Update now. A portable Windows copy only links to the release page.
Start Nightjar when I sign in More Off On, Off Windows and Linux (including the Flatpak), where the system supports it. Opens Nightjar after you sign in to this computer.
Use small box art More Off On, Off Small covers on Home, in a PC's library and in All games. Home's Card size sets the same thing.
About More Open Nightjar's version, licences and credits, with a link to its source code.
Logs More Open logs folder Attach nightjar.log, and nightjar.prev.log for a problem before a restart, to a bug report.
Reset all settings More Reset all… Asks first. Every row of the main settings goes back to its default. The language, PCs, games, profiles, PIN lock, controller buttons, shortcuts and settings without a row stay as they are.
Accessibility: Text and button size More 100 % 85, 100, 115, 130, 150 % UI zoom. Ctrl+= and Ctrl+- change it, Ctrl+0 resets it.
High contrast More Off On, Off Black surfaces, white text, thicker outlines and focus rings.
Reduce motion More Follow system Follow system, Reduce, Full motion Follow system uses the Windows animation setting or macOS's Reduce motion; on Linux motion stays on.

Advanced

Setting Tier Default Choices Notes
Graphics card Main Automatic Automatic, Power saving (its name), High performance (its name) Windows with two GPUs only, main settings only, for the whole app: the GPU that draws and decodes the stream. Automatic is Windows' choice, unless 4:4:4 is asked for and only the high-performance GPU decodes it; the others set Windows' per-app preference for Nightjar.
Renderer Main Automatic Automatic, OpenGL, GPU (Vulkan) Linux only, main settings only, for the whole app. Automatic starts on OpenGL, where 8-bit VA-API pictures arrive without copies, unless a saved setting needs the GPU renderer, and switches to the GPU renderer when a stream needs it (HDR, upscaling, PyroWave, 4:4:4, 10-bit SDR, full chroma). OpenGL never switches, so such streams are refused; GPU (Vulkan) draws with the GPU renderer from the start. A change applies at once, never during a stream.
Display output More Automatic Automatic, Desktop, Straight to the display Linux only, main settings only, applies at the next start. Straight to the display draws through DRM/KMS without a Wayland or X11 session, with input from evdev; Automatic does that only when no desktop session is there. --kms and --no-kms override it for one start. Without a desktop
Video planes More On On, Off Linux only, main settings only. Drawing straight to the display, a stream's VA-API pictures go onto a display plane without a copy, with HDR10, VRR, content type Game and tearing flips (with V-Sync off, or with Variable refresh rate at Fastest); the overlay goes on a plane above. Needs the OpenGL renderer (Renderer at Automatic picks it). Off, or where the driver refuses the planes, the renderer draws the stream.
High-performance GPU power while streaming More Off On, Off Linux only, for the whole app. Each AMD GPU that drives a connected display is held at its peak power state for the stream, so its clocks do not drop between frames. Uses more power and shortens battery life. Changes nothing when the card's clocks are already set by hand. Applies from the next stream.
Compatibility: Game optimization hint More On On, Off Lets the PC adjust the game's settings for the stream.
Diagnostics: Test the link before starting More Off On, Off A new stream at the automatic bitrate tests the link to a Rubylight PC first and starts no higher than it holds.
PyroWave frame pace More Calibrate, Clear Shown where a paired PC can measure it or a pace is saved. Finds and saves a frame pace for PyroWave on this network; Clear forgets a saved one. Can take several minutes and uses substantial data. In the main settings, with several such PCs, a list beside the buttons chooses the PC; a PC's own settings measure that PC.
Show decode time after streaming More Off On, Off Shows the stream's average decode time when it ends.
Latency benchmark More Open Tests this computer's decode and display timing without a PC.
Export latency CSV More Export Saves the last stream's latency measurements to a CSV file you choose.

Debug

Rarely needed settings, last in the section list. The search finds them like any other row, and a PC's, game's or profile's settings list them here too.

Setting Tier Default Choices Notes
Error correction Main PC's setting PC's setting, Automatic, 10 %, 20 %, 30 %, 50 % PC's setting leaves the recovery data to the PC's own settings. Automatic asks the PC to follow the losses this device reports; 10, 20, 30 or 50 % fixes the share. Rubylight PCs and Sunshine-based PCs that accept it take the choice; other PCs use their own setting.
Lower bitrate when frames are lost Main Off On, Off Lowers the bitrate when frames are lost and raises it after clean seconds, on Rubylight PCs that take bitrate changes during a stream. Replaces Lower bitrate when the network is busy there.
Tell the PC when on Wi-Fi Main On On, Off A Rubylight PC paces the stream for Wi-Fi from the start.
Tell the PC the link speed Main On On, Off Lets the PC limit its sending rate to this device's wired port speed.
Prioritize stream traffic Main On On, Off Windows and Linux only. Gives stream traffic priority on this device: socket and thread priority on Linux, thread priority on Windows.
Instant mouse and pen input Main On On, Off Sends mouse and pen motion immediately instead of batching it.
Full color range Main Off On, Off Requests the full RGB range from the host.
PyroWave: PyroWave decoder More GPU on Windows and Linux, CPU on macOS CPU, GPU Only for PyroWave. GPU decodes with the PyroWave library on the graphics card and never falls back to the CPU; when it can't, PyroWave is not offered and the group says why. CPU decodes on the processor and finishes on the graphics card.
Decode PyroWave on a compute queue More Off On, Off Shown with the GPU decoder: it decodes on a separate compute queue where the GPU has one, so a decode can overlap the previous frame's drawing; on a GPU without one (the NUC's Iris Plus 655, for example) it changes nothing. Off: on the 780M laptop (Windows) an ABBA showed no clear gain, and the client it comes from removed it because it delayed presentation on Wayland. On Linux the change applies from the next start. Each stream's log says which queue PyroWave decodes on and why. See PyroWave decoding.
Decoder: Video decoding More Automatic Automatic, Software Hidden with PyroWave. Automatic uses hardware decoding: D3D11VA on Windows, VA-API, Vulkan video, V4L2 M2M or NVDEC on Linux, VideoToolbox on macOS. A fallback to software decoding is announced.
Slices for software decoding More Off On, Off Shown with Video decoding on Software. Software decoding asks the PC for min(4, cores) slices per frame, which its threads decode in parallel. Off: it measured worse. NIGHTJAR_DESKTOP_SLICES=1 or 0 overrides it.
Vulkan video first More Off On, Off Linux only. On the GPU renderer, tries Vulkan video before VA-API. Off: VA-API pictures are mapped into the renderer's Vulkan device without a copy too, and VA-API keeps reference frame invalidation. NIGHTJAR_VULKAN_VIDEO_GPU_FIRST=1 or 0 overrides it. Not used with PyroWave.
Vulkan video recovery More Off On, Off Linux only. Vulkan video decoding asks for reference frame invalidation, so a lost frame recovers without a key frame. NIGHTJAR_VULKAN_RFI=1 or 0 overrides it. Not used with PyroWave.
Local cursor More On On, Off In Desktop pointer mode, draws the PC's cursor shape locally, without video delay, on hosts that send cursor shapes.

Beam racing and early decode for PyroWave have no row on the Settings page. Both are off by default and are set with the beam_race and early_decode keys in settings.json, or the NIGHTJAR_BEAM_RACE and NIGHTJAR_EARLY_DECODE environment variables; see beam racing and early decode.