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

问题是:

如何在Linux上重新映射(交换)系统范围内的修改键?

说明:

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

fn ctrl alt cmd spacebar cmd alt

fn在我的Emacs工作流程中未使用,其他键配置如下:

> ctrl充当Hyper
> alt充当Meta
> cmd充当控件

这些配置让我感觉很舒服Emacs体验(大拇指点击Control cmd键),我习惯了这种键绑定.

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

我想在Linux上以同样的方式配置我的密钥,这是我在PC键盘上的内容

ctrl win alt spacebar alt win menu ctrl

因此,为了对应我的笔记本电脑键,我希望将win键映射到Alt修饰符,并将alt键映射到Control修饰符.在这种情况下,ctrl可以用作超级修饰符,而菜单可以保持不变.

是否可以在Linux(Debian)上进行系统范围的配置?

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

!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

此外,这里是similar question与非常有用和简单的指南.

解决方法

xmodmap是开始的地方,请记住,X对Hyper或Meta一无所知,所以你必须调查看看哪些编号修饰符(mod4,mod5等),emacs用于这些修饰符.

以下是一些有用的链接

> XModMap
> How to separate alt and meta keys in emacs
> MetaKeyProblems
> Emacs does not use swapped alt&win after xmodmap runs? (GUI emacs)

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...