10

Or any other tool, but I prefer xmodmap. I tried this:

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

I also tried this:

xmodmap -e "keycode 66 = Control_L"

But neither seem to fully work. Here's the event log for pressing caps lock:

KeyPress event, serial 28, synthetic NO, window 0x1a00001,
root 0x12d, subw 0x0, time 914826, (679,342), root:(680,362),
state 0x12, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37 // 37 is the control key code
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

I'm running Ubuntu 10.10 with awesome window manager.

Maruti
  • 143
  • 1
  • 2
  • 5
  • I'd try to directly map keycodes to intended behavior. For example, I like to bind my caps lock key as additional shift and hide the normal caps lock behavior behind shift (so to enable/disable caps lock on my keyboard shift+caps lock is required): `xmodmap -e "keycode 66 = Shift_L Caps_Lock"`. – Mikko Rantalainen Jun 04 '21 at 07:51
  • Regarding "other tools" see also [linux - Remap keys without xmodmap or any X tools - Super User](https://superuser.com/questions/729585/remap-keys-without-xmodmap-or-any-x-tools). I think it's more reliable because it works with some "lower-level" applications while using X does not work with e.g. anydesk – user202729 May 15 '22 at 06:23

3 Answers3

15

This may work for you.

/usr/bin/setxkbmap -option "ctrl:swapcaps"
Evan Carroll
  • 8,863
  • 17
  • 76
  • 129
9

From Remap Caps Lock :

man xmodmap shows how to swap the left control key and the CapsLock key:

!
! Swap Caps_Lock and Control_L
!
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
harrymc
  • 455,459
  • 31
  • 526
  • 924
1

Swap:

setxkbmap -option "ctrl:swapcaps"

Reverse the swap:

setxkbmap -option

Reference: please click here

SLN
  • 121
  • 6