I'm new to Raspberry Pi, but not to linux - though I've never been clear on details like keyboard mapping. And I'm the type who has become addicted to swapping the capslock and control key.

I normally connect to my Raspberry Pi via VNC to a virtual display. I tried putting XKBOPTIONS="ctrl:swapcaps" in /etc/default/keyboard, but it doesn't seem to work (even after reboot). When I enter setxkbmap -option "ctrl:swapcaps" in a terminal, I get an error like

    Couldn't interpret _XKB_RULES_NAMES property
    Use defaults: rules - 'base' model - 'pc105' layout - 'us'
    Error loading the new keyboard description

I'm not sure what else to try and my internet searches have turned up nothing - at least, nothing I understand. I don't get how keyboard mapping is dependent on the display, for example, but I suspect maybe it has to do with the VNC virtual display?

Any thoughts appreciated - thanks!

1 Answer 1


Try and focus on the client workstation side along with the remote VNC system.

On my remote Pis and local Linux workstations I set XKBOPTIONS=ctrl:nocaps in the /etc/defaults/keyboard to replace the capslock with a control key instead of swapping it.

This works in a terminal using the setxkbmap -option "ctrl:nocaps"

On Windows workstations I install Microsoft PowerToys and do the same capslock to control change adjustment.

After that it doesn't matter where I am in the ecosystem that silly capslock behavior removed from the equation.

  • Thanks I'll try this! Ideally I'd still be able to use capslock somewhere though (I do use it sometimes!). Apr 13, 2021 at 16:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.