Karabiner - ESC held down mapped to CONTROL_L
I think this is the correct definition to set in your private.xml:

&lt;?xml version="1.0"?&gt;
&lt;root&gt;
    &lt;item&gt;
      &lt;name&gt;Change HoldingEscape to Control_L&lt;/name&gt;
      &lt;appendix&gt;(+ When you type Escape only, send Escape)&lt;/appendix&gt;
      &lt;identifier&gt;private.holdingEscape_to_Control-L&lt;/identifier&gt;
      &lt;autogen&gt;__KeyOverlaidModifier__ KeyCode::ESCAPE, KeyCode::CONTROL_L, KeyCode::ESCAPE&lt;/autogen&gt;
    &lt;/item&gt;
&lt;/root&gt;