
CMD + Delete
A text navigation and editing shortcuts framework for Minecraft, allowing macOS users to experience native text editing behavior and everyone else to define their own custom shortcuts.
- Загрузки
- 471
- Подписчики
- 3
- Обновлён
- 8 июля 2026 г.
- Лицензия
- Apache-2.0
Опубликован 7 февраля 2026 г.
CMD + Delete
In Minecraft on macOS, pressing option and backspace deletes a single character, and pressing command and backspace deletes a word. This is completely inconsistent with the native OS, so I fixed it:
Not only does CMD + Delete fix the macOS text behavior, it also expands Minecraft into a fully user-configurable text editing/navigation shortcut framework!
Important Context
- If you use this mod on Windows or Linux, and you don't use custom mappings, nothing will change from vanilla Minecraft.
- If you have any problems with this mod, please report them as Issues on GitHub. This mod is Open Source and Pull Requests are very much welcome! :)
Custom Mappings
You can define your own custom mappings in configuration files with the location & name: <minecraft install>/config/cmd_delete/mappings/<id>.json. These allow you to customize the text navigation shortcut behavior in Minecraft for your own taste & configuration.
Examples
sample.json:
{
"fv": 3,
"inherits": "builtin:mac",
"meta": {
"name": "Example custom mapping",
"author": "Omegabird113",
"description": "This example demonstrates inheritance, patching, and more! Though, these keybinds are made up and people wouldn't use these most likely...",
"version": "2.1.0",
"id": "sample",
"systems": [
"mac", "windows", "linux"
]
},
"actions": {
"NAV_TEXT_START": [
{
"key": "up",
"superCommand": true,
"altOption": false,
"shift": false,
"enabled": false
},
{
"key": "e",
"superCommand": true
},
{
"key": "home"
}
]
}
}
mac.json:
{
"fv": 3,
"meta": {
"name": "Mac mappings",
"author": "$$cmd_delete$$",
"description": "Pre-bundled mappings for macOS.",
"version": "$$cmd_delete$$",
"id": "mac",
"systems": [
"mac"
]
},
"actions": {
"NAV_TEXT_START": [
{"key": "up", "superCommand": true, "altOption": false, "shift": false}
],
"SEL_TEXT_START": [
{"key": "up", "superCommand": true, "altOption": false, "shift": true}
],
"NAV_TEXT_END": [
{"key": "down", "superCommand": true, "altOption": false, "shift": false}
],
"SEL_TEXT_END": [
{"key": "down", "superCommand": true, "altOption": false, "shift": true}
],
"NAV_LINE_LEFT": [
{"key": "left", "superCommand": true, "altOption": false, "shift": false}
],
"SEL_LINE_LEFT": [
{"key": "left", "superCommand": true, "altOption": false, "shift": true}
],
"NAV_LINE_RIGHT": [
{"key": "right", "superCommand": true, "altOption": false, "shift": false}
],
"SEL_LINE_RIGHT": [
{"key": "right", "superCommand": true, "altOption": false, "shift": true}
],
"NAV_WORD_LEFT": [
{"key": "left", "superCommand": false, "altOption": true, "shift": false}
],
"SEL_WORD_LEFT": [
{"key": "left", "superCommand": false, "altOption": true, "shift": true}
],
"NAV_WORD_RIGHT": [
{"key": "right", "superCommand": false, "altOption": true, "shift": false}
],
"SEL_WORD_RIGHT": [
{"key": "right", "superCommand": false, "altOption": true, "shift": true}
],
"DEL_LINE_LEFT": [
{"key": "backspace", "superCommand": true, "altOption": false}
],
"DEL_LINE_RIGHT": [
{"key": "delete", "superCommand": true, "altOption": false}
],
"DEL_WORD_LEFT": [
{"key": "backspace", "superCommand": false, "altOption": true}
],
"DEL_WORD_RIGHT": [
{"key": "delete", "superCommand": false, "altOption": true}
],
"SEL_TEXT_UP": [
{"key": "up", "superCommand": false, "altOption": false, "shift": true}
],
"SEL_TEXT_DOWN": [
{"key": "down", "superCommand": false, "altOption": false, "shift": true}
],
"OVR_NAV_CHAR_LEFT": [
{"key": "left", "superCommand": false, "altOption": false, "shift": false}
],
"OVR_NAV_CHAR_RIGHT": [
{"key": "right", "superCommand": false, "altOption": false, "shift": false}
],
"OVR_SEL_CHAR_LEFT": [
{"key": "left", "superCommand": false, "altOption": false, "shift": true}
],
"OVR_SEL_CHAR_RIGHT": [
{"key": "right", "superCommand": false, "altOption": false, "shift": true}
],
"OVR_DEL_CHAR_LEFT": [
{"key": "backspace", "superCommand": false, "altOption": false, "shift": false}
],
"OVR_DEL_CHAR_RIGHT": [
{"key": "delete", "superCommand": false, "altOption": false, "shift": false}
],
"OVR_NAV_TEXT_UP": [
{"key": "up", "superCommand": false, "altOption": false, "shift": false}
],
"OVR_NAV_TEXT_DOWN": [
{"key": "down", "superCommand": false, "altOption": false, "shift": false}
]
},
"flags": {
"overrideVanillaNavigation": true,
"crossLineSignMovement": true
}
}
Features
Custom mappings can:
- Use wildcard expansion where any modifier not included in a key combo is treated as
trueORfalse. - Use friendly keyname strings defined by CMD + Delete instead of GLFW keycodes. If a keyname is not defined, you can still choose to use a raw GLFW keycode in your JSON.
- Inherit keybinds from the builtin mappings or other custom mappings by setting the top-level
inheritsvalue tocustom:<id>to inherit a custom JSON, orbuiltin:<id>or just<id>to inherit a builtin JSON. - Patch & override the mappings they inherit by setting the keybind to have
enabledproperty asfalse. Note that CMD + Delete always removes your disabled keybinds before adding your enabled keybinds, allowing a patch-then-reimplement pattern to be easily done. - Set certain boolean feature flags to control the mod's behavior.
Note that:
- The format version
fvis currently3and your mappings should match that (Though old mappings of format version2are still supported in-game). - The
meta.idfield must exactly match the filename without the.jsonextension
The /navmappings command
CMD + Delete includes an in-game, client /navmappings command for checking, switching, importing, exporting, and debugging mappings without manually touching config files.
Here are all the subcommands:
/navmappings info: displays info about the currently loaded mappings./navmappings list: displays a list of the namespaced IDs of the currently available mappings, which you could switch to./navmappings set default: switch to the default mappings behavior./navmappings set builtin <non-namespaced id>: switch a specific OS's builtin mappings JSON./navmappings set custom <non-namespaced id>: switch to one of your own custom mappings JSONs./navmappings reload: reload the currently active mappings./navmappings export <type> <non-namespaced id> <absolute location>: make a copy of a mappings JSON to another location on your system so you can copy it./navmappings import <non-namespaced id> <absolute location>: import a copy of a JSON you made from another location on your system into the custom JSONs folder for you to use as custom mappings./navmappings debug: a utility that provides dumps of information like info about CMD + Delete, a dump of the friendly keynames which CMD + Delete mappings JSONs support, or a raw dump of the internal loaded mappings' registry.
Builtin Mappings' Shortcuts
By default, CMD + Delete will detect if you're using macOS, and if you are it'll set you to those shortcuts, otherwise it will set you to use Windows/Linux shortcuts.
| Action | macOS | Windows / Linux |
|---|---|---|
| Delete previous word | option + backspace |
ctrl + backspace |
| Delete next word | option + delete |
ctrl + delete |
| Delete to start of line | cmd + backspace |
N/A |
| Delete to end of line | cmd + delete |
N/A |
| Move to previous word | option + ← |
ctrl + ← |
| Move to next word | option + → |
ctrl + → |
| Move to start of line | cmd + ← |
home |
| Move to end of line | cmd + → |
end |
| Move to start of text | cmd + ↑ |
ctrl + home |
| Move to end of text | cmd + ↓ |
ctrl + end |
| Select to previous word | option + shift + ← |
ctrl + shift + ← |
| Select to next word | option + shift + → |
ctrl + shift + → |
| Select to start of line | cmd + shift + ← |
shift + home |
| Select to end of line | cmd + shift + → |
shift + end |
| Select to start of text | cmd + shift + ↑ |
ctrl + shift + home |
| Select to end of text | cmd + shift + ↓ |
ctrl + shift + end |
| Select up one line | shift + ↑ |
shift + ↑ |
| Select down one line | shift + ↓ |
shift + ↓ |
Ченджлог
1.3.0-rc1+mc26.1Бета26.1.1, 26.1.2, 26.2 · 8 июля 2026 г.
1.3.0 Release Candidate 1
Changes:
- Increased the Mappings format version to
3, which:- Does not break compatability this time, because fv 2 mappings still load.
- Mappings can now set feature flags
overrideVanillaNavigationandcrossLineSignMovementwithin theflagstop level JSON format. - Added new vanilla override actions so mappings can customize more keybinds (they only work if
overrideVanillaNavigationistrue):OVR_NAV_CHAR_LEFT,OVR_NAV_CHAR_RIGHT,OVR_SEL_CHAR_LEFT,OVR_SEL_CHAR_RIGHT,OVR_DEL_CHAR_LEFT,OVR_DEL_CHAR_RIGHT,OVR_NAV_TEXT_UP, andOVR_NAV_TEXT_DOWN. - Note that, in the future, any new actions will cause an
fvbump, but new feature flags will not.
- Added the
/navmappings debug dumpActionsand/navmappings debug dumpFeatureFlagssubcommands - Internal code improvements
Full changelog: https://github.com/Omegabird113/CMD_Delete/compare/1.2.0+mc26.1...1.3.0-rc1+mc26.1
1.2.0+mc1.20.5Релиз1.21.3, 1.21.4, 1.21.5 · 27 июня 2026 г.
1.2.0
Changes:
- Increased the Mappings format version to
2, which:- Breaks compatibility with previous mappings
- Allows custom mappings to now inherit from other mappings
- Mappings now must have an
idfield within themetaobject which must match their filename - Mappings can now set the
keyvalue in a key registration to an integer of the GLFW keycode instead of only allowing CMD + Delete's custom friendly keynames.
- Added the
/navmappings reload,/navmappings debug,/navmappings import, and/navmappings exportsubcommands - Improved logging significantly
- Builtin mappings are now stored in the JSON format
- Added more links and a better description to the mod's about info
- Internal code improvements
Changes since RC2:
- Improved some error messages
- Internal code improvements
Full changelog: https://github.com/Omegabird113/CMD_Delete/compare/1.1.0+mc26.1...1.2.0+mc26.1
1.2.0+mc1.21.11Релиз1.21.11 · 27 июня 2026 г.
1.2.0
Changes:
- Increased the Mappings format version to
2, which:- Breaks compatibility with previous mappings
- Allows custom mappings to now inherit from other mappings
- Mappings now must have an
idfield within themetaobject which must match their filename - Mappings can now set the
keyvalue in a key registration to an integer of the GLFW keycode instead of only allowing CMD + Delete's custom friendly keynames.
- Added the
/navmappings reload,/navmappings debug,/navmappings import, and/navmappings exportsubcommands - Improved logging significantly
- Builtin mappings are now stored in the JSON format
- Added more links and a better description to the mod's about info
- Internal code improvements
Changes since RC2:
- Improved some error messages
- Internal code improvements
Full changelog: https://github.com/Omegabird113/CMD_Delete/compare/1.1.0+mc26.1...1.2.0+mc26.1
1.2.0+mc26.1Релиз26.1.1, 26.1.2, 26.2 · 27 июня 2026 г.
1.2.0
Changes:
- Increased the Mappings format version to
2, which:- Breaks compatibility with previous mappings
- Allows custom mappings to now inherit from other mappings
- Mappings now must have an
idfield within themetaobject which must match their filename - Mappings can now set the
keyvalue in a key registration to an integer of the GLFW keycode instead of only allowing CMD + Delete's custom friendly keynames.
- Added the
/navmappings reload,/navmappings debug,/navmappings import, and/navmappings exportsubcommands - Improved logging significantly
- Builtin mappings are now stored in the JSON format
- Added more links and a better description to the mod's about info
- Internal code improvements
Changes since RC2:
- Improved some error messages
- Internal code improvements
Full changelog: https://github.com/Omegabird113/CMD_Delete/compare/1.1.0+mc26.1...1.2.0+mc26.1
1.2.0-rc2+mc26.1Бета26.1.1, 26.1.2, 26.2 · 26 июня 2026 г.
- Add dedicated subcommands for /navammpings import and /navmappings export
- add /navmappings debug aboutCmdDelete
- imporve the mod's marketing materials
- Internal code improvements
1.2.0-rc1+mc26.1Бета26.1.1, 26.1.2, 26.2 · 25 июня 2026 г.
- Increased the Mappings format version to 2 which breaks compatability with previous mappings
- Custom mappings can now inherit from other mappings
- Mappings now must have a meta.id field which must match their filename
- Added /navmappings reload and /navmappings debug commands
- Improved logging significantly
- Builtin mappings are now stored in the JSON format
- Added more links to the mod's about info
- Internal code improvements
1.1.0+mc1.19.1Релиз1.19.1 · 24 июня 2026 г.
- This is a collection of further backport builds of 1.1.0 made later with no changes other than those neeccessary for the backport to work.
1.1.0+mc1.19Релиз1.19 · 24 июня 2026 г.
- This is a collection of further backport builds of 1.1.0 made later with no changes other than those neeccessary for the backport to work.
Комментарии
Загружаем…