我已经习惯了 Apple 键盘的舒适布局,我喜欢使用命令键来执行最常用的组合快捷键(command-C 表示复制,command-V 表示粘贴等),用左手拇指就可以很轻松地访问。当我切换到其他计算机(特别是运行 Linux 的计算机)时,我发现使用控制键而不是命令键来执行相同的组合非常不舒服,因为这需要使用小指。我只是想知道还有其他 Linux 转换解决方案,而不是通过桌面环境配置工具分配不同的键功能。
答案1
我建议您尝试两件事:
- 在你的 Linux 机器上使用 Apple 键盘。
- 配置您的键盘,以便 Ctrl 映射到 Command 并且反之亦然。
要完成 #2,您需要更改键盘映射。这里有一篇文章描述了这个过程:https://askubuntu.com/questions/131900/how-do-i-switch-the-command-key-and-control-key-on-a-macbook-pro
虽然本文针对的是 Ubuntu 用户,但其中描述的工具在所有 Linux 发行版中都是相同的。这只需要在连接物理键盘的计算机上完成即可。
答案2
您使用的是哪个 Linux 发行版?或者哪个操作系统?我知道 ubuntu 可以处理很多键盘语言偏好设置。您可以尝试使用 Apple 键盘并将您的偏好设置为 qwerty English Mac OS X。
将 ctrl 切换到 cmd 按钮可能是一种替代方法,但我发现它很脏。
答案3
更新 02/03/2020
Kinto 现已使用 x11 以 C 语言为 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) ]
};
};
您可能会发现 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,如果您只是想看看它的核心是什么,它不会在需要时更改您的键盘映射。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!
#