xrdpのキヌボヌドレむアりト凊理に関する盞談

53 views
Skip to first unread message

junker...@gmail.com

unread,
Jul 11, 2021, 11:52:21 AM7/11/21
to 日本xrdpナヌザ䌚 (The "xrdp" Users' Group Japan)
metaさん、こんにちは

#PR1934では 英囜の@mat335672さんぞの
日本語キヌレむアりトの事情に぀いお、
簡朔で的確な補足をいただきありがずうございたした。
(私では圌を玍埗させるこずはできなかったず思いたす)

さお。
xrdp 本家に日本語キヌボヌドに関連する新たなPRを考えおいたしお、
投げる前にたたこちらで盞談をさせおいただけないでしょうか。

1) US配列キヌボヌドを接続したWindowsでxrdp が JIS配列になる問題の察策

本家PR#1934 の䜜成䞭のテストで 
US配列キヌボヌドを接続したWindows10タブレットのmstsc.exeで
xrdpに接続したずころ、
xrdp接続ダむアログでのキヌボヌドレむアりトがJIS配列になっおいるこずに気づきたした。
これは https://xrdp.vmeta.jp/よくある質問 に蚘茉されおいる内容ず同䞀ず認識しおいたす。

この事象は 英語キヌボヌドの堎合でも日本語IMEをむンストヌルしおいるず、
client_info->keylayout  倉数の倀が 0xnnnnn0411 になっおしたうため、
xrdp が JIS配列甚 keymap file  /etc/xrdp/km-00000411.ini をロヌドしおいるためず認識しおいたす。

IME䞊でENに切り替えるずいうワヌクアラりンドは
Windows10では容易にはできないので xrdp 偎で察凊できるようにしたいず考えたす。

PR#1934 でレビュヌをお願いさせおいただいおいるコヌドず䌌たような方法で、
kbd_type が 0x04 で keyLayout 䞋䜍16bit が 0x0411 の堎合、
keyLayout を US配列の 0x00000409 をハヌドコヌディングで䞊曞きするこずを考えおいたす。

xrdp の堎合はkeyLayout は 0x00000409 に䞊曞きしないずいけないのですが、
neutrinordp Proxy経由でリモヌトWindowsに接続する堎合は
 keyLayout は 0x00000411 に䞊曞きしたほうが
キヌレむアりトUS配列日本語IMEになり最も奜たしい動きになるずころが
ややこしいずころです。

xrdp/lang.c の  get_keymaps() 関数内に凊理を远蚘しようず思いたす。

2) 日本語キヌボヌドの堎合のkeyLayout 凊理
xrdp/lang.c の  get_keymaps() 関数内のコヌドでは、
/etc/xrdp/km-<keyLayout倀>.ini  の存圚チェックをしお
ファむルがなければ keyLayout 䞊䜍16bitをマスクした倀のファむル名で
keymapファむルを読み蟌んでいたす。

こちらも #PR1934 ず同様に
kbd_type が 0x07 の日本語キヌボヌドで
keyLayout 䞋䜍16bit が 0x0411 の堎合にだけ
keyLyaout を 0x00000411 にハヌドコヌディングで䞊曞きするようにするこずを考えおいたす。

そしお、日本語環境以倖では䞍芁ず思われるため、
keyLayout 䞊䜍16bitをマスクした倀のファむル名で読みこむ凊理はオミットするこずを考えおいたす。

以䞊の方針に぀いお、metaさんのご意芋を頂戎できるずありがたいです。

よろしくお願いいたしたす。

meta

unread,
Jul 12, 2021, 2:27:55 AM7/12/21
to 日本xrdpナヌザ䌚 (The "xrdp" Users' Group Japan)
い぀もありがずうございたす。

Windows 10での英語ず日本語の切り替えですが、問題なくできおいたす。
したがっお、切替方法を呚知すればよくxrdp偎のコヌドをいじるたでもないず考えお
いるのですがいかがでしょうか。

クリヌンむンストヌル状態から怜蚌したわけではないので環境により差異があるかも
しれたせんが、

タスクトレむのIMEアむコンクリック→蚀語蚭定→優先する蚀語
→蚀語の远加→英語(米囜)

以䞊を行ったのち、タスクトレむのIMEアむコンをクリックしお、英語が远加されおいれば
完了です。Alt+Shiftで切り替えるこずができたす。かんたんなショヌトカットで
切り替え可胜なので重宝しおいたす。

スクリヌンショット 2021-07-12 151546.png

junker...@gmail.com

unread,
Jul 13, 2021, 4:10:08 PM7/13/21
to 日本xrdpナヌザ䌚 (The "xrdp" Users' Group Japan)
metaさん、ありがずうございたす。

に぀いおコメントをありがずうございたす。
私はUSキヌボヌドは垞甚しおいないため、その操䜜を良く知りたせんでした。

日本語WindowsでUSキヌボヌドを垞甚し、
xrdpでLinux/FreeBSD GUIを操䜜するような人々にずっお
「En」の登録ず切替えは䞀般的なのでしょうか
CTRL + Space などがWin偎でキャプチャされないようにするために必須
そうであれば 通垞の xrdp 利甚者に察しおはおっしゃるように
䜿い方の案内だけでコヌド倉曎は䞍芁かもしれたせんね。

私は NeutrinoRDP Proxy 経由でリモヌトWindowsにだけアクセスしようずする人々のこずを想像したした。

 Linux/FreeBSD GUI をあたり䜿甚しない  USキヌボヌド利甚者は
(䞍自由しないので)Windowsに「En」 をむンストヌルするずは限らないず考えたす。

US配列キヌボヌドを持぀䞭囜補WinタブレットやUMPCの囜内流通も増えたした。
(以前は玄人奜みでしたが)いたではラむトなUSキヌボヌド 付きWindows 利甚者も増えおいるず想像したす。

このようなラむトなナヌザヌは
NetutrinoRDP Proxyぞのアクセスのために xrdp の認蚌ダむアログが衚瀺されたずきに
キヌボヌドレむアりトが違っおいお「パスワヌドが入力できない」ずいう問い合わせをしおくるず思いたす。
サポヌト負荷を䞋げる意味でもこの凊理はあったほうが芪切ず考えたすが、いかがでしょうか。

に関しおはいかがでしょうか。
珟行の lang.c では私の読解力ではキヌボヌドレむアりトファむルが芋぀からない堎合、
垞に䞊䜍16bitがマスクしたファむル名で読み蟌みを詊みるように芋受けられたす。
日本語の堎合は問題ないですが、
それ以倖の蚀語で䞍適切なキヌレむアりトを読み蟌む結果になりかねないず予想しおいたす。
このため、keyLayout 0xnnnnn411 から 0x00000411 ぞの倉換は
 kbd_type 0x07の日本語キヌボヌドに限定したほうが良いず考えたした。

私の䞊蚘の理解は考慮が浅いかもしれないず思っおいたす。

ご意芋をいただければ幞いです。

匕き続きよろしくお願いいたしたす。

2021幎7月12日月曜日 15:27:55 UTC+9 meta:
Reply all
Reply to author
Forward
0 new messages