Disable default option key binding
Solution 1:
Save the following to ~/Library/KeyBindings/DefaultKeyBinding.dict
(create if necessary).
{ "~a" = (); "~b" = (); "~c" = (); "~d" = (); "~e" = (); "~f" = (); "~g" = (); "~h" = (); "~i" = (); "~j" = (); "~k" = (); "~l" = (); "~m" = (); "~n" = (); "~o" = (); "~p" = (); "~q" = (); "~r" = (); "~s" = (); "~t" = (); "~u" = (); "~v" = (); "~w" = (); "~x" = (); "~y" = (); "~z" = (); }
This disables all the ⌥<letter> combinations. Restart apps to take effect.
The DefaultKeyBinding.dict above is an old-style property list1, defining key-value pairs using the syntax { key = value }
. In this case, the keys are the key combinations to activate the method in the value.
Standard dictionary key symbols are used: ~ alt, ^ control, $ shift, @ command.
Therefore ~a
means ⌥A (alt-A) and ^$1
would be ⌃⇧1 (control-shift-1).
The value for each of the keys is set to ()
—empty parentheses without a method. As DefaultKeyBinding.dict overrides /S*/L*/Fr*/AppKit.*/R*/StandardKeyBinding.dict
, the shortcut is defined to be without method and therefore does nothing. It's preferable to create your own key bindings file like this rather than editing the system one.
1 Feel free to use a new XML property list style if you prefer—it works the same.
Solution 2:
The solution also might be to use different keyboard layout, e.g. U.S.
:
- problems with "alt" keys:
U.S. International
,ABC
- solution:
U.S.
Change it in System Preferences -> Keyboard -> Input Sources
.
I found the solution on Stack Overflow here so you might give the author a credit if it helped you also ;)