O problema aqui é que você está essencialmente removendo as chaves do Windows da lista de modificadores com clear mod4 . Para ter o Caps Lock disponível como um modificador adicional, como substituto das teclas do Windows , você teria que configurá-lo para um modificador diferente. Você pode usar modificadores Mod1 a Mod5 além de Control , Shift e Mode_switch com i3 .
Primeiro, verifique se algum modificador não é usado no layout que você está usando (sem aplicar o .Xmodmap ). Você pode obter uma lista das configurações do modificador com xmodmap -pm . Para o layout us , isso retorna (na minha máquina):
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Como você pode ver, mod3 não está sendo usado no momento. Para usá-lo, basta colocar o seguinte no seu .Xmodmap :
clear lock keycode 66 = Hyper_R add mod3 = Hyper_R
Observação: Nesse caso, usei Hyper_R porque Hyper_L já estava vinculado a mod4 . E 66 é o código chave do Caps Lock . Isso pode ser diferente em sua máquina.
Agora você pode usar esse modificador com suas atalhos i3 . Se você quiser continuar usando a variável $mod com sua configuração, basta configurá-la como Mod3 ou Mod4 dependendo se você quiser usar o Caps Lock ou as teclas do Windows para isso. Mas não há necessidade real de realmente usá-lo (é principalmente conveniente facilitar a configuração inicial ao escolher entre Alt ( Mod1 ) e teclas do Windows ( Mod4 ).
Usar o novo Modificador é tão simples quanto:
bindsym Mod3+s exec something
binysym Mod3+Mod4+s exec something_else