我知道自从提出这个问题以来已经过去了一段时间,但希望我的回答仍然可以帮助其他人,甚至是原作者,如果他们仍然活跃并且想要更好的解决方案。
您可能会发现 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!
#