mpv Fullscreen Wrong Monitor: How to Fix It

  • Test screen and fs-screen safely without deleting your customized mpv configuration.
  • Separate monitor selection from D3D11 adapters, HDR, hardware decoding, and media issues.
  • Fix frontend placement and Wayland compositor behavior with targeted diagnostic steps.

When mpv opens fullscreen on the wrong monitor, the cause is usually a mismatch between the display mpv selects, the display containing its window, and the placement rules enforced by the operating system or compositor. A persistent option in mpv.conf, an input binding, a profile, a frontend restoring an old window position, or confusion between the D3D11 GPU adapter and the target display can also produce the symptom. The safest approach is to reproduce the problem without your configuration, identify how mpv numbers the displays, and then add one monitor-selection setting at a time.

Video player moving from a laptop display to the intended external monitor in fullscreen.

1. Confirm the Symptom With a Minimal Clean mpv Command

Before editing configuration files, verify that the problem is specifically fullscreen monitor selection. Do not begin by changing subtitle, audio, HDR, hardware-decoding, or streaming settings unless the evidence points to them. Those features can affect playback, but they normally do not choose the fullscreen display.

1.1 Start mpv Without Your Normal Configuration

Open Command Prompt, PowerShell, or a terminal and run mpv with --no-config. Replace the example path with a local media file you know plays correctly.

On Windows:

mpv --no-config "C:\Videos\test.mkv"

On Linux or macOS:

mpv --no-config "/path/to/test.mkv"

Once the window appears, move it to the desired monitor and press f to enter fullscreen. In many desktop environments, fullscreen opens on the monitor containing the window. If that works, mpv itself and basic display detection are probably functional. Your normal configuration, frontend, script, profile, or launch command is the likely cause.

If the clean mpv window still jumps to another display, continue with explicit --screen and --fs-screen tests. Success at this stage means fullscreen consistently stays on the display containing the test window. Once that happens, stop changing unrelated playback settings.

1.2 Test Direct Fullscreen Startup Separately

Starting windowed and then pressing f is not identical to launching directly into fullscreen. Test both paths:

mpv --no-config --fs "test.mkv"

If pressing f works but --fs chooses the wrong display, mpv may be selecting a startup screen before the window has been placed. An explicit fullscreen screen setting is then more useful than repeatedly moving the window.

If only a graphical frontend exhibits the problem, repeat the test by launching the mpv executable directly. Frontends can control startup geometry, restore a previous window position, inject command-line options, or use libmpv rather than launching the standalone player.

2. Set the Correct Screen and Fullscreen Screen

The two most relevant mpv options are screen and fs-screen. They are related, but they do not perform exactly the same job.

  • --screen selects the screen used when creating or placing the normal mpv window on supported video outputs and platforms.
  • --fs-screen selects the screen used for fullscreen output where the platform and video output support that selection.

If your goal is specifically to stop fullscreen from moving to the wrong display, test --fs-screen first. Use --screen as well when you want the initial window and fullscreen playback to target the same monitor.

2.1 Discover mpv Monitor Numbers

Monitor numbering does not necessarily match the labels shown in Windows Display Settings, a Linux desktop control panel, or the physical arrangement of your monitors. Display 1 in the operating system interface is not guaranteed to be mpv screen 0 or 1.

Where supported by your mpv build and active video output, try:

mpv --screen=help

This can display the screen values mpv recognizes. Availability and output can depend on the platform and selected video output. If the command does not provide useful monitor information, test candidate numbers with a short local file instead:

mpv --no-config --screen=0 --fs-screen=0 --fs "test.mkv"

Then try the next value:

mpv --no-config --screen=1 --fs-screen=1 --fs "test.mkv"

Continue only through plausible display numbers. Do not assume that changing the primary monitor in the operating system is required. First determine which value reaches the desired display.

Success means the clean command opens and remains fullscreen on the intended monitor. Record that working number and stop testing additional monitor values.

2.2 Make the Working Selection Persistent

After finding a working combination, add it to mpv.conf without the leading double hyphens. For example:

