CMD&控制键在ubuntu中交换

时间:2011-08-17 21:16:53

标签: ubuntu xmodmap

我有一个带有cmd键的Apple键盘,我正试图用控制键交换。

从谷歌搜索问题并在论坛中搜索,我得到了几个解决方案。 不幸的是,他们都没有为我工作。 我尝试过使用标准的“键盘布局”,Xmodmap&无论我遇到什么。 我得到的最接近的是交换它们但禁用箭头键。

我正在使用ubuntu 11。

希望有人可以帮助我。先感谢您。

编辑:

这是我的xmodmap结果:

    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock        Caps_Lock (0x42)
    control     Control_L (0x25),  Control_R (0x69)
    mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
    mod2        Num_Lock (0x4d)
    mod3      
    mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
    mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

我希望控件是mod4,反之亦然。 谢谢..

6 个答案:

答案 0 :(得分:9)

编辑:刚刚意识到这篇文章来自六个月前。我怀疑这会有什么帮助,因为你可能(希望!)已经解决了这个问题,但无论如何。

以下是您需要做的事情:

将以下内容添加到~/.Xmodmap文件中:

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

要立即对此进行测试,请执行xmodmap ~/.Xmodmap

现在,要在每次启动时都发生这种情况,请将以下内容添加到(和/或创建新的)~/.xinitrc文件的末尾:

xmodmap /home/your_username/.Xmodmap

现在重启/注销/重启X,你应该膨胀!有任何问题,请评论。

答案 1 :(得分:1)

这是我有时用来交换控件和大写锁定键的内容。听起来你已经尝试过类似的东西了,但也许你可以把它变成可行的东西。

要使用此功能,您需要知道命令键的xmodmap名称。 xev命令(如果有的话)可能对解决这个问题很有帮助。

#!/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

答案 2 :(得分:1)

根据您的桌面,您可以找到更简单或更难的解决方案。

如果你有Gnome:

只需打开Tweak工具,转到:键入选项卡,然后选择:Ctrl在Alt / Win键行为中映射到Win键,你完成了,不完美但效果很好。

如果您有团结或其他风味,您需要使用Xmodmap,请使用以下命令编辑〜/ .Xmodmap:

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

然后将下一行添加到〜/ .profile文件并再次登录。

xmodmap .Xmodmap 

我写了这个如何做到这一点,也许可以帮助别人。 https://chrissmejia.com/howto/swaps-the-ctrl-and-cmd-keys-in-ubuntu/

答案 3 :(得分:0)

此永久更改键盘的解决方案优于其他解决方案,因为例如,如果更改语言或重置计算机,则必须续订Xmodmap命令以更新键盘

但是通过此解决方案Permanent xmodmap in Ubuntu 13.04您的键盘地图将永远改变。

答案 4 :(得分:0)

在Ubuntu 18中,我运行了gnome-tweaks,然后转到

  

键盘和鼠标-键盘-概述快捷键

3个按钮:

  

“左超级”,“右超级”和“其他布局选项”

我曾经将默认的“ Left Super”(在Mac上为“ cmd”)切换为“ Right Super”

这样做之后,我能够将VirtualBox的“ HostKey Combination”更改为“ Left WinKey”(尽管它是MacBook键盘)

  

VirtualBox Manager-文件-首选项-输入-虚拟机

然后将Ubuntu命令键切换回“ Left Super”,使Ubuntu能够响应Windows VM中的左命令键,而不是被捕获。

答案 5 :(得分:0)

我知道自问这个问题以来已经过去了一段时间,但是希望我的回答仍然可以帮助其他人,甚至是原始作者,只要他们仍然活跃并希望有更好的解决方案。

您可能会发现Kinto很有用。这是我最近创建的一个项目,经过几年以几种不同方式解决了这个问题,我现在觉得它足够扎实地分享。

Kinto安装程序仅使用python进行初始安装,之后仅是systemd服务,bash,xprop,setxkbmap和xkbcomp。就我而言,这是您将找到的最快,最原生的解决方案。

https://github.com/rbreaves/kinto

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

这里也是要点,如果您只想查看所有内容的核心,则它不会在需要时替换您的键盘映射。 Gist也不包括自定义的xkb键映射文件,这些文件设置了使用Cmd和箭头键设置macOS样式的光标/按词操作。

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

要点

# 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!
#
相关问题