英語キーボード使用のWindows(日本語)からxrdpにつなぐとキーボードレイアウトが狂う
日本語環境のWindowsを英語キーボード(HHKBなど)で使用していて、Linux環境にxrdpで接続すると、Linuxの側でキーボードレイアウトを英語のものにしていても、日本語レイアウトに変更される。これにより、存在しない物理キーに割り当てられる'_'(アンダースコア)などの入力は特に困る。
'/var/log/xrdp.log'でxrdpのログを確認すると、日本語のキーボードレイアウトを設定しようとした上、ビルトインのキーマップと整合せず、結果としてローカルのキーマップファイルを使用した、とある(赤枠部分)。
このとき、'Keyboard References'のレイアウトは、'Generic 101-key PC'を設定している。ここで、レイアウトを設定しなおせば、その場限りでUSレイアウトになるが、接続の都度、この作業を行うのは煩わしい。
とりあえずの対処
英語キーボードしか使用しないのであれば、日本語環境から接続されたと判別されたときの標準のレイアウトをUSにするのが簡便。
'/etc/xrdp/xrdp_keyboard.ini'の'[default_layouts_map]'のセクションの'rdp_layout_jp'の値を'us'に変更する(赤枠部分)。
変更後、安全のためには、Linuxを再起動して再接続する。xrdpで接続した状態でのxrdpサービスの再起動では、再接続の際、画面がブラックアウトすることがあるので注意。
xrdp接続からログアウトした上で、別にターミナル接続してxrdpサービスを再起動すれば、Linuxの再起動は必要ないはずだけど、未確認。
動作確認環境
- xrdp 0.9.17-2ubuntu2
- Ubuntu 22.04.1 LTS
- Windows 10