使用新的(2019)微软人体工学键盘 - 如何将表情符号和办公键映射为可用的东西?

Mek*_*ekk 12 linux xorg keyboard xkb keyboard-layout

我购买了 \xe2\x80\x9eMicrosoft Ergonomic\xe2\x80\x9d 键盘来替换我用过的 Microsoft Natural。他们将 \xe2\x80\x9eWin\xe2\x80\x9d 键移至左侧,并将新的 \xe2\x80\x9eOffice\xe2\x80\x9d 和 \xe2\x80\x9eEmoji\xe2\x80\x9d 键放在右侧相反:\nAlt、Office、Emoji - 新按键

\n

默认情况下,xorg 似乎无法识别这些键(至少在我使用的 Ubuntu 20.04 上)。

\n

我正在寻找如何映射这些键的提示。我在自定义键盘快捷键中大量使用 Win-\xe2\x80\xa6 组合,因此我反复按这些键)。我更愿意让 Office 键的行为与 Win 的习惯相同(如果我记得的话,超级),并将表情符号映射为一些新的修饰符。

\n

我试过evtest; 它会发出一些组合键。下面的两个报告均来自一次按键。

\n

(办公室)

\n
Event: time 1604935916.773242, -------------- SYN_REPORT ------------\nEvent: time 1604935919.037417, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0\nEvent: time 1604935919.037417, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1\nEvent: time 1604935919.037417, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1\nEvent: time 1604935919.037417, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1\nEvent: time 1604935919.037417, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2\nEvent: time 1604935919.037417, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1\nEvent: time 1604935919.037417, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3\nEvent: time 1604935919.037417, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1\n
Run Code Online (Sandbox Code Playgroud)\n

(表情符号)

\n
Event: time 1604935938.159725, -------------- SYN_REPORT ------------\nEvent: time 1604935942.720256, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0\nEvent: time 1604935942.720256, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1\nEvent: time 1604935942.720256, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1\nEvent: time 1604935942.720256, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1\nEvent: time 1604935942.720256, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2\nEvent: time 1604935942.720256, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1\nEvent: time 1604935942.720256, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3\nEvent: time 1604935942.720256, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1\nEvent: time 1604935942.720256, -------------- SYN_REPORT ------------\nEvent: time 1604935942.728233, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002c\nEvent: time 1604935942.728233, type 1 (EV_KEY), code 57 (KEY_SPACE), value 1\nEvent: time 1604935942.728233, -------------- SYN_REPORT ------------\n^X@s^[^@Event: time 1604935942.872415, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002c\nEvent: time 1604935942.872415, type 1 (EV_KEY), code 57 (KEY_SPACE), value 0\nEvent: time 1604935942.872415, -------------- SYN_REPORT ------------\nEvent: time 1604935942.880280, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0\nEvent: time 1604935942.880280, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0\nEvent: time 1604935942.880280, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1\nEvent: time 1604935942.880280, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0\nEvent: time 1604935942.880280, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2\nEvent: time 1604935942.880280, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0\nEvent: time 1604935942.880280, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3\nEvent: time 1604935942.880280, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0\nEvent: time 1604935942.880280, -------------- SYN_REPORT ------------\n
Run Code Online (Sandbox Code Playgroud)\n

小智 0

我使用Ubuntu包xbindkeys结合该包xautomation来完成这个任务。我不知道是否evtest为配置提供兼容的输出。我的选择是xev。从 CLI 启动,它会在终端上打印键码、键描述和按钮编号。我还听说有一个xbindkeys-config更容易设置的软件包,但我没有使用它。这是一个小示例配置,当我使用特殊的鼠标按钮时,我用于将 CTRL+PgUP 和 CTRL+PgDOW 发送到浏览器,以便在打开的选项卡之间进行切换。

"xte 'usleep 100000' 'keydown Control_R' 'key Page_Up' 'keyup Control_R'"
   b:8 + Release # mouse-button 8

"xte 'usleep 100000' 'keydown Control_R' 'key Page_Down' 'keyup Control_R'"
   b:9 + Release # mouse-button 9
Run Code Online (Sandbox Code Playgroud)