I'm glad that i'm not the only one super annoyed by this. I've asked Parallels multiple times and they insist it's built-in issue by design with no solution (I don't know if I believe this). I'm in the same boat as you... the workaround is that I swapped the Parallels remapping so that CMD=WIN and OPT=ALT. Then i used Karabiner Elements to swap the CMD and OPT keys when parallels is the frontmost application. I don't know how to code but used ChatGPT to write me the following "Complex Modification"
{
"description": "Parallels-only: swap Command ↔ Option; keep macOS Cmd+Space/Tab intact",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": ["option"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "tab",
"modifiers": ["command"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": ["command"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "tab",
"modifiers": ["command"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": ["option", "shift"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "tab",
"modifiers": ["command", "shift"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": ["command", "shift"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "tab",
"modifiers": ["command", "shift"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "spacebar",
"modifiers": {
"mandatory": ["option"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "spacebar",
"modifiers": ["command"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "spacebar",
"modifiers": {
"mandatory": ["command"],
"optional": ["any"]
}
},
"to": [
{
"key_code": "spacebar",
"modifiers": ["command"]
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": { "key_code": "left_command" },
"to": [{ "key_code": "left_option" }],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": { "key_code": "left_option" },
"to": [{ "key_code": "left_command" }],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": { "key_code": "right_command" },
"to": [{ "key_code": "right_option" }],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.parallels\\..*"
],
"type": "frontmost_application_if"
}
],
"from": { "key_code": "right_option" },
"to": [{ "key_code": "right_command" }],
"type": "basic"
}
]
}
Click to expand...