12

有没有办法在linux中将Cmd+C映射到复制?(而不是Ctrl+C

Ctrl如果我也可以拥有 emacs 样式的样式,例如+B向左移动一个字符,那就太好了。

4

5 回答 5

7

在 Linux/X 上,有没有办法将某些键组合映射到其他键组合?

在所有开源项目的传统中,没有办法,几个. 在最低级别,您拥有内核键绑定,这可能不是您想要的。在 X 服务器级别,您拥有 xkb 及其无数实用程序。然后似乎每个窗口管理器——gnome、kde、xfce 或其他——也有一个键映射实用程序。xkb 似乎有很多实用程序等,并且可能比任何随机窗口管理器的键盘映射实用程序更完整,所以我先看看。

于 2009-04-16T13:18:16.287 回答
5

KDE 3 可能是这里最灵活的;有一个名为“Mac Scheme”的预定义键盘快捷键方案。您可以通过 KControl 设置它,Control Center > Regional & Accessibility > Keyboard Shortcuts或者kcmshell keys它会立即对几乎所有 KDE 应用程序产生影响。您可能会错过一些 OS X 具有的类似 Emacs 的“Ctrl-*”快捷方式,但除此之外,它运行良好(只要您的 X 修饰符映射正确)。如果它不符合您的喜好,它很容易定制。

您还可以设置Control Center > Desktop > Behavior启用类似 Mac OS 的菜单栏;所有 KDE 应用程序将在屏幕顶部共享一个菜单栏,而不是单独附加到每个窗口。

于 2009-01-31T06:04:41.670 回答
4

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 文件的路线,而我们正在使用这些文件已被弃用我们去韦兰的路。

这个答案可能为时已晚几年,但这是任何方法。

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!
#
于 2019-08-06T20:02:10.573 回答
0

如果您切换 Cmd 和 Ctrl,您几乎可以到达那里

于 2009-01-12T01:10:24.577 回答
-1

xmodmap -e "keycode 63 = Control_L"

这样 Cmd 将成为控制。不会交换其他密钥

编辑:我忘记了“-e”

于 2009-04-16T13:27:21.477 回答