我有一个带有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,反之亦然。 谢谢..
答案 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!
#