Remapping keyboard shortcuts (copy, paste etc) to Alt key instead of Ctrl

5,761

Solution 1

You can use XKeyCaps.

This is my .Xmodmap file, I've got an Apple keyboard.

! Swap Alt and Cmd keys.
keycode 37 =    Control_L
keycode 133 =   Alt_L Meta_L
keycode 64 =    Super_L
keycode 108 =   Super_R
keycode 134 =   ISO_Level3_Shift Multi_key
keycode 105 =   Control_R       Multi_key
clear Shift
clear Lock
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add    Shift   = Shift_L Shift_R
add    Lock    = Caps_Lock
add    Control = Control_L Control_R
add    Mod1    = Alt_L 0x007D
add    Mod2    = Num_Lock
add    Mod4    = Super_L Super_R
add    Mod5    = Mode_switch ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift

! Configure '=' key on numpad as '='.
keycode 0x7D =  equal

Solution 2

You should be able to use xdotool and additionalKeys from the XMonad.Util.EZConfig module for this. Just install xdotool and then in your ~/.xmonad/xmonad.hs config file you can configure additionalKeys like this:

import XMonad.Util.EZConfig

...

main = xmonad $ defaultConfig { ... }
                 `additionalKeys`
                 [ ((mod1Mask, xK_c), spawn "xdotool key alt+c")
                 , ((mod1Mask, xK_v), spawn "xdotool key alt+v")
                 , ((mod1Mask, xK_x), spawn "xdotool key alt+x")
                 ]
Share:
5,761

Related videos on Youtube

Eren Tantekin
Author by

Eren Tantekin

Updated on September 18, 2022

Comments

  • Eren Tantekin
    Eren Tantekin over 1 year

    Interestingly, it turns out this is almost impossible to do. Remapping Alt key to behave as another Ctrl key is not a solution because you lose the Alt key functionalities (some of which are essential, like Alt+Tab).

    So how can I get a behavior similar to MacOS where cmd key is used for keyboard shortcuts (but also for switching between windows with cmd+Tab)?

    I know I can assign Ctrl+Tab to switch between windows after I remap Alt key as a Ctrl key. But then I lose the real Ctrl+Tab functionality in some applications, which are also critical like switching tabs in Chrome. Basically my Ctrl and Alt keys would become the same key and it will be impossible to have two different set of shortcuts for these two modifier keys.

    A good solution for me would probably be a way to catch Alt+C, Alt+V, Alt+X, etc. at the window management level and send instead a Ctrl+C or Ctrl+V or Ctrl+X etc. to the focused window. On Windows this was possible via AutoHotKey. On Linux, I heard about an application called AutoKey but unlike AutoHotKey you have to use a GUI to set the shortcuts. Since I will be writing almost all combinations of Alt manually, I don't want a GUI application do to this. I should be able to configure it by writing a text file.

    Is it possible to achieve this either with Gnome or Xmonad?

    • Jason Southwell
      Jason Southwell over 12 years
      Can you modify this a bit so it reads more like a question? As it stands, it has the feel of a rant.
    • Eren Tantekin
      Eren Tantekin over 12 years
      You're right. I modified it now.
    • Jason Southwell
      Jason Southwell over 12 years
      there we go ;)!
    • Pramod H G
      Pramod H G over 11 years
      has anybody managed to remap copy/paste to alt instead of ctrl on ubuntu (12)?
  • Eren Tantekin
    Eren Tantekin about 12 years
    I had already tried that, but for some reason xdotool doesn't work when it is called from xmonad.