问题:
如何在 Linux 系统范围内重新映射(交换)修改键?
说明:
我想在我的 PC 上安装 Debian Jessie 以将其与 Emacs 一起使用。我有一台装有 Emacs 的 MacBook,主要使用它。以下是笔记本电脑上按键的排列方式:
fn ctrl alt cmd 空格键 cmd 替代
fn 在我的 Emacs 工作流程中未使用,其他键配置如下:
- ctrl 充当
Hyper
- alt 充当
Meta
- cmd 作为
Control
这些配置简化了我的 Emacs 体验(大拇指点击 Control
cmd 键)并且我习惯了这种键绑定(bind)。
默认 alt 用作 Meta
,而 ctrl 用作 Control
,交换键,大拇指放在 Meta
我想在 Linux 上以同样的方式配置我的键,这是我电脑键盘上的内容:
ctrl win alt 空格键 alt win 菜单 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
还有,这里是similar question有非常有用和简单的指南。
最佳答案
除使用 xmodmap
外,可能更容易检查由 setxkbmap
提供的键盘布局选项。这些选项实现了常见的 xmodmap
更改,因此它们很可能包含您想要的内容。
例如,我喜欢 -option ctrl:nocaps
,它在 caps lock
所在的位置添加了另一个 control
。考虑文件 /usr/share/X11/xkb/rules/base.lst
以获得标准选项列表。
但是,xmodmap
和 setxkbmap
都不包括纯文本 tty
终端(非 X)的键盘设置。
关于linux - 在 Linux 上重新映射 Win、Ctrl 和 Alt 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148927/