使Mac快捷方式(例如Cmd-C)在Linux上运行

时间:2009-01-12 00:08:55

标签: linux macos keyboard-shortcuts

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

如果我还可以使用emacs样式,例如 Ctrl + B 向左移动一个字符,那就太好了。

5 个答案:

答案 0 :(得分:7)

  

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

在所有开源项目的传统中,没有 a 方式,有几个。在最低级别,你有内核键绑定,这可能不是你想要的。在X服务器级别,你有xkb及其无数的实用程序。然后似乎每个窗口管理器 - gnome,kde,xfce或其他 - 也有一个键映射实用程序。 xkb似乎有很多工具包围绕它,并且可能比任何随机窗口管理器的键映射工具更完整,所以我先看看它。

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

如果你切换Cmd和Ctrl

,你几乎可以得到所有的方式

答案 3 :(得分:0)

Pjz的回答是正确的,说xkb解决方案是理想的,可悲的是很少有人采用该方法,这很可能是由于学习xkb的困难,而且似乎许多人已经放弃了使用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键映射文件,这些文件设置了使用Cmd和箭头键设置macOS样式的光标/按词操作。

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

编辑:同时发布要点的内容。我不能现实地张贴Kinto的内容。

library(tibble)
library(dplyr)
library(purrr)
library(stringr)
library(tidyr)

## functions ####
create_t_labels <- function(n) {
  paste0('t', str_pad(1:n, 2, 'left', '0'))
}
ns_by_group <- function(group_vars) {
  input %>%
    group_by_at(.vars = vars(group_vars)) %>%
    summarise(n = n()) %>%  # total number of people in each group
    ungroup() %>% 
    spread(key = target, value = n) %>%
    mutate(`0` = replace_na(`0`, 0),
           n = replace_na(`1`, 0),
           s = n + `0`,
           pred = round(n/s, 3)
    ) %>%
    select(-c(`1`, `0`)) 
}
### input data #### 
set.seed(1)
input <- tibble(
  target = sample(0:1, 50, replace = TRUE),
  t01 = sample(1:3, 50, replace = TRUE),
  t02 = rep(1:2, each = 25),
  t03 =   rep(1:5, each = 10),
  t04 = rep(1, 50),
  t05 = rep(1:2, each = 25)
)
## calculations ####
group_combo_list <- map(1:5, create_t_labels)
group_combo_list <- map(group_combo_list, function(x) c(x, 'target'))
ns_by_group_list <- map(group_combo_list, ns_by_group)

答案 4 :(得分:-1)

xmodmap -e“keycode 63 = Control_L”

这样Cmd将成为Control。不会交换任何其他键

编辑:我忘记了“-e”