将右 Alt 映射到左控件

将右 Alt 映射到左控件

我希望在完成我的right alt主要工作的left control同时,仍将left control工作作为左控制。所以我像这样编辑了我的 evdev 文件:

<LALT> = 64;
<LCTL> = 37; // original binding 37
<SPCE> = 65;
<RCTL> = 105;
<RALT> = 37; // original binding: 108

然而这不起作用,现在两个键都不起作用ctrl。我怎样才能做到这一点?

答案1

您更改的键码文件是一个 XKB 映射,它<FOO>通过按下某个键时内核键盘驱动程序发出的键码来定义 XKB 布局 ( ) 中使用的符号代码。更改那里的代码不会更改该键生成的代码,它会更改 XKB 布局在看到更改后的符号时认为其处理的代码。

假设您可以将系统 XKB 文件恢复到其原始状态,那么 XKB 执行您想要的操作的方法是加载一个将覆盖标准布局的选项。有一个现有选项 ( ctrl:ralt_rctrl) 接近您想要的:

  # definition in /usr/share/X11/xkb/rules/evdev
  ctrl:rctrl_ralt       =       +ctrl(rctrl_ralt)
  # similar rule for swapped option?
  ctrl:ralt_rctrl       =       +ctrl(ralt_rctrl)

您可以使用以下命令加载它setxkbmap

$ setxkbmap -option ctrl:ralt_rctrl

如果这符合您的要求,您可以通过将该命令添加到.xprofile.xinitrc您的窗口管理器autorun脚本中来使其永久化。在 GNOME 中,您可能需要其他步骤。

如果您仍然希望Alt_R重新映射为 asCtrl_L而不是Ctrl_R,则需要创建一个本地覆盖子句。使用现有选项作为起点;在里面/usr/share/X11/xkb/symbols/ctrl。看我的超级用户对 XKB 修改的回答和一些额外的资源:

答案2

该文件/usr/share/X11/xkb/keycodes/evdev不是“evdev 文件”,它是 X 键盘转换表 (xkb) 的众多源文件之一。不,登录时不会加载。相反,它充当编译器的源文件xkbcomp,并且编译文件的输出在 X 服务器启动时加载。整个主题有点复杂,所以不要随意进行更改并期望事情能够正常工作。另外,制作自己的键盘映射的常用方法是编写新的文件,并将旧文件保留在原处。参见示例不可靠的 XKB 配置指南进行介绍。

如果您想让右侧 alt 键用作控制键,更好的方法是保留这些文件原样,~/.Xmodmap使用以下两行创建一个文件

remove mod4 = Alt_R
add control = Alt_R

xmodmap -pk通过查看旧状态来测试它是否有效,然后使用 加载它xmodmap ~/.Xmodmap,然后再次执行xmodmap -pk并确保它看起来正确。

这样做的结果是,该right alt键仍然显示在其自己的键码下,但被视为修饰符,control因此您可以将其与其他键结合使用。

某些显示管理器~/.Xmodmap在登录时默认加载,某些新的显示管理器已丢失此功能,您必须对其进行配置才能执行此操作。

相关内容