从 scancode、keycode 或 keysym 的重新映射角度解释“键盘布局选项”的内部机制

从 scancode、keycode 或 keysym 的重新映射角度解释“键盘布局选项”的内部机制

scancode我想请您从、keycode或 的重新映射方面解释一下“键盘布局选项”的内部机制keysym。我说的是 GUI“键盘布局选项”控制面板。我对 Ubuntu MATE 20.04 特别感兴趣。

在 Ubuntu MATE 20.04 上,“键盘布局选项”位于“控制中心”,如下所示。在“键盘布局选项”中,我特别感兴趣的是“Ctrl 映射到 Win 和常用的 Ctrl 键”和“将左 Win 与左 Ctrl 交换”。

Control Center > Hardware >

  Keyboard > Layout tab > Options... >

    Keyboard Layout Options

        Alt/Win key behavior

          (o)  Ctrl is mapped to Win and the usual Ctrl keys

        Ctrl position

          [v]  Swap Left Win with Left Ctrl

在 Linux 上,有三个级别来识别按键——扫描码、键码和键符。扫描码是最低级别,是键盘发送给计算机的。键码是中等级别。键符是最高级别。

扫描码与键盘上的位置的关联性比与按键上印刷的字母的关联性更密切。例如,在美式键盘上印刷 Y 的按键在欧式键盘上印刷 Z。但是,无论按键在美式键盘上印刷 Y 还是在欧式键盘上印刷 Z,扫描码始终相同。

在 Linux 上,通常存在两层映射:从扫描码到键码的映射,以及从键码到键符的映射。因此,在 Linux 上,键的重新映射通常意味着修改扫描码到键码的映射或修改键码到键符的映射。

然而,在 MS Windows 上,情况与 Linux 不同。如果我没记错的话,Windows 没有 keysym。不过,扫描码在 Windows 上也是最低级别的。在 Windows 上,重新映射键并不意味着修改扫描码到键码的映射,而是意味着创建从扫描码到扫描码的额外映射。

我想知道 Ubuntu MATE 20.04 上的“键盘布局选项”是否实现为:

  • 修改扫描码到键码的映射

  • 修改键码到键符的映射

  • 创建从扫描码到扫描码的额外映射

  • 或其他任何内容(解释)

如上所述,我对“Ctrl 映射到 Win 和常用的 Ctrl 键”以及“将左 Win 与左 Ctrl 交换”特别感兴趣。

相关内容