我是一名 Mac 用户,我总是想知道为什么没有一个 Linux 发行版可以使用相同的键盘快捷键系统,特别是使用命令/超级键作为典型的全局快捷键,例如⌘+X表示“剪切”,⌘+C表示“复制”和⌘“+”V表示“粘贴”。
我很欣赏能够使用与其他地方相同的快捷方式在终端之间进行复制和粘贴的功能,但令我感到困惑的是,没有 Linux 发行版注意到这一点,因为通常 Linux 比 macOS 更注重终端。我本以为在 Linux 发行版中实现这一点是有意义的,但似乎每个 Linux 发行版都只是从 Windows 世界复制了它们的键盘快捷键,其中Ctrl用于标准键盘快捷键,因此Shift当您需要添加它时,也需要添加它。正在使用终端应用程序。这意味着当您在终端中时,您必须使用不同的键盘快捷键来进行剪切、复制、粘贴、新窗口/选项卡和退出等。
这可能是一个小问题,但奇怪的是,linux 中没有人有过这种挫败感,没有想到 Mac 的做法,只是实现了使用 command/super 键作为标准键盘快捷键来代替Ctrl.
我相当肯定这不是苹果公司的版权,这样的基本概念几乎肯定是不受版权保护的。
答案1
许多 *nix 终端开箱即用,只需选择要复制的文本,然后按鼠标中键插入即可复制和粘贴文本。无需额外按下按钮!如果这不是用户体验改进,我不知道什么才是。
一般来说,你可以交换使用内置工具(例如 )自行设置Control和按钮。这将使大多数 Apple 风格的快捷方式与 Mac 上的感觉相同。Commandxmodmap
也就是说,根据我作为苹果键盘用户的经验,我发现将Command按键功能设置为Alt,将Caps Lock和Return键功能设置为Ctrl按住时更方便。您可以通过hid-apple
结合xmodmap
和实用程序更改 Apple 键盘驱动程序中的默认设置来实现此目的xcape
。
答案2
事实上,正确实施非常困难,因为简单的密钥交换还不够,但已经很接近了。如果您注意 GUI 应用程序与终端应用程序的差异以及 DE 内的潜在冲突以及这如何影响某些热键驱动应用程序的热键,那么您实际上可以使用像 xkeysnail 这样的应用程序很好地解决它。
当然,有 autokey、xmodmap、xkbcomp、xbindkeys 等可以提供帮助,但如果您想相对轻松地解决潜在冲突,我还没有发现它们中的任何一个都那么容易使用。
我是 Kinto 的作者,我相信我已经解决了在 Linux 或 Windows 下让 mac 类似的按键绑定工作的最有问题的挑战。
安装后,如果您需要修改 Kinto 的配置文件,请查看此位置。
vi ~/.config/kinto/kinto.py
sudo systemctl restart xkeysnail
# typically xkeysnail does not install as a service - specific to Kinto only
视窗
~\.kinto\kinto.ahk
# Right click the tray icon and re-apply your keyboard type for changes to take affect
https://github.com/rbreaves/kinto
https://github.com/mooz/xkeysnail
另外,如果您的目标是在 Linux 上获得类似 mac 的体验,那么我建议您使用 Ubuntu Budgie 并启用内置的全局应用程序菜单扩展。我已经使用 Kinto 测试了这个发行版,以确保它按预期工作。 Budgie 的 Solus 维护者最近也接受了上游补丁,这样 Kinto 将不再需要修补 DE 来获得适当的 Cmd-Tab 窗口/应用程序切换支持。
答案3
Solaris 中的实际情况就是如此。现代 USB 键盘上的 Meta 键的现代等效项是 USB HID GUI 扫描码(Windows 键)。
例如,它与您提到的非常接近:
- 元 - C 是副本
- 元 - X 已被剪切
- Meta - V 是粘贴
参考:https://docs.oracle.com/cd/E19683-01/806-7612/startup-tbl-5/index.html
键盘左 GUI:窗口环境键,例如 Microsoft 左 Win 键、Mac 左 Apple 键、Sun 左 Meta 键。
扫码:https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf参见第 59 页左/右 GUI 脚注
GNOME 中仍然提供使用这些键的选项:https://superuser.com/a/1559585
答案4
这将使你的键盘在 Ubuntu Wayland 上像 Mac 一样工作。
用 AltGr 重新映射左 Ctrl
sudo vi /usr/share/X11/xkb/symbols/ctrl
更改部分
// Map Ctrl to the left Alt key, Alt to the left Win key,
// and Super to the left Ctrl key.
当它说“替换密钥”时
replace key <LCTL> { [ ISO_Level3_Shift ] };
开放调整
在“其他布局选项”->“Ctrl”上,标记“将 Ctrl 映射到左侧 Alt 键,将 Alt 映射到左侧 Win 键,将 Super 映射到左侧 Ctrl 键”。
在你的 shell 配置中,.zshrc
就我而言,重新映射到 intr 检查之前是否有分符号。将其添加到文件中:
stty intr 0xA2
在 gnome 终端上将复制和粘贴快捷方式重新映射为“Ctrl C”“Ctrl V”
并移动你的按键以使其有意义