I am on Ubuntu and using a Microsoft keyboard. I want to map my Win key to a Ctrl key. How can I do that?
2 Answers
xmodmap
lets you modify keymaps. Make a file to hold xmodmap commands (~/.xmodmaprc
is a common choice). The Win keys are called "Super" in xmodmap (Super_L and Super_R for the left and right ones). By default they're connected to mod4
, so you want to remove them from that modifier and add them to control
. Add this to the command file:
remove mod4 = Super_L Super_R
add control = Super_L Super_R
Tell xmodmap
to load it with:
$ xmodmap ~/.xmodmaprc
It will only last as long as your X session does, so you'll need to rerun it each time, or put it in something like ~/.xinitrc
so it will be run automatically

- 93,103
- 40
- 240
- 233
jinx:819 Z$ grep ctrl /usr/share/X11/xkb/rules/evdev.lst | grep win
altwin:ctrl_win Control is mapped to Win keys (and the usual Ctrl keys)
altwin:ctrl_alt_win Control is mapped to Alt keys, Alt is mapped to Win keys
Go into the keyboard settings, click "Options", expand "Alt/Win key behavior", and select "Control is mapped to Win keys".
(Command line version: setxkbmap -options altwin:ctrl_win
, then edit /etc/X11/xorg.conf
and add XkbOptions "altwin:ctrl_win"
to the keyboard InputDevice
section. (If there is already an XkbOptions
line, then add it to that line, separated by a comma: XkbOptions "grp:alt_shift_toggle,altwin:ctrl_win"
.)

- 32,047
-
Oh, that's somewhat simpler than my answer. Nice – Michael Mrozek Mar 11 '11 at 19:36
-
/usr/bin/setxkbmap von debian x11-xkb-utils-7.7+2 have the "-option" clause without the "s" as in "-options". – 把友情留在无盐 May 20 '15 at 00:01
-
1and debian since long years ago have unified console and x11 keyboard configurations in "/etc/default/keyboard". this file have x11 syntax, and is sourced by xserverrc, while translated for setupcon in an initscript. – 把友情留在无盐 May 20 '15 at 00:06