To make this work you have to use a third party tool: Karabiner.
In the example below hitting the left alt key once generates one back command in Safari (only). An additional mouse click is not needed.
You can use the left option/alt key as usual otherwise.
- Download, install and open Karabiner
- Open in the menulet Karabiner -> Preferences
- Open the tab Misc & Uninstall
- Hit the button Open private.xml
- Open the file private.xml with an appropriate editor
Enter the customized keycode
<?xml version="1.0"?>
<root>
<item>
<name>Option_L to Option_L</name>
<appendix>(+ When you type Option_L only without other modifiers, send Command+[ in Safari)</appendix>
<identifier>remap.altL2altL_backward_nomod</identifier>
<only>SAFARI</only>
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::BRACKET_LEFT, ModifierFlag::COMMAND_R</autogen>
</item>
</root>
Save the file
- Open in the menulet Karabiner -> Preferences the tab Change Key
- Hit the ReloadXML button
- Enable the remapping. It should be listed at the beginning.
If you want to use the right option/alt key instead of the left one just replace OPTION_L by OPTION_R and altL by altR everywhere in the private.xml file.
The above keycode customization is only valid for the en_US input source (and probably en_GB, en_CA etc).
If you use e.g the portuguese input source (pt_PT) then you have to choose the proper KeyCodes: to get the [ you have to press alt7. Then the line:
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::BRACKET_LEFT, ModifierFlag::COMMAND_R
has to be changed to:
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::KEY_7, ModifierFlag::OPTION_R | ModifierFlag::COMMAND_R
If you want to add a second custom keycode (hitting left cmd key once generates one forward command) use:
<?xml version="1.0"?>
<root>
<item>
<name>Option_L to Option_L</name>
<appendix>(+ When you type Option_L only without other modifiers, send Command+[ in Safari)</appendix>
<identifier>remap.altL2altL_backward_nomod</identifier>
<only>SAFARI</only>
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::BRACKET_LEFT, ModifierFlag::COMMAND_R</autogen>
</item>
<item>
<name>Command_L to Command_L</name>
<appendix>(+ When you type Command_L only without other modifiers, send Command+] in Safari)</appendix>
<identifier>remap.cmdL2cmdR_forward_nomod</identifier>
<only>SAFARI</only>
<autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, KeyCode::VK_LAZY_COMMAND_L, KeyCode::BRACKET_RIGHT, ModifierFlag::COMMAND_R</autogen>
</item>
</root>
The special KeyCode VK_LAZY_COMMAND_L instead of COMMAND_L doesn't break the function of cmd_left+Some_key: so you can navigate forward in Safari and print the page with cmd_leftP without going forward once more!