Обменять местами ctrl и caps lock

Хочу поменять местами caps и l_ctrl.
Пробую так:
xmodmap ~/.xmodmap

remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

Проблема в том что переключение раскладок у меня на caps

      <merge key="input.x11_options.XkbLayout" type="string">us,ru</merge>
      <merge key="input.x11_options.XkbVariant" type="string">,winkeys</merge>
      <merge key="input.x11_options.XkbOptions" type="strlist">grp:caps_toggle</merge>
      <append key="input.x11_options.XkbOptions" type="strlist">grp_led:caps</append>

хал отказывается работать с такой схемой, я так понимаю тут нужно менять кейкоды до того как загрузится хал. Как это сделать?