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

Ger*_*_RU 7 linux keyboard emacs configuration

问题:

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

说明:

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

fn ctrl alt cmd spacebar cmd alt

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

  • ctrl 充当 Hyper
  • alt 充当 Meta
  • cmd 充当 Control

这些配置使Emacs的体验Control cmd变得轻松(大拇指按键),我习惯了这种键绑定.

默认情况下alt用作Meta,虽然ctrl用作Control,键交换和大拇指放置Meta

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

ctrl win alt spacebar alt win menu ctrl

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

是否可以在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
Run Code Online (Sandbox Code Playgroud)

此外,这里有类似的问题,非常有用和简单的指南.

Han*_*nes 6

此外,可能比使用更容易xmodmap检查由setxkbmap. 这些选项实现了常见的xmodmap更改,因此它们很可能包含您想要的内容。

例如,我喜欢-option ctrl:nocapscontrolcaps lock原来的位置添加了另一个。考虑/usr/share/X11/xkb/rules/base.lst标准选项列表的文件。

但是,既不包括xmodmap也不setxkbmap包括纯文本tty终端(非 X)的键盘设置。


Tho*_*key 2

xmodmap是开始的地方,请记住 X 对Hyper或一无所知Meta,因此您必须研究 emacs 对这些修饰符使用哪些编号修饰符(mod4、mod5 等)。

以下是一些有用的链接: