I am using Microsoft Outlook in macOS. Is it possible to disable its keybindings such as command-a for select all, since I am using that binding for something else.

Basically, I just want Microsoft Outlook to see the default keybindings that macOS using.

Please note that I am using Emacs key bindings using Karabiner.

Key Bindings (control+keys)

control+bfnp    arrow keys
control+d   forward delete
control+h   delete
control+i   tab
control+[   escape
control+m   return
control+v   page down
control+a   (Microsoft Office)  home
control+e   (Microsoft Office)  end
  • 1
    Based on my understanding you want to reassign keybinding(s) not to disable it. However, bear in mind that Command-A is macOS built-in keyboard shortcut which works globally (Cut, copy, paste, and other common shortcuts) – Aivar Paalberg Jan 19 at 8:42
  • I am using emacs keybindings is system-wide, like command-a goes to beginning of the line or ecommand-e` goes to end of the current line and so on but none of them works under Windows products – alper Jan 19 at 11:15

Solution with Karabiner

Add this to the directory ~/.config/karabiner/assets/complex_modifications as a .json file with whatever unique filename you would like.

    "title": "Microsoft Outlook rules",
    "rules": [
            "description": "Microsoft Outlook Unmap command-A",
            "manipulators": [
                    "type": "basic",
                    "from": {
                        "key_code": "a",
                        "modifiers": {
                            "mandatory": ["command"],
                            "optional": ["caps_lock"]
                    "to": [
                            "key_code": "home"
                    "conditions": [
                            "type": "frontmost_application_if",
                            "bundle_identifiers": ["^com\\.microsoft\\.Outlook$"]

After you do this you will need to enable the complex modification by going to Karabiner-Elements Preferences > Complex Modifications > Rules > Add and picking it from the list.

More Info and Tools

Here is a link to the documentation for writing your own complex modifications.

If you want to do this for another application you can add a regex for the bundle ID of the app to the "bundle_identifiers" JSON entry. An easy way to get the bundle ID for an app is to use my Alfred workflow. Just open Alfred and type bundle <application_name> and it will give you autocomplete results from the applications you have installed. It copies the bundle ID for the application to your clipboard.

You can also use defaults to get the bundle ID: \

defaults read <path_to_the_application>/Contents/Info CFBundleIdentifier

P.S. If you want to make your own complex modifications I would actually suggest using Goku.

  • Is it also possible to apply this to all Windows producs like windows powerpoint, word and so on? – alper Jan 29 at 18:57
  • @alper yes, just get the bundle IDs of the apps using the Alfred workflow I linked to or the defaults command. Then add it (as a regex) to the "bundle_identifiers" json entry. so like: "bundle_identifiers": ["^com\\.microsoft\\.Outlook$", "^com\\.microsoft\\.someappname$"] – JBCookin Jan 30 at 1:25
  • @alper Now that I think about it, if you want to do this for all Microsoft apps, you could probably just change it to: "bundle_identifiers": ["^com\\.microsoft\\..*$"]. I just replaced 'Outlook' with '.*' which is regex for "any sequence of characters" in case you weren't sure. – JBCookin Jan 30 at 1:27
  • @alper based on your prompt I'm wondering it you wanted to map this command to something else for Microsoft Office so let me know if you want that. The code I would just disable "command-a" completely. It is possible to rebind it to basically whatever you want though. – JBCookin Jan 30 at 1:33
  • Yes! I want to rebind command-a to home button if possible – alper Jan 30 at 10:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .