ログイン後のキーマップが正しくならないのでご相談をお願いいたします。
経過は以下の通りです。
1. Xubuntu 12.04.5 amd64
2. X11RDP-o-Matic を使わせてもらいインストール
3. km-0411.ini を適用
4. Windows 8 の RDP クライアントで接続
5. ログイン画面ではjp レイアウトで正しくキー入力ができた
6. ログイン後(Xfce4)は us レイアウトとなった
7. 設定「キーボード」「システムデフォルトを使用」のチェックを外すと、次回ログイン後よりデスクトップがクラッシュしてRDPクライアントが終了
8. ローカルでログインして、設定「キーボード」「システムデフォルトを使用」のチェックをして復旧
9. コマンド "$ setxkbmap -layout jp" で jp レイアウトになった
10. jp レイアウトになったが以下の不具合
11. Yen / Henkan /muhenkan キーが入力できない
12. /opt/X11rdp/share/X11/xkb/keycodes/evdev と xev で確認したキーコードが異なっていた。
<HENK> = 100; // Henkan; xev 129
<MUHE> = 102; // Muhenkan; xev 131
<AE13> = 132; // Yen; xev 133
13. /opt/X11rdp/share/X11/xkb/keycodes/evdev を修正したらとりあえず入力できるようになった
//<HENK> = 100; // Henkan; xev 129
//<MUHE> = 102; // Muhenkan; xev 131
//<AE13> = 132; // Yen; xev 133
<HENK> = 129; // Henkan
<MUHE> = 131; // Muhenkan
<AE13> = 133; // Yen
//<HJCV> = 131; // Hung...
14. しかし、左Winキーを押しても 131 が返されるため、Yen が入力されてしまう
15. やはり根本的な対応が必要
16. X11RDP で キーレイアウトが jp の場合のマッピングを行う必要があるはず
以上の経過なのですが、修正箇所を調べるご協力をして頂けないでしょうか?
X11RDP は素晴らしいので、なんとかしたいと思っています。
> それと git を使い慣れていないとのことなので、
> $ git clone -b devel https://github.com/neutrinolabs/xrdp
> (ファイル書き換え)
> $ git diff | tee hogehoge.patch
> で出力したパッチ形式のファイルを添付して頂くと、こちらでも動作確認しやすい
> ので助かります。
お教え頂いた手順でパッチファイルを作成いたしましたので、可能であれば検証をお願い致します。
github にブランチを作成すれば X11rdp-o-matic.sh の XRDPGIT, XRDPBRANCH を修正して検証出来そうですのでやってみます。
devel ブランチでテストしてみましたが、以下の問題がありました。
・ログイン画面で "\ |" キーが入力できない
・ログイン後、自動的に rule: base, model: pc105, jp となった
・ログイン後、"\ _" キー、変換キーが入力できない
対応
・master ブランチで適用していた km-0411.ini に差し換えると、ログイン画面で "\ |" キーが入力できるようになる
・キーボードのルールが master ブランチでは evdev だったのが base になっていたため、全く別の修正が必要になる
1. X11RDP-o-Matic を取得してください。
$ git clone --depth 1 -b v3.10 https://github.com/scarygliders/X11RDP-o-Matic.git
2. X11RDP-o-Matic/X11rdp-o-matic.sh の該当部分を修正します。
XRDPGIT=https://github.com/AkiraPenguin/xrdp.git
XRDPBRANCH=master_rdpkeyboard_jp_20141222
3. 今まで通りにビルド・インストールしてください。
$ cd X11RDP-o-Matic
$ sudo ./X11rdp-o-matic.sh --justdoit
4. km-0411.ini を適用してください。
$ cd /etc/xrdp
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
5. デスクトップへログインします。
6. 日本語キーボード配列にします。
(ターミナルなどで) $ setxkbmap -model pc105 -layout jp
7. デスクトップの自動起動するアプリに以下を追加してください。
setxkbmap -model pc105 -layout jp
こちらでも Xubuntu 14.04 amd64 で再度検証致しました。
[ 検証用のブランチ ]
XRDPGIT=https://github.com/AkiraPenguin/xrdp.git
XRDPBRANCH=devel_rdpkeyboard_jp_20141222
[ ログイン画面について ]
km-0411.ini を確認したところ、以下の差異がありました。
master: Key133=92:92
devel: Key133=165:165
devel では Yen と Backslash を明確に別のキーとして扱う方針となったようです。
このため、ログイン画面で Yen キーを押してもなにも入力されなくなったようです。
"|"(Shift+Yen)は正常に入力されました。
[ デスクトップ画面について ]
"\ _" キーが入力出来ない原因を調査したところ、該当スキャンコード(115)が Home キーに誤変換されておりました。
明確なバグと思われますので、修正・検証したところ、正常に入力が出来るようになりました。
添付のパッチファイルをご確認ください。
また、Henkan キーが XF86AudioMedia へ割り当てられてしまうため認識されませんでした。
原因はよく分からないのですが、デスクトップのキーボード設定を
・「システムでフォルトを使用する」のチェックを外す
・標準 104 キー PC (標準 105 キー(国際) PC)
・日本語/日本語(OADG 109A)
と設定することにより回避できました。
自動実行するアプリで以下を実行してもよいと思われます。
/usr/bin/setxkbmap -model jp106 -layout jp
あとはメンテナの判断に任せます。
$ setxkbmap -query
rules: base
model: pc105
layout: jp
このため、やはり、キーボード設定で「システムデフォルトを使用する」にチェックをした状態で、正しく入力できるように解決する必要がありました。
設定で回避できないかと /opt/X11rdp/share/X11/xkb/ 以下を"pc105" で検索を行っい、rules/base の 75 行目をコメントアウトしたところ、"pc105" を "inet" と判断しないようになり、正常に変換キーを入力できるようになりました。
しかし、以下の疑問があります。
このファイルは勝手に編集しても良いものかどうか?
jp 以外のレイアウトで pc105 は inet としなくてはならないのでは?
/opt/X11rdp/share/X11/xkb/rules/evdev
base のはずなのになぜか evdev の設定を読み込んでいるようです。
ログイン直後の rules/* を読み込む部分にバグが存在するように思われますので、どなたかデバッグして頂けないでしょうか?
2014年12月26日金曜日 3時42分42秒 UTC+9 Akira Taniguchi:
・/opt/X11rdp/share/X11/xkb/rules/base の $inetkbds = で指定している pc105 (75 行目)をコメントにする(先頭に // を挿入する)。
・/usr/share/X11/xkb/rules/base の $inetkbds = で指定している pc105 (72 行目)をコメントにする(先頭に // を挿入する)。
私は PC キーボードで Mac ライクに「変換」「無変換」で入力モードをコントロールしているので、この問題が解決できないとかなり不便でした。
もし可能であれば、00000411 のキーボードを pc105 とするところを pc104 と修正できれば、上記の問題は発生しません。
・/etc/xrdp/xrdp_keyboard.ini の [rdp_keyboard_jp] セクションに model=pc104 と追加する。
上記を行えば、以下の設定は必要ありません。
2014年12月26日金曜日 23時23分33秒 UTC+9 Akira Taniguchi:
複雑な修正についてはお手上げですので、今後もよろしくお願いいたします。
2014年12月29日月曜日 12時16分41秒 UTC+9 meta:
> 入れ違いでしたが、谷口さんの方で既にPRされていたようなのでお任せします。
ありがとうございました。