The basic stuff: I want to be able to switch apps with Tab, copy and paste with C and V etc.


You can swap Ctrl and for most contexts with the following command:

gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swap_lwin_lctl']"

Alternatively, if you want to use a GUI to make the same change:

  • install dconf-tools from the software center
  • run the dconf-editor application
  • navigate to org > gnome > desktop > input sources
  • change the value of kbd-options to ['ctrl:swap_lwin_lctl']

That should take care of most shortcuts. The shortcut to switch windows can be changed from AltTab to something else on the standard keyboard shortcuts page in System Settings.

  • I can't seem to confirm that this works; I ran the command (and double-checked it in dconf-editor) and all <kbd>Ctrl</kbd> and <kbd>⌘</kbd> shortcuts are as they were. – Cassidy James Blaede Jan 9 '16 at 22:48
  • 1
    Cassidy, try logging out/rebooting. – Heath Paddock Jan 10 '16 at 0:58
  • 3
    One issue is sometimes you really want Ctrl to be Ctrl, like while in a terminal and not the apple key. – Ray Dec 29 '16 at 16:44
  • 1
    @Ray I concur, the ideal solution would be for Elementary OS to start using Super like Mac uses Cmd and then when you really need Ctrl it is still available on the keyboard. – Anriëtte Myburgh May 18 '17 at 8:23
  • Confirmed that this works for most things now; however, it gets confusing very quickly because the keyboard shortcuts in the OS still refer to the original mappings. – Cassidy James Blaede Dec 6 '19 at 7:04

How about remapping the keys? xmodmap should do the trick there.

Assuming that your command button is replaced with meta (I can't help you there, I don't own a Mac) this should work for you:

xmodmap -e "remove control = Control_L" xmodmap -e "remove mod4 = Super_L" xmodmap -e "add control = Super_L" xmodmap -e "add mod4 = Control_L"

This will work until you end your session.

Permanent solution

1) Make ~/.Xmodmap file.

2) Write this into it:

remove control = Control_L remove mod4 = Super_L add control = Super_L add mod4 = Control_L

3) You should now somehow put xmodmap ~/.Xmodmap to run at startup (I'm having trouble to find out how right now, will fix later).

  • I've tried all possible solutions i found online (putting in Switchboard > startup, putting it in ~/.xinitrc file, /etc/X11/xinit/xinitrc file, ...) but nothing happens. This could be a bug. You could put it in your .bashrc file but it will be ran only when you start the terminal. – Dušan Gvozdenović Aug 15 '15 at 6:07

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.