我通常使用 Dvorak 键盘打字,但经常从不允许我更改键盘布局的计算机登录 SSH 服务器。有没有办法在服务器端设置键盘布局以将 QWERTY 输入转换为 Dvorak?
答案1
不。按键输入由客户端计算机上的 SSH 终端应用程序处理,而不是由服务器上的任何东西处理。
@JustinPearce 建议的配置loadkeys
将在您物理登录服务器(控制台 tty,非 SSH)时更改服务器控制台上的键盘布局。
答案2
我刚刚编写了一个 Python 脚本,它可以完成你想要做的事情:https://github.com/ssb22/bits-and-bobs/blob/master/dvpty.py
请注意关于 Tab 键的注释。由于脚本在服务器上运行,因此无法区分 Tab 和 Ctrl-I(在 Dvorak 中映射到 Ctrl-C),因此默认情况下,如果您按 Tab,您将获得 Ctrl-C,这对于命令行制表符补全来说并不好。您也可以将其置于保留 Tab 的模式,但代价是必须按 Dvorak Ctrl-I(QWERTY Ctrl-G)才能获得 Ctrl-C,或者您可以将其设置为根本不重新映射控制键。
答案3
您可以尝试以下方法:
loadkeys /path/to/keymaps/dvorak.map.gz
只需更改dvorak.map.gz
为 dvorak 键盘映射的文件名即可。您甚至可以将其设置为 bash 脚本,以便在用户通过终端登录时运行。
答案4
如果你可以在 Emacs 中工作:
emacs --eval='(set-input-method "english-dvorak")'
并按 Control-Backslash 键在 QWERTY 和 Dvorak 输入法之间切换(需要在 Emacs 会话中访问每个缓冲区时执行此操作)。它适用于编辑文件,并且适用于 Emacs M-x shell
(行模式命令 shell),但不适用于 Emacs 的M-x term
终端。此外,set-input-method
不会重新映射控制键。