Use the number established by your test rather than copying the example blindly. Restart mpv completely after saving the file. If the player now opens on the correct monitor and remains there when toggling fullscreen, the fix is complete.

You may prefer fs-screen=current on platforms where it is supported and behaves correctly. This tells mpv to use the screen associated with the current window instead of permanently targeting one numbered monitor. It is useful when you regularly drag mpv between displays before entering fullscreen.

2.3 Check Configuration Overrides and Input Bindings

A correct setting can be overridden later by another config file, command-line argument, profile, script, or frontend. Search your mpv configuration for these terms:

  • screen
  • fs-screen
  • geometry
  • fs or fullscreen
  • profile
  • load-script

Also inspect input.conf. A custom key may run a command that changes fullscreen state, applies a profile, or invokes a script with its own placement behavior. Temporarily rename only the suspected binding or comment it out. Do not delete the entire configuration folder.

Profiles deserve special attention because they can apply conditionally. A profile used for HDR, high-bitrate video, online playback, or a particular display may contain monitor or geometry options even if the main section of mpv.conf looks correct.

3. Separate Monitor Selection From Unrelated Playback Options

mpv has many options that influence rendering and playback. Most do not select the monitor. Distinguishing display placement from decoding or media problems prevents an unnecessary chain of changes.

3.1 D3D11 Adapter Is Not the Display Number

On Windows, --d3d11-adapter selects a graphics adapter for the D3D11 video output. It does not directly mean “use monitor 1” or “use monitor 2.” A laptop may have integrated and discrete GPUs while both displays remain managed through one desktop arrangement. Conversely, a monitor can be physically connected through a different GPU without its operating-system display number matching mpv's adapter choice.

Do not cycle D3D11 adapters merely to move fullscreen. First use --screen and --fs-screen. Investigate --d3d11-adapter only if logs show adapter creation, rendering, HDR, or cross-GPU presentation problems.

If explicit screen selection works with the default adapter, stop there. Changing the adapter could introduce performance, HDR, or hardware-decoding differences without improving placement.

3.2 Hardware Decoding, HDR, and Output Drivers

Options such as hwdec, tone mapping, shaders, and HDR metadata affect how frames are decoded or rendered. They generally do not define the fullscreen monitor. However, changing the video output may change what monitor-selection features are available on a platform.

For diagnosis, preserve the clean test and let mpv choose defaults. If your normal setup fails only with a custom vo, GPU API, or rendering profile, add those options back individually after screen selection works. A successful test is one where adding an option does not alter the chosen display. The first option that makes fullscreen jump is the one to investigate.

3.3 Subtitles, Tracks, Screenshots, yt-dlp, and Streams

Subtitle settings, audio-track selection, video-track selection, screenshot directories, and screenshot formats are not normal causes of wrong-monitor fullscreen. Likewise, the yt-dlp path and a stream URL determine whether online media can be resolved or opened, not where the player appears.

Use a small local file for monitor testing. This removes network access, URL expiration, external resolver behavior, buffering, and server limitations from the experiment. Once placement works locally, test the original URL, playlist, network stream, or high-bitrate file with the same screen options.

If local media uses the correct display but a particular frontend or online command does not, compare the actual launch arguments. The online source itself is unlikely to choose your monitor, but a script, profile condition, or frontend mode triggered by that source might.

Three desktop environments showing different ways a video window enters fullscreen on a second monitor.

4. Check Operating System and Window Placement Behavior

mpv requests a window location or fullscreen state, but the operating system, window manager, or compositor has final control over placement. Platform behavior therefore matters.

4.1 Windows Placement and Saved Frontend Geometry

On Windows, first confirm the desktop arrangement in Display Settings. Make sure the monitors are enabled, arranged correctly, and not unexpectedly duplicated. A disconnected display remembered by an application can also leave saved coordinates outside the current desktop layout.

If you use a frontend, disable its “remember window position,” “restore last screen,” or similarly named option temporarily. Then launch mpv directly with --no-config. If direct mpv works, clear only the frontend's saved window-position value or update that setting. Avoid deleting all frontend preferences.

