在Linux上重新映射Win,Ctrl和Alt键

问题是:

如何在Linux系统上重新映射(交换)修饰键?

说明:

我想在我的电脑上安装Debian Jessie,并将其与Emacs一起使用。 我有一个Emacs的MacBook,并主要使用它。 以下是笔记本上的按键排列方式:

fn ctrl alt cmd spacebar cmd alt

fn在我的Emacs工作stream程中没有使用,其他键configuration如下:

  • ctrl作为Hyper
  • alt作为Meta
  • cmd作为Control

这些configuration为我Emacs体验(大拇指命中Control cmd键),我习惯了这种键绑定。

默认情况下alt被用作Meta ,而ctrl被用作Control ,按键被交换,大拇指放在Meta

我想以同样的方式在Linux上configuration我的密钥,这是我的电脑键盘上的:

ctrl 赢得 alt 空格键 alt win 菜单 ctrl

所以,为了与我的笔记本电脑键相对应,我需要将胜利键映射到Alt修饰符,并将Alt键映射到Control修饰符。 在这种情况下, ctrl可以用作Super修改器,而菜单可以保持不变。

是否可以在Linux(Debian)系统上进行这样的configuration?


最后,我设法通过以下configuration实现我的目标:

 !file ~/.Xmodmap clear control clear mod1 clear mod4 keycode 37 = Super_L ! left Ctrl becomes Super keycode 64 = Control_L ! left Alt becomes Control keycode 133 = Alt_L Meta_L ! left Win becomes Alt keycode 108 = Control_R ! right Alt becomes Control keycode 134 = Alt_R Meta_R ! right Win becomes Alt keycode 105 = Super_R ! right Ctrl becomes Super add control = Control_L Control_R add mod1 = Alt_L Meta_L add mod4 = Super_L Super_R 

此外,这里是相当有帮助和简单的指南类似的问题 。

xmodmap是开始的地方,牢记X对HyperMeta一无所知,所以你必须研究emacs对这些修饰符使用哪个编号的修饰符(mod4,mod5等)。

以下是一些有用的链接:

  • xmodmap的
  • 如何在emacs中分隔alt和meta key
  • MetaKeyProblems
  • 在xmodmap运行后,Emacs不使用交换的alt&win? (GUI emacs)

另外和可能比使用xmodmap更容易检查由setxkbmap给出的键盘布局选项。 这些选项实现了常见的xmodmap更改,所以它们可能包含你想要的。

例如,我喜欢 – 选择-option ctrl:nocaps ,这为我添加了caps lock另一个control 。 请考虑文件/usr/share/X11/xkb/rules/base.lst以获取标准选项的列表。

但是, xmodmapsetxkbmap包含纯文本tty终端(非X)的键盘设置。