CMD & control keys swap in ubuntu

后端 未结 6 1694
生来不讨喜
生来不讨喜 2021-02-02 02:09

I have an Apple keyboard with a cmd key which I\'m trying to swap with the control key.

From googleing the problem and searching across the forum I came with a several s

相关标签:
6条回答
  • 2021-02-02 02:16

    EDIT: Just realized that this post was from six months ago. I doubt this will be any help, as you've probably (hopefully!) already gotten this solved, but, whatever.

    Here's what you need to do:

    Add the following to your ~/.Xmodmap file:

    clear control
    clear mod4
    
    keycode 105 =
    keycode 206 =
    
    keycode 133 = Control_L NoSymbol Control_L
    keycode 134 = Control_R NoSymbol Control_R
    keycode 37 = Super_L NoSymbol Super_L
    
    add control = Control_L
    add control = Control_R
    add mod4 = Super_L
    

    To test this right now, just do xmodmap ~/.Xmodmap

    Now, to have this happen every time at startup, add to the end of your (and/or create a new) ~/.xinitrc file the following:

    xmodmap /home/your_username/.Xmodmap

    Now restart / logout / restart X and you should be swell! Any trouble, please comment.

    0 讨论(0)
  • 2021-02-02 02:16

    This solution for change the keyboard permanently is better than other solution because for example if you change the language or reset your computer you must renew the Xmodmap command for update keyboard

    but by this solution " Permanent xmodmap in Ubuntu 13.04 " your keyboard's map will change for ever.

    0 讨论(0)
  • 2021-02-02 02:18

    In Ubuntu 18 I ran gnome-tweaks then went to

    Keyboard and Mouse - Keyboard - Overview Shortcut

    3 buttons:

    "Left Super", "Right Super" and "Additional Layout options"

    Which I used to switch the default "Left Super" ('cmd' on a Mac) to "Right Super"

    After doing that I was able to change VirtualBox's 'HostKey Combination' to 'Left WinKey' (although it's a MacBook keyboard)

    VirtualBox Manager - File - Preferences - Input - Virtual Machine

    Then switched the Ubuntu command key back to "Left Super", enabling Ubuntu to respond to the left command key in the Windows VM, rather than it being captured.

    0 讨论(0)
  • 2021-02-02 02:19

    Here's what I sometimes use to swap the control and caps-lock keys. It sounds like you've already tried similar things, but maybe you can hack this into something that will work.

    To use this, you'd need to know xmodmap's name for the command key. The xev command, if you have it, might be useful for figuring this out.

    #!/bin/sh
    
    xmodmap - <<EOF
    remove Lock = Caps_Lock
    remove Control = Control_L
    keysym Control_L = Caps_Lock
    keysym Caps_Lock = Control_L
    add Lock = Control_L
    add Control = Control_L
    EOF
    
    0 讨论(0)
  • 2021-02-02 02:28

    I know some time has elapsed since this question was asked, but hopefully my answer can still help others or even the original author if they are still active and would like a better solution.

    You may find Kinto to be useful. It's a project I recently created, after a few years of tackling this problem a few different ways and I just now feel like it's solid enough to share.

    The Kinto installer simply uses python to do the initial install, after that it's just a systemd service, bash, xprop, setxkbmap and xkbcomp. As far as I am concerned it is the fastest and most native solution to this problem that you are going to find.

    https://github.com/rbreaves/kinto

    https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

    Here's a Gist as well, if you just want to see what is at the heart of it all, it will not alternate your keymap when needed though. The Gist also does not include custom xkb keymap files that setup macOS style cursors/word-wise manipulations that use Cmd and the arrow keys.

    https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

    gist content

    # permanent apple keyboard keyswap
    echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
    update-initramfs -u -k all
    
    # Temporary & instant apple keyboard keyswap
    echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd
    
    # Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
    setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win
    
    # Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
    setxkbmap -option;setxkbmap -option altwin:swap_alt_win
    
    #
    # If you want a systemd service and bash script to help toggle between
    # GUI and Terminal applications then look at project Kinto.
    # https://github.com/rbreaves/kinto
    #
    # Note: The above may not work for Chromebooks running Linux, please look
    # at project Kinto for that.
    #
    # If anyone would like to contribute to the project then please do!
    #
    
    0 讨论(0)
  • 2021-02-02 02:42

    Depending of your desktop you can find easier or harder solutions for this.

    If you have Gnome:

    Just open Tweak tool, go to: Typing tab, and choose: Ctrl is mapped to Win keys in Alt/Win key behavior and you are done, is not perfect but works well.

    If you have unity or other flavor you need to use Xmodmap, edit your ~/.Xmodmap with this:

    remove control = Control_L
    remove mod4 = Super_L Super_R
    
    keysym Control_L = Super_L
    keysym Super_L = Control_L
    keysym Super_R = Control_L
    
    add control = Control_L Control_R
    add mod4 = Super_L Super_R
    

    then add this next line to ~/.profile file and log in again.

    xmodmap .Xmodmap 
    

    I wrote this How To about this, maybe can help someone. https://chrissmejia.com/howto/swaps-the-ctrl-and-cmd-keys-in-ubuntu/

    0 讨论(0)
提交回复
热议问题