我在 Windows 机器的 Windows Terminal v1.11.2921.0 中使用 WSL 1.0 Ubuntu,通过 SSH 连接到 NixOS 盒子 (Linux)
在 Windows 上,我使用程序员 Dvorak 键盘布局。我还使用 PowerToys重新映射了Caps Lock
-> Ctrl
,并交换了$
和键的位置。 @
(按住 Shift 时,$
变为~
并@
变为^
)
在 NixOS 上,它使用默认的美国键盘布局:
$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
X11 Model: pc104
X11 Options: terminate:ctrl_alt_bksp
然而,即使 NixOS 盒子使用美国键盘布局,程序员 dvorak 密钥通常也可以通过 SSH 正常工作。
现在问题来了...在我的键盘布局上,该]
键位于0
QWERTY 中通常该键所在的位置。就是]
正常按的时候,还有6
用shift按的时候。当我尝试使用键盘快捷键时Ctrl+]
,它会被解释为Ctrl+^
。
以下是showkey -a
NixOS SSH 会话以及常规 WSL Ubuntu 终端中的输出。 (两者都有同样的问题,这让我认为这是一个 Windows 问题......)
第一行是我按下]
按键,第二行是我按住 Control 并按下]
按键。
$ showkey -a
Press any keys - Ctrl-D will terminate this program
] 93 0135 0x5d
^^ 30 0036 0x1e
Ctrl
我注意到当我使用修饰符时,我的其他几个键没有按照我期望的方式解释。有谁知道什么可以解释这种行为,以及如何修复或解决它?
而且,一个快速调试问题 - 我还想看看这个问题是否发生在 Windows 本身上(比如不在 WSL Ubuntu 或 Windows 终端内),以帮助进一步隔离它,但不知道如何解决。我可以使用 Windows 上的某种等效工具showkey -a
来查看问题是否发生在 Windows 终端/Linux 会话之外?