11

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

4

6 回答 6

12

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

这是您需要做的:

将以下内容添加到您的~/.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,你应该会膨胀!有什么问题,请评论。

于 2012-06-27T03:37:29.697 回答
2

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

如果你有 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/

于 2016-01-09T23:37:14.160 回答
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
于 2011-08-17T22:11:55.080 回答
1

在 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 中的左命令键,而不是被捕获。

于 2019-07-18T13:16:15.727 回答
0

这种永久更改键盘的解决方案比其他解决方案更好,因为例如,如果您更改语言或重置计算机,则必须更新 Xmodmap 命令以更新键盘

但是通过这个解决方案Ubuntu 13.04 中的永久 xmodmap ,您的键盘映射将永远改变。

于 2015-01-14T20:10:29.600 回答
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!
#
于 2019-08-07T06:17:50.523 回答