2020 年 2 月 3 日更新
Kinto 现在已经用 C 语言重写,用于使用 x11 的 Ubuntu/Debian 系统。它还使用 json 配置文件,使其更易于管理和扩展到其他应用程序,而不仅仅是终端。该应用程序不再映射到终端应用程序中的 Super,它现在将正确地映射到 Ctrl+Shift 以创建与使用 Cmd 键完全相同的感觉。
请查看最新版本。
https://github.com/rbreaves/kinto
允许 Super = Ctrl+Shift 更改的主要更改在此符号文件中。
default partial xkb_symbols "mac_levelssym" {
key <LWIN> {
repeat= no,
type= "ONE_LEVEL",
symbols[Group1]= [ Hyper_L ],
actions[group1]=[ SetMods(modifiers=Shift+Control) ]
};
key <RWIN> {
repeat= no,
type= "ONE_LEVEL",
symbols[Group1]= [ Hyper_R ],
actions[group1]=[ SetMods(modifiers=Shift+Control) ]
};
};
Pjz 的回答是正确的,说 xkb 解决方案是理想的,遗憾的是,很少有人走这条路,很可能是由于学习 xkb 的困难,而且似乎很多人已经走上了使用 Xmodmap 文件的路线,而 Xmodmap 文件正在被弃用,而我们正在前往 Wayland 的路上。
这个答案可能晚了几年,但这是任何方法。
Kinto 是我最近创建的一个工具,可以解决这个问题,它通过使用 xkb 并通过监听您当前使用的应用程序来解决这个问题,因为它还在使用终端时更改了键盘映射,因此类似 mac 的体验可以保持一致。
https://github.com/rbreaves/kinto
https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0
这里还有一个要点,如果您只是想看看这一切的核心,它不会在需要时更改您的键盘映射。 Gist 也不包括自定义 xkb 键盘映射文件,这些文件设置 macOS 样式光标/使用 Cmd 和箭头键的逐字操作。
https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb
编辑:同时发布要点的内容。我无法实际发布 Kinto 的内容。
# 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!
#