Can't swap Caps Lock and Esc keys using Seil
The problem is that you are setting up a recursive key binding.


Seil changes caps lock -&gt; esc
Karabiner changes esc -&gt; caps lock


So in the end when you hit caps lock or esc you will still get caps lock.

caps lock -&gt; esc -&gt; caps lock


When using Seil and Karbiner together you must follow the Input Even Modification Chain to determine the key press outcome (see Example 2 and Plural settings in Karabiner from the link).  You have to pay attention to the input event order.


Seil propagates to...
System Preferences > Keyboard > Modifier Keys... which propagates to...
Karabine


In other words, you CAN’T swap just two keys with the Seil &amp; Karabin method you are trying. It will always create a caps lock key press recursion issue.

Rather, you should try to remap both keys with Karbiner only to create a private XML mapping file. This is because Karabiner by itself does not allow you to create recursive event modifications.

I hope this makes logical sense and helps.