Shell quoting also matters when testing paths. An unquoted path containing spaces can cause mpv to receive multiple unintended arguments. Quote the media path and any executable path. This rarely causes monitor selection directly, but it can invalidate your supposedly controlled test.

4.2 Linux X11 and Wayland Differences

Under X11, applications traditionally have more ability to request coordinates and screens. Under Wayland, the compositor deliberately controls much of window placement. As a result, numeric screen or geometry requests may be ignored, limited, or behave differently depending on the compositor and mpv video output.

On Wayland, try this practical sequence:

  1. Launch mpv windowed with --no-config.
  2. Move the window to the desired monitor using the compositor.
  3. Press f to enter fullscreen.
  4. If available, test --fs-screen=current.
  5. Check compositor rules for assigning mpv to a particular output or workspace.

If moving the window and then toggling fullscreen works, use that behavior or a trusted compositor rule rather than forcing unsupported coordinates. Compositor-specific output assignment is outside mpv's direct control.

4.3 macOS Display Behavior

On macOS, Spaces and the “Displays have separate Spaces” setting can influence fullscreen transitions. Test mpv without configuration, move its window to the intended display, and then enter fullscreen. Also check whether a frontend restores the player to a different Space or display.

If windowed placement is correct but fullscreen consistently moves elsewhere, test an explicit fs-screen value if supported by the active output. If the operating system still overrides it, use the successful move-then-fullscreen workflow and review Mission Control display behavior.

4.4 GPU Drivers and Audio Backends

A GPU driver issue is relevant when logs show display enumeration failures, device creation errors, presentation failures, or incorrect behavior after a monitor or dock change. Update drivers through the GPU vendor, computer manufacturer, or operating system's trusted update mechanism. Do not install random codec packs or unofficial driver bundles.

The audio backend does not normally select the video monitor. An HDMI audio device may share a monitor's name, but changing audio output is not a direct fix for fullscreen placement. Only investigate audio if playback hangs or exits before the window can enter fullscreen.

5. Use mpv Diagnostics to Find Hidden Overrides

When a clean command works but normal startup does not, diagnostic output can reveal loaded files, profiles, scripts, video outputs, and option processing.

5.1 Increase Terminal Detail and Write a Log

Run a controlled test with verbose messages and a log file:

mpv --msg-level=all=v --log-file=mpv-monitor.log "test.mkv"

For a less noisy result, use targeted message levels if you already know which subsystem you need to inspect. Search the log for screen, fullscreen, geometry, profile, script, vo, wayland, x11, or d3d11.

Do not publish a log without reviewing it. Logs can contain local file paths, account names, URLs, headers, or other environment details.

5.2 Inspect Profiles and Runtime State

Use --show-profile=PROFILE_NAME to inspect a named profile you suspect. Replace PROFILE_NAME with the actual name:

mpv --show-profile=PROFILE_NAME

This is particularly useful for profiles associated with HDR, streaming, high-resolution video, or a specific output. Look for placement settings and options that change the active video output.

mpv's stats overlay is useful for confirming the active renderer, decoding path, frame timing, and media details. It is not a monitor-number display, but it can verify whether the failing test silently switched video output or hardware-decoding mode. The track list can similarly confirm selected video, audio, and subtitle tracks, helping you rule out a media-selection problem.

5.3 Compare Configured and Clean Runs

Create two logs using the same local file. Run one with your normal configuration and one with --no-config. Compare the display, profile, script, and video-output lines. Do not change several options between tests, because that makes the difference difficult to interpret.

If the clean run works, reintroduce these components in order:

  1. Your explicit screen and fs-screen settings
  2. The main configuration options
  3. Profiles
  4. Input bindings
  5. User scripts
  6. Shaders and custom video-output settings
  7. The frontend or external launcher

Stop as soon as the symptom returns. The last component added is the smallest useful troubleshooting target.

6. Run a Clean Temporary Test Before Making Permanent Changes

A clean temporary test protects a carefully customized mpv installation. It also avoids the destructive advice of deleting an entire configuration directory.

6.1 Use a Controlled Test Matrix

Run the following tests with the same local media file:

  1. mpv --no-config "test.mkv", then move the window and press f.
  2. mpv --no-config --fs "test.mkv".
  3. mpv --no-config --screen=0 --fs-screen=0 --fs "test.mkv".
  4. Repeat the third test with the next plausible screen number.
  5. Run the successful command without --no-config.
  6. Run the successful command through your normal frontend or launcher.

This sequence distinguishes default fullscreen behavior, direct startup behavior, explicit monitor selection, configuration interference, and frontend placement.

6.2 Know When to Stop

Stop changing settings when mpv consistently opens fullscreen on the intended display across two or three launches and still toggles correctly with f. Then make only the verified options persistent.

If the explicit clean command works but your normal command fails, do not alter drivers, codecs, subtitles, or audio. Find the override in the normal launch path. If no explicit screen value works under Wayland but moving the window before fullscreen does, stop searching for an mpv-only coordinate fix and use compositor-supported placement.

7. Quick Fix Checklist

  • Test a local file with mpv --no-config.
  • Move the window to the target display and press f.
  • Try mpv --screen=help where supported.
  • Test numbered --screen and --fs-screen values separately.
  • Add the verified values to mpv.conf.
  • Search configs and profiles for conflicting screen or geometry settings.
  • Inspect input.conf and scripts for fullscreen commands.
  • Disable a frontend's saved window position temporarily.
  • Do not confuse d3d11-adapter with monitor selection.
  • On Wayland, test moving the window before entering fullscreen.
  • Use a log to identify loaded profiles, scripts, and output drivers.
  • Stop once repeated launches use the correct monitor.

8. Frequently Asked Questions

8.1 What is the difference between screen and fs-screen?

screen influences the display used for the normal window on supported platforms, while fs-screen targets the display used in fullscreen. If only fullscreen is wrong, begin with fs-screen. Set both when you want startup and fullscreen to use the same monitor.

8.2 Why does mpv screen 1 not match Windows display 1?

mpv, the video output, the graphics stack, and the operating system can enumerate displays differently. Treat mpv's values as independent identifiers. Use --screen=help where available or test plausible numbers with --no-config.

8.3 Will changing d3d11-adapter move mpv to another monitor?

Not reliably. The option chooses a D3D11 graphics adapter, not a desktop display. Use screen and fs-screen for monitor selection. Change the adapter only when diagnosing GPU selection, rendering, HDR, or device-creation problems.

8.4 Why does mpv work in a terminal but not in my frontend?

The frontend may restore old coordinates, supply its own fullscreen argument, load a different configuration, or embed libmpv. Disable saved placement temporarily and compare the frontend's launch options with the working terminal command.

8.5 Why are screen and geometry options ignored on Wayland?

A Wayland compositor controls window placement and may reject or limit application positioning requests. Move mpv to the desired output before entering fullscreen, try fs-screen=current where supported, or create a compositor rule for mpv.

8.6 Can a subtitle, stream, or yt-dlp problem select the wrong monitor?

Normally, no. Those features can affect loading, tracks, and playback, but they do not ordinarily choose the display. Test with a local file first. If only online playback fails, inspect scripts, profiles, frontend arguments, and resolver behavior triggered by that launch path.


Citations

  1. Official mpv manual covering screen, fs-screen, profiles, logging, video outputs, and configuration options. (mpv Manual)
  2. Official mpv documentation and source repository for configuration examples and project information. (mpv GitHub Repository)
  3. Wayland protocol documentation explaining the compositor-centered display and window-management model. (Wayland Documentation)
Cindy, ContentBASE creator assistant

MEET CINDY

Your ContentBASE creator assistant

Cindy helps creators find Canva templates, content ideas, and simple ways to make better social media posts faster.

Want ready-to-use templates? Claim the free Canva bundles or browse the full bundle store.