Experimente setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps
Na página de manual:
[...] If you want to
replace all previously specified options, use the -option flag
with an empty argument first.
A ironia é que aqui -option ctrl:swapcaps
substitui -option ctrl:nocaps
- acho que o comportamento mudou.
Editar: Como o OP declarou, ele quer evitar limpar as opções (conforme feito da maneira acima).
/usr/share/X11/xkb/rules/xorg.lst
mostra a opção ctrl:aa_ctrl
(controle no canto inferior esquerdo), que parece redefinir o caps lock após nocaps
aqui.
Eu acho que vale a pena tentar, e você também pode olhar para a lista ( grep ctrl\:
) e ver se há algo mais que pode funcionar, caso isso não aconteça.
Se não houver uma opção para isso, acho que a solução é hackear o mapa de teclas atual, associando o Caps Lock com a tecla Caps Lock novamente (mas não tenho experiência com isso, além de acreditar que há uma ferramenta que permite você faz isso com um one-liner).