Locked History Actions

キー配列について

注意 このページの内容は古くなっています。

このページは古いバージョンの xrdp を使う場合のためだけに残しているページです。2014年12月13日以降 X11RDP-o-Matic, X11RDP-RH-Matic を使用して xrdp をインストールした場合や、apt を使って 0.9.1 移行をインストールする場合には必要ない作業です。今更このページを参考にするのは、はっきり言ってやめておいたほうがいいですよ。

どうしても 0.6.0 系以前を使いつづけたい明確な理由がない限り、新しいバージョンの xrdp に乗り換えてください。

また 0.8.0 系や 0.9.0 系を使っていて、正しいキー配列にならない場合はこのページの内容は当てはまりません。0.8.0 系以降を正しく使っている場合はほぼキー配列の問題は発生しないため、今のところドキュメントは用意していませんがOSC 2016 Tokyo/Spring の発表資料も参考にしてください。

日本語配列にしたいのに英語配列になっている、または英語配列にしたいのに日本語配列になっているという場合、以下の3ヶ所を確認して下さい。

ログイン画面でのキー配列を確認

xrdp のログイン画面をで Shift + 2 と入力してみて、キー配列が何になっているかを確認して下さい。 「@」 であれば多くの場合英語配列で「"」 であれば日本語配列です。

ここで認識されているキー配列が、xrdp に認識されているキー配列です。日本語配列で使いたいのにログイン画面で日本語配列になっていない場合、キーマップファイルをインストールして xrdp を再起動する(後述)必要があります。

xrdp のログイン画面

X セッションでのキー配列を確認

各ウィンドウマネージャで「キーボードレイアウト」や xmodmap またはそれに準じる設定で、目的のキー配列が設定されていることを確認して下さい。基本的には X セッション側でキー配列を指定すれば OK ですが、xrdp にインストールされていないキーマップを使おうとすると、一部のキーが反応しない場合があります。

Ubuntuのキー配列設定

キーマップファイルがインストールされているかを確認

Windows から xrdp に接続する際にキー配列周りで問題が発生した場合は、以下のレジストリキーを確認し、xrdp のサーバ側にも対応するキーマップファイルがインストールされていることを確認して下さい。

キー配列が登録されているレジストリ

  • HKEY_CURRENT_USER
    • Keyboard Layout
      • Preload
        • 1 - 00000411
        • 2 - e0010411
        • 3 - e0200411

例えば、レジストリが上のようになっていた場合は、以下の3つのファイルが必要です。

  • /etc/xrdp/km-0411.ini
  • /etc/xrdp/km-e0010411.ini
  • /etc/xrdp/km-e0200411.ini

警告

もういちど言います。ここから下の作業は2014年12月13日 (e7c144e)以降のバージョンでは必要ありません。

最新版には既に日本語キーボード対応が含まれているため、これは過去のノウハウです。新しいバージョンを使えばこの作業は必要ありませんが、本当に本当にどうしても 0.6.0 系以前を使い続けますか?

0.6.0系は今となっては安全とは考えられていない、RC4暗号を使用していますし、仕組み上中間者攻撃に対して耐性がありません。0.8.0系以降ではより安全なTLSを使用して、暗号アルゴリズムもより安全なものを使用することができます。

時代遅れの古い情報を参考にして日本語配列のキーマップファイルをインストールしてまでどうしても0.6.0系にしがみつかなければならない理由がありますか?はっきり言ってやめておいたほうがいいですよ。

ここまで言われてもどうしても使いたい場合にのみ、km-0411.iniをダウンロードして使ってください。

ファイルの中身はすべて同じなので、シンボリックリンクやハードリンクにして構いません。日本語配列のキーマップファイルはこちらからダウンロードしたものを使って下さい。以下は日本語配列のキーマップファイルのインストール方法の一例です。

$ cd /etc/xrdp
$ (cd /tmp; wget http://w.vmeta.jp/temp/km-0411.ini)
$ sudo cp /tmp/km-0411.ini .
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini