- Verify the active input.conf path with one explicit clean test.
- Use input-test to identify correct key names and combinations.
- Isolate invalid commands, duplicate bindings, scripts, and launcher overrides.
- Confirm the Symptom With a Minimal Clean mpv Command
- Check the Correct input.conf Path
- Validate Key Names and Command Syntax
- Find Conflicting Bindings, Scripts, and Launch Options
- Check Paths, Permissions, and Shell Quoting
- Use Logs and Terminal Output to Prove What mpv Loaded
- Run a Clean Temporary Test Before Changing Multiple Options
- Quick Fix Checklist
- Frequently Asked Questions
When custom mpv key bindings do nothing, the problem usually falls into one of four categories: mpv is not loading the intended input.conf file, the key name is incorrect, the command on the right side is invalid, or another binding or script is taking precedence. The fastest solution is to isolate those possibilities with one minimal binding and a clean launch command. This guide focuses specifically on input.conf loading across Windows, Linux, and macOS, including portable installations, custom configuration directories, scripts, profiles, and command-line overrides.

Start with free Canva bundles
Browse the freebies page to claim ready-to-use Canva bundles, then get 25% off your first premium bundle after you sign up.
Free to claim. Canva-ready. Instant access.
1. Confirm the Symptom With a Minimal Clean mpv Command
Before editing a large configuration, confirm that the issue is truly related to input.conf. Choose a local media file that mpv can already play. A short local file avoids unrelated complications involving network access, stream URLs, yt-dlp, authentication, playlists, or buffering.
Create a temporary text file named test-input.conf containing one binding:
F8 show-text "TEST BINDING WORKS"Launch mpv from a terminal while explicitly naming that file. Replace the example paths with real absolute paths on your computer.
1.1 Windows test command
mpv.exe --no-config --input-conf="C:\Users\YourName\Desktop\test-input.conf" "C:\Media\test-video.mkv"1.2 Linux test command
mpv --no-config --input-conf="$HOME/test-input.conf" "$HOME/Videos/test-video.mkv"1.3 macOS test command
mpv --no-config --input-conf="$HOME/test-input.conf" "$HOME/Movies/test-video.mkv"Press F8 while the mpv window has keyboard focus. Success means the words TEST BINDING WORKS appear on screen. If that happens, mpv input handling works, the temporary file is readable, and the syntax of this test binding is valid. Stop changing operating-system, GPU, audio, subtitle, HDR, and playback settings. The remaining problem is in the location or contents of your normal configuration.
If the message does not appear, verify that F8 is reaching mpv. Laptop function keys may require the Fn key, and desktop environments can reserve certain shortcuts. Change the test to an ordinary unused key, such as:
k show-text "TEST BINDING WORKS"Do not use a key that you need for normal playback during this test. Also click the mpv window before pressing it. If an ordinary key works but F8 does not, the configuration is loading and the issue is keyboard or operating-system interception rather than an ignored file.
2. Check the Correct input.conf Path
The most common cause of mpv input.conf ignored reports is a file saved in a directory that the active mpv process is not using. The expected location depends on the operating system, packaging method, and whether a custom configuration directory or portable setup is active.
2.1 Standard configuration locations
Common mpv configuration locations include:
- Windows:
%APPDATA%\mpv\input.conf - Linux and other Unix-like systems:
~/.config/mpv/input.conf - macOS command-line installations: commonly
~/.config/mpv/input.conf
Windows users should enter %APPDATA%\mpv in File Explorer's address bar rather than guessing where AppData is located. Confirm that the final filename is exactly input.conf, not input.conf.txt. Enable file-name extensions in File Explorer if necessary.
Some mpv builds or front ends use a portable configuration directory near the executable. A graphical mpv-based application may also maintain its own configuration and may not use the same folder as the standalone mpv command. Test the exact executable you normally launch.
2.2 Check the active input-conf option
Ask mpv which value it has for the input-conf option:
mpv --input-conf=helpFor runtime inspection, the console or IPC property system can also be useful, but the most reliable troubleshooting method is to launch with an explicit absolute path:
mpv --input-conf="/absolute/path/to/input.conf" "media-file.mkv"If the explicit path works, your key syntax and command syntax are probably valid. The automatic configuration location is the problem. Move or copy only the verified input.conf into the configuration directory used by that mpv installation. Do not delete the entire configuration folder.
Also inspect shortcuts, shell aliases, wrapper scripts, desktop launchers, and application preferences for these options:
--config-dir=..., which changes the configuration directory--input-conf=..., which selects a specific input file--no-config, which prevents normal configuration files from loading
Success means the same test binding works when mpv is launched normally, without an explicit --input-conf argument. At that point, stop relocating files and continue only if individual bindings still fail.
3. Validate Key Names and Command Syntax
Each active line in input.conf normally consists of a key name followed by an mpv input command and its arguments. A file can load successfully even when one line contains an invalid key or command. This creates the impression that the whole file was ignored.
3.1 Verify the key name with input-test
Use mpv's input testing mode to see how mpv identifies a key:
mpv --input-test --force-window --idlePress the key or key combination you want to bind and watch the terminal or on-screen output. Use the key name reported by mpv rather than assuming that the printed character, keyboard label, or desktop shortcut name is correct.
Modifier combinations use names mpv recognizes, such as Ctrl, Alt, and Shift, joined to the key. Keyboard layouts can affect punctuation and symbol keys. Testing the exact key is more reliable than copying a binding designed for a different keyboard layout.
Success means pressing the intended physical key produces the expected mpv key identifier. Stop experimenting with alternative spellings after you have copied the identifier shown by input testing.
3.2 Test the command independently
A recognized key can still appear inactive when its command is malformed or has no visible effect in the current playback state. Replace the original action temporarily with a visible command:
YOUR_KEY show-text "KEY RECOGNIZED"If the message appears, the key and file are working. The original command is the problem. Check the current mpv manual's input command list and option names because configuration options and input commands are not interchangeable.
For example, an input command may set or cycle a property, while a startup option belongs in mpv.conf. Copying a command-line option directly after a key does not necessarily create a valid input command. Quoted arguments must also remain balanced, especially when a command contains spaces.
3.3 Check comments, encoding, and line structure
Lines beginning with # are comments and are not active bindings. Make sure the desired line has not been commented out. Save the file as ordinary UTF-8 text. Avoid rich-text editors that insert typographic quotation marks or hidden formatting.
Test a problematic file by reducing a copy of it to one known-good line. If that copy works, add bindings back in small groups until the failing line is identified. This is safer and faster than rewriting the entire configuration.

