xmodmap 和键盘快捷键:系统如何工作?(19.04,Xorg)

xmodmap 和键盘快捷键:系统如何工作?(19.04,Xorg)

关于更改键盘快捷键的信息很多(在 askubuntu 上也有)。但是,我不清楚哪些适用于 19.04/Xorg。我认为这个问题部分是由于之前使用 Wayland 而造成的,而且答案中提到的系统并不总是很清楚。我是 Linux 的长期“命令行”用户,但桌面系统对我来说有点新(而且令人困惑)。

问题 1a:哪些文件/程序控制键盘设置和快捷键(跨所有应用程序,而不是特定于应用程序)?

只有他們兩個嗎?

  • 修改映射
  • /usr/share/gnome-control-center/键绑定/

还有其他吗?

问题 1b:当我使用 GUI 更改键盘布局时,这是否会反映在上述文件中?或者是否有只能通过 GUI 访问的设置?(我认为没有,但只是检查一下。)

问题 3:xkeycaps 无法显示我的正确键盘布局,这有关系吗?(我使用的是标准的英国笔记本电脑,我发现的所有 xkeycaps 布局似乎都不能准确反映这一点。)

问题 4:应用程序特定的键盘快捷键。某些应用程序具有可更改/可设置的应用程序特定的键盘快捷键。

4a:这些总是会覆盖系统范围的键盘快捷键吗?

4b:如果应用程序没有可设置的特定于应用程序的键盘快捷键,是否有任何通用的方法与应用程序交互?(例如在 OS X 上,辅助功能服务可以访问任何菜单项。)

问题 5:xmodmap 中的修饰键与实际按键有何关系?例如,https://wiki.archlinux.org/index.php/Xmodmap

Each keysym column in the table corresponds to a particular combination of modifier keys:

Key
Shift+Key
Mode_switch+Key
Mode_switch+Shift+Key
ISO_Level3_Shift+Key
ISO_Level3_Shift+Shift+Key

但是:我的 xmodmap 中每个键最多有 10 个条目。那么它们对应的是什么?或者应该是:

Shift+Key
mod1+Key
mod1+Shift+Key
mod2+Key
mod2+Shift+Key

此外,如何

$ xmodmap -pm
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x94)
mod3      
mod4        Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  ISO_Level3_Shift (0x6c),  Mode_switch (0x85),  Mode_switch (0xcb)

那么与上面的对应吗?我将此列表读作“功能‘shift’由物理键 Shift_L 和 Shift_R 实现”等。我使用的笔记本电脑没有 num_lock,mod3 没有分配是不是很奇怪?还是上面的列表中只使用了 mod1/4/5?

例如,我在 xmodmap 中有这个

keycode  51 = backslash bar numbersign asciitilde dead_grave dead_breve

建议不应该有未使用的修饰符?

请注意,通过设置(xmodmap -pm 显示)我无法访问 xmodmap 中的字符(除前两列外)。

问题 6:“控制”键(不用于在 xmodmap 中的列之间移动)和“修饰键”键(用于在 xmodmap 中的列之间移动)之间有什么区别。

问题 7:Shift 是唯一可以与其他修饰键组合的键吗?或者是否可以为修饰键组合定义字符(除 shift 之外)

我把这些问题都问在了一个帖子里,因为我认为所有的答案都是相互关联的——希望这是有意义的!

非常感谢!

答案1

我在这里建立了一个 repo,将下面的一些答案转化为实际步骤。https://github.com/bjohas/Ubuntu-keyboard-map-like-OS-X

以下是部分答案:

问题 1a:xkb 和 gnome-settings。xmodmap 仍然有效,但似乎比 xkb 旧。xkb 比 xmodmap 更快,请参阅https://github.com/bjohas/Ubuntu-keyboard-map-like-OS-X。Gnome-settings 也在那里进行了简要的描述。

问题 1b:是的。

问题 3/4a/b:不确定。

问题 5/6:xmodmap 似乎已经过时了。上面的 repo 提供了一些帮助重新映射修饰键的示例脚本。不确定 xmodmap 列中的条目数,但最好看看 xkb!

问题7:不确定,但应该xkb相当灵活。

全面的,https://github.com/bjohas/Ubuntu-keyboard-map-like-OS-X给出了一些可以作为起点的食谱。

相关内容