-
-
Save jdleslie/9a3566037e35437a3846c428f306318f to your computer and use it in GitHub Desktop.
{ | |
"title": "Citrix Receiver/Workspace modifiers for Ctrl, Alt, Windows order", | |
"rules": [ | |
{ | |
"description": "In Citrix, add fn modifier to tab so it is forwarded", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "tab", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "tab", | |
"modifiers": [ "fn" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change left_option to Alt key via \"⌘⌥ Command (left)-Option\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "left_option", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "left_option", | |
"modifiers": [ "left_command", "fn" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change right_option to Alt key via \"⌘⌥ Command (left)-Option\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "right_option", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "right_option", | |
"modifiers": [ "left_command", "fn" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change left_command as well via \"Send Windows logo key using ⌘ Command (right)\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "left_command", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "right_command" | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
{ | |
"title": "Citrix Receiver/Workspace modifiers for Ctrl, Windows, Alt order", | |
"rules": [ | |
{ | |
"description": "In Citrix, add fn modifier to tab so it is forwarded", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "tab", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "tab", | |
"modifiers": [ "fn" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change left_command to Alt via \"⌘⌥ Command (left)-Option\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "left_command", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "left_command", | |
"modifiers": [ "left_option" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change right_command to Alt via \"⌘⌥ Command (left)-Option\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "right_command", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "left_command", | |
"modifiers": [ "left_option" ] | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change left_option to Windows logo key via \"Send Windows logo key using ⌘ Command (right)\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "left_option", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "right_command" | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
}, { | |
"description": "In Citrix, change right_option to Windows logo key via \"Send Windows logo key using ⌘ Command (right)\"", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "right_option", | |
"modifiers": { "optional": [ "any" ] } | |
}, | |
"to": { | |
"key_code": "right_command" | |
}, | |
"type": "basic", | |
"conditions": [ | |
{ | |
"type": "frontmost_application_if", | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
{ | |
"title": "Home/End mapping compatible with Citrix Receiver/Workspace", | |
"rules": [ | |
{ | |
/* In Citrix, the Windows remote handles this combination natively */ | |
"description": "Except in Citrix, change Control-Home to navigate to top of document via Command-Up", | |
"manipulators": [ | |
{ | |
"conditions": [ | |
{ | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
], | |
"type": "frontmost_application_unless" | |
} | |
], | |
"from": { | |
"key_code": "home", | |
"modifiers": { | |
"mandatory": [ | |
"control" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "up_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"type": "basic" | |
} | |
] | |
}, | |
{ | |
/* ibid */ | |
"description": "Except in Citrix, change Control-End to navigate to bottom of document via Command-Down", | |
"manipulators": [ | |
{ | |
"conditions": [ | |
{ | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
], | |
"type": "frontmost_application_unless" | |
} | |
], | |
"from": { | |
"key_code": "end", | |
"modifiers": { | |
"mandatory": [ | |
"control" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "down_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"type": "basic" | |
} | |
] | |
}, | |
{ | |
/* Fn-Left/Right maps to Home/End in Citrix, making it a better choice than Command-Left/Right for Citrix users. | |
MacOS supports Home/End functionality in two ways: | |
* Command-Left/Right: Maps to Control-Left/Right in Citrix (useless), behaves as expected in MacOS | |
* Fn-Left/Right: Maps to Home/End correctly in Citrix, behaves as expected in MacOS | |
Reference: https://www.cnet.com/how-to/two-mac-keyboard-shortcuts-for-missing-home-and-end-keys/ | |
*/ | |
"description": "Change Home to navigate to start of line via Fn-Left (Fn-Left maps to Home in Citrix)", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "home", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
"fn" | |
] | |
} | |
], | |
"type": "basic" | |
} | |
] | |
}, | |
{ | |
/* ibid */ | |
"description": "Change End to navigate to end of line via Fn-Right (Fn-Right maps to End in Citrix)", | |
"manipulators": [ | |
{ | |
"from": { | |
"key_code": "end", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
"fn" | |
] | |
} | |
], | |
"type": "basic" | |
} | |
] | |
} | |
] | |
} |
{ | |
/* Based on https://gist.github.com/permil/ed5a66f7e0cb712b0a9c03532530b9dd */ | |
"title": "Print Screen mapping compatible with Citrix Receiver/Workspace", | |
"rules": [ | |
{ | |
"description": "Except in Citrix, change print_screen to capture entire screen via Command-Shift-3", | |
"manipulators": [ | |
{ | |
"conditions": [ | |
{ | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
], | |
"type": "frontmost_application_unless" | |
} | |
], | |
"from": { | |
"key_code": "print_screen" | |
}, | |
"to": [ | |
{ | |
"key_code": "3", | |
"modifiers": [ | |
"left_command", | |
"left_shift" | |
] | |
} | |
], | |
"type": "basic" | |
} | |
] | |
}, | |
{ | |
"description": "Except in Citrix, change print_screen to capture current window via Command-Shift-4", | |
"manipulators": [ | |
{ | |
"conditions": [ | |
{ | |
"bundle_identifiers": [ | |
"^com\\.citrix\\.XenAppViewer$", | |
"^com\\.citrix\\.receiver\\.icaviewer\\.mac$" | |
], | |
"type": "frontmost_application_unless" | |
} | |
], | |
"from": { | |
"key_code": "print_screen", | |
"modifiers": { | |
"mandatory": [ | |
"option" | |
] | |
} | |
}, | |
"parameters": { | |
"basic.to_delayed_action_delay_milliseconds": 50 | |
}, | |
"to": [ | |
{ | |
"key_code": "4", | |
"modifiers": [ | |
"left_command", | |
"left_shift" | |
] | |
} | |
], | |
"to_delayed_action": { | |
"to_if_invoked": [ | |
{ | |
"key_code": "spacebar" | |
} | |
] | |
}, | |
"type": "basic" | |
} | |
] | |
} | |
] | |
} |
Thank you so much for sharing this. Straightforward instructions and worked first time! Looking forward to using my Mac for my day job now! :D
What key combination gets a '#' please?
I've been able to workaround the above by disabling the rules for the right hand side of the keyboard and using opt + 3 as normal.
I am struggling to get the equivalent of hodling ALT and selecting text to select a rectangular block. Using my mapped to alt opt key results in a right click most of the time (I have seen it do a block select twice and I can't figure out why). Any ideas?
Is there any way to restrict these key maps to Citrix? I am also seeing these changes throughout MacOS.
@den3erw Yes you can limit this to just Citrix. In the scripts you will see the following:
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\.citrix\.XenAppViewer$",
"^com\.citrix\.receiver\.icaviewer\.mac$"
]
}
]
Struggling to have these key binds work for me. I'm running Sequoia 15.1, Karabiner Elements 15.3, Citrix Workspace 24.09.054. I have a MX Keys device with the LHS keys labeled as following: Ctrl, Option/Start, Command/Alt. My Mac keyboard settings are all default. I've tried enabling both key order types (separately) and have the right options ticked in Workspace. Also did a full restart.
What gives? Has anyone else faced this problem before? Really appreciate any help or tips.
Update: I didn't turn on the Device in settings. First time using Karabiner. Works like a charm - thanks!
Yeah, I have it setup to work that way too and it's nice. For whatever reason I still just keep it as a maximised window, I like having the Mac top toolbar visible. Also respect for responding to the year old query of the other guy ;)
If OP sees this then again, chef's kiss, I daily your config for work purposes.