4. Find Conflicting Bindings, Scripts, and Launch Options
When a binding works in a minimal file but not in the normal setup, something in the normal configuration is overriding it or consuming the key. Likely sources include a later binding for the same key, an autoloaded Lua or JavaScript script, a script-specific key binding, a front end, or an operating-system shortcut.
4.1 Look for duplicate key assignments
Search every active input configuration for the same key. If it appears more than once, the effective binding may not be the one you expected. Keep one test assignment, restart mpv, and check it again.
Default mpv bindings can also use the same key. A user binding should normally replace the relevant default behavior, but scripts can register bindings with different priorities or force them. If the default action occurs instead of your custom action, confirm that your file loaded. If a script action occurs, isolate scripts next.
4.2 Temporarily isolate scripts
Do not delete the scripts directory. Launch one test with script loading disabled:
mpv --no-scripts --input-conf="/absolute/path/to/input.conf" "media-file.mkv"If the binding works only with --no-scripts, one of the normal scripts is conflicting with the key or changing input behavior. Re-enable scripts individually or in small groups. Review each script's documentation for configurable key bindings.
Success means you identify one script or script configuration responsible for the conflict. Change that script's key assignment or choose a different key in input.conf. Stop disabling unrelated scripts after the conflict is isolated.
4.3 Separate profiles from input bindings
Profiles in mpv.conf control options under particular conditions, but input.conf is the normal location for keyboard and mouse bindings. Use --show-profile=PROFILE_NAME to inspect a named profile:
mpv --show-profile=myprofileThis can reveal option changes that affect what a command does, but a profile does not prove that input.conf loaded. For example, a profile might change subtitle visibility, audio track selection, video output, or screenshot directory. Those changes can make a valid key command seem ineffective even though the key was received.
5. Check Paths, Permissions, and Shell Quoting
If mpv cannot read the file, an otherwise correct binding will never load. Confirm that your user account has read permission for input.conf and execute or traversal permission for its parent directories. Avoid testing with administrator or root privileges because that can select a different home directory and configuration tree.
5.1 Use absolute paths during diagnosis
Relative paths depend on the process's current working directory, which may differ between a terminal, desktop shortcut, file manager, and front end. Use an absolute path with --input-conf until loading is confirmed.
Quote paths containing spaces. In Windows Command Prompt, double quotes are typically appropriate. PowerShell, Bash, Zsh, and Fish have their own quoting rules. A shell can alter backslashes, dollar signs, quotation marks, and special characters before mpv receives the argument.
If a quoted path is uncertain, place the temporary file in a simple location with a simple filename. Once that works, return to the desired path and correct the quoting.
5.2 Distinguish input failure from media limitations
GPU drivers, display servers, audio backends, hardware decoding, HDR output, and codecs rarely determine whether input.conf loads. They can, however, affect the result of a particular command. For example:
- A subtitle cycling command has little visible effect when the file has no subtitle tracks.
- An audio-track command cannot select tracks that are not present.
- A screenshot command may fail when its destination directory is missing or unwritable.
- A video property may not behave as expected with a particular output driver or hardware-decoding path.
- A yt-dlp or stream-related command may depend on network access or an external executable.
Replace the questionable action with show-text. If the message appears, input.conf is not ignored. Investigate the command's media, path, network, or output requirements instead.
6. Use Logs and Terminal Output to Prove What mpv Loaded
Terminal output is more reliable than guessing. Start mpv from a terminal and increase the configuration-related logging level:
mpv --msg-level=all=v "media-file.mkv"For a persistent log, use:
mpv --log-file="mpv-debug.log" --msg-level=all=v "media-file.mkv"Search the output for input.conf, configuration paths, parsing errors, unknown commands, unknown keys, script messages, and permission failures. Logging can be verbose, so reproduce the problem once and then inspect the lines around configuration and input activity.
The stats overlay is useful for playback performance, track details, and decoder information, but it is not the primary tool for proving that an input file loaded. Likewise, the track list can explain why subtitle or audio selection commands appear ineffective, but it cannot validate the configuration path.
Use --no-config carefully. It intentionally disables normal configuration loading, so a normal input.conf will not be used unless you explicitly provide it. This combination is valuable for isolation:
mpv --no-config --input-conf="/absolute/path/to/test-input.conf" "media-file.mkv"Success means the log shows no parsing or read errors and the visible test binding runs. Stop increasing log verbosity after confirming the relevant fact.
7. Run a Clean Temporary Test Before Changing Multiple Options
A controlled test prevents unrelated mpv troubleshooting from obscuring the cause. Do not simultaneously change hardware decoding, video output, shaders, HDR settings, scripts, profiles, subtitle preferences, and keyboard bindings.
- Create a one-line temporary input file using
F8 show-text "TEST BINDING WORKS". - Use a known-good local media file.
- Launch with
--no-configand an explicit absolute--input-confpath. - Change F8 to a simple letter if the operating system intercepts the function key.
- If it works, test the normal configuration location.
- If that works, restore the desired command.
- If the desired command fails, inspect its syntax and required playback state.
- Finally, re-enable scripts and other normal options in small groups.
This sequence gives each test one clear meaning. The moment the known-good binding works under your normal launch method, stop changing file locations and permissions. The moment the intended command works, stop changing command syntax. Additional changes only create new variables.
8. Quick Fix Checklist
- Confirm the filename is exactly
input.conf, without a hidden.txtextension. - Place it in the configuration directory used by the exact mpv executable or front end.
- Check launchers and aliases for
--no-config,--config-dir, or another--input-conf. - Test with an explicit absolute
--input-confpath. - Use
--input-test --force-window --idleto identify the correct key name. - Replace the desired action with
show-textto separate key recognition from command failure. - Check for duplicate assignments and script conflicts.
- Run one test with
--no-scriptsinstead of deleting scripts. - Use terminal output or
--log-fileto find parsing and permission errors. - Test subtitle, audio, screenshot, stream, and track commands with media that supports them.
- Change one variable at a time and stop when the expected behavior returns.
9. Frequently Asked Questions
9.1 Where should input.conf be stored?
On Windows, the usual user location is %APPDATA%\mpv\input.conf. On Linux and many macOS command-line installations, it is ~/.config/mpv/input.conf. Portable builds, front ends, custom launchers, and --config-dir can change the active location. An explicit --input-conf test is the quickest way to confirm whether location is the issue.
9.2 Why does one custom binding fail while others work?
If other bindings in the same file work, mpv is not ignoring the file. The failed line probably uses an incorrect key identifier, invalid command, unsuitable argument, duplicate key, or action that has no effect on the current media. Use input-test, then replace the action with show-text.
9.3 Does --no-config disable input.conf?
Yes, it disables normal configuration loading. For a clean input test, combine it with an explicit file: --no-config --input-conf="/path/to/test-input.conf". This loads only the input file you selected while excluding the normal configuration.
9.4 Can a script override input.conf?
Yes. Scripts can register key bindings, including bindings that conflict with user or default assignments. Test with --no-scripts. If the custom key starts working, re-enable scripts selectively and change the conflicting assignment.
9.5 Why does a subtitle, audio, or screenshot shortcut appear broken?
The key may be working while the command lacks the required context. Check whether the file has the relevant subtitle or audio track. For screenshots, verify that the target directory exists and is writable. Replace the command temporarily with show-text to prove that mpv received the key.
9.6 Should I reinstall mpv or delete its configuration folder?
Not initially. Reinstallation rarely fixes a misplaced file, incorrect key name, malformed command, launcher override, or script conflict. Keep the existing configuration intact, create a one-line temporary file, and test it with an explicit path. Change or remove only the item proven to cause the